<?php// template.phpfunction _phptemplate_variables($hook, $vars = array()) { switch ($hook) { case 'node': // Create variables for each vocabulary $node = $vars['node']; $nid = $node->nid; naf_set_default_menu($node); // this works.... case 'page': naf_set_default_menu(); // this doesn't. :(...}/** * Provides the relationship between node type and active menu on the site */function naf_map_node_type_path() { return array( 'content-articleop_ed' => 'publications', 'content-bio_pages' => 'about',... 'default' => 'about', );}/** * Set the current active menu, based on paths defined in * naf_map_node_type_path(). * * @param $node * If this is a node, pass in the node. Otherwise, it's a normal page. */function naf_set_default_menu($node = NULL) { $path = NULL; $naf_paths = naf_map_node_type_path(); if ($node) { // Set active menu based on node type. if (isset($naf_paths[$node->type])) { $path = drupal_get_normal_path($naf_paths[$node->type]); } } elseif (menu_get_active_nontask_item() < 0) { // No dice. :( $path = drupal_get_normal_path($naf_paths['default']); } // Set active menu item based on node type; using code from // http://www.angrydonuts.com/menu_set_location_can_eat_my_sho if ($path) { global $_menu; $mid = $_menu['items'][menu_get_active_item()]['pid']; $pid = $_menu['path index'][$path]; $_menu['items'][$mid]['pid'] = $pid; menu_set_active_item($_GET['q']); }}