Last modified date in menu link I have a book with some child pages and I'd like to show the last modified date of each corresponding node near them in their menu tree links, or a red badge near the nodes updated during eg. the last 3 days...
How to pass the changed_date of nodes to menu links?

Thank you
Hook insert/update

The Book module update the book menu title during node insert/update.

You can implement hook_node_insert and hook_node_update to update the title in place.

/**
 * Implements hook_node_insert().
 */
function my_custom_module_node_insert($node) {
  if (!empty($node-&gt;book['bid'])) {
    $node-&gt;title = $node-&gt;title . format_date($node-&gt;changed, 'custom', 'M j, Y');
    _book_update_outline($node);
  }
}

/**
 * Implements hook_node_update().
 */
function my_custom_module_node_update($node) {
  if (!empty($node-&gt;book['bid'])) {
    $node-&gt;title = $node-&gt;title . format_date($node-&gt;changed, 'custom', 'M j, Y');
    _book_update_outline($node);
  }
}


Using preprocess

You can do that by override template_preprocess_book_navigation which contain a call for book_children function. The aim of override is to provide custom version of book_children function which add the node date to the title before calling the render method.

/**
 * Processes variables for book-navigation.tpl.php.
 * 
 * Override theme_preprocess_book_navigation
 */
function my_custom_module_preprocess_book_navigation(&amp;$variables) {
  $book_link = $variables['book_link'];
  if ($book_link['mlid']) {
    $variables['tree'] = custom_book_children($book_link);
  }
}

/**
 * Formats the menu links for the child pages of the current page.
 * 
 * A custom version of book_children to add date suffix to link title.
 */
function custom_book_children($book_link) {
  $flat = book_get_flat_menu($book_link);

  $children = array();

  if ($book_link['has_children']) {
    // Walk through the array until we find the current page.
    do {
      $link = array_shift($flat);
    }
    while ($link &amp;&amp; ($link['mlid'] != $book_link['mlid']));
    // Continue though the array and collect the links whose parent is this page.
    while (($link = array_shift($flat)) &amp;&amp; $link['plid'] == $book_link['mlid']) {
      // Get node object.
      $node = menu_get_object('node', 1, $link['link_path']);
      // Add date to link title.
      $link['title'] = $link['title'] . ' - ' . format_date($node-&gt;changed, 'custom', 'M j, Y');
      $data['link'] = $link;
      $data['below'] = '';
      $children[] = $data;
    }
  }

  if ($children) {
    $elements = menu_tree_output($children);
    return drupal_render($elements);
  }
  return '';
}