function book_export_traverse

7.x book.module book_export_traverse($tree, $visit_func)

Traverses the book tree to build printable or exportable output.

During the traversal, the $visit_func() callback is applied to each node and is called recursively for each child of the node (in weight, title order).


$tree: A subtree of the book menu hierarchy, rooted at the current page.

$visit_func: A function callback to be called upon visiting a node in the tree.

Return value

The output generated in visiting each node.

1 call to book_export_traverse()
book_export_html in drupal/modules/book/
Generates HTML for export when invoked by book_export().


drupal/modules/book/book.module, line 1240
Allows users to create and organize related content in an outline.


function book_export_traverse($tree, $visit_func) {
  $output = '';

  foreach ($tree as $data) {
    // Note- access checking is already performed when building the tree.
    if ($node = node_load($data['link']['nid'], FALSE)) {
      $children = '';

      if ($data['below']) {
        $children = book_export_traverse($data['below'], $visit_func);

      if (function_exists($visit_func)) {
        $output .= call_user_func($visit_func, $node, $children);
      else {
        // Use the default function.
        $output .= book_node_export($node, $children);

  return $output;