You are here

function i18n_book_navigation_translate_tree in Book translation 6.2

Same name and namespace in other branches
  1. 7.2 i18n_book_navigation.module \i18n_book_navigation_translate_tree()

Translates the tree. Walks down the tree and translates every item. Will respect the translation settings from the i18n module.

Parameters

array $tree: The menu tree

string $lan = NULL: (optional) The language to translate the tree in. Defaults to the current language

Return value

array The translated menu tree

6 calls to i18n_book_navigation_translate_tree()
i18n_book_navigation in ./i18n_book_navigation.module
Gets the translated menu tree for the original node.
i18n_book_navigation_children in ./i18n_book_navigation.module
Loads the direct child elements. Port from book_children(). Will perform a similar task, but will also translate the links.
i18n_book_navigation_link_load in ./i18n_book_navigation.module
Loads a link. Port from book_link_load(). Will translate the link after loading it.
i18n_book_navigation_menu_titles in ./i18n_book_navigation.module
Gets the menu titles for the book path. Port of _menu_titles of the token module. Will translate the tree before fetching the titles.
i18n_book_navigation_next in ./i18n_book_navigation.module
Loads the next link in the book. Port from book_next(). Will translate the link after loading it.

... See full list

File

./i18n_book_navigation.module, line 271
Defines the i18n book navigation module. Contains all necessary data and hooks

Code

function i18n_book_navigation_translate_tree($tree, $lan = NULL) {
  foreach ($tree as $key => &$item) {
    if ($node = i18n_book_navigation_get_translated_node($item['link']['link_path'], $lan)) {
      $item['link']['title'] = $item['link']['link_title'] = $node->title;
      $item['link']['href'] = $item['link']['link_path'] = 'node/' . $node->nid;
    }
    else {
      $item = array();
    }
    if ($item['below']) {
      $item['below'] = i18n_book_navigation_translate_tree($item['below'], $lan);
    }
  }
  return $tree;
}