You are here

function menu_service_process in Services 6.2

Same name and namespace in other branches
  1. 6 services/menu_service/menu_service.inc \menu_service_process()
  2. 7 services/menu_service/menu_service.inc \menu_service_process()

Recursively returns menu items, optionally limited by an array of fields.

Parameters

$data: The menu item whose children should be returned

$fields: An array of fields to be returned, for use in limiting the size of data returned to only that which is necessary.

$language: The language code of the menu to return. Defaults to default language.

Return value

Array. All children menu items from a given menu item.

1 call to menu_service_process()
menu_service_get in services/menu_service/menu_service.inc
Get the menu from the database.

File

services/menu_service/menu_service.inc, line 55
Adds a service type for a menu

Code

function menu_service_process($data, $fields, $language) {
  $out = array();
  if (is_array($data)) {
    foreach ($data as $item) {
      $tmp = new stdClass();
      if ($fields) {
        foreach ($fields as $field) {
          $tmp->{$field} = $item['link'][$field];
        }
      }
      else {
        $tmp = (object) $item['link'];
      }
      if (!$fields || in_array('path_alias', $fields, TRUE)) {
        $tmp->path_alias = drupal_get_path_alias($item['link']['link_path'], $language);
      }
      $tmp->children = menu_service_process($item['below'], $fields, $language);
      $out[] = $tmp;
    }
  }
  return $out;
}