public function TripalField::webServicesData

3.x TripalField.inc public TripalField::webServicesData()

Describes this field to Tripal web services.

The child class need not implement this function. It has all of the details provided for elements by the elementInfo() function are used to generate the details needed for Views.

Return value

An associative array with the keys available for searching. The value is the term array for the element.

File

tripal/includes/TripalFields/TripalField.inc, line 235

Class

TripalField

Code

public function webServicesData() {
  $elements = $this->elementInfo();

  $field_term = $this->getFieldTermID();
  $field_term_name = strtolower(preg_replace('/[^\w]/', '_', $this->term['name']));
  $field_details = $elements[$field_term];

  $searchable_keys = array();
  $sortable_keys = array();

  if (array_key_exists('searchable', $field_details) and $field_details['searchable']) {
    $searchable_keys[$field_term_name] = $field_term;
  }

  if (array_key_exists('sortable', $field_details) and $field_details['sortable']) {
    $sortable_keys[$field_term_name] = $field_term;
  }

  // Now add any entries for child elements.
  if (array_key_exists('elements', $field_details)) {
    $elements = $field_details['elements'];
    foreach ($elements as $element_name => $element_details) {
      $this->_addWebServiceElement($searchable_keys, $sortable_keys, $field_term_name, $field_term, $element_name, $element_details);
    }
  }

  return array(
    'searchable' => $searchable_keys,
    'sortable' => $sortable_keys
  );
}