123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- /**
- * @file
- * Make all the editmenu parent menu items non-clickable.
- */
- /**
- * \brief Alter the menu item link theme registry.
- *
- * This function grabs the editmenu theme registry for the
- * menu_link theming. This gives us a way to remove the
- * link and replace it with a name (anchor) instead.
- *
- * This is only applied to the Editmenu as intefering with
- * other menus could have unwanted side effects.
- *
- * \note
- * This is called at the time the theme registry is built.
- * It is then put in the cache until next time the registry
- * is built by the system (i.e. caches are cleared by user,
- * because a module is installed, etc.)
- */
- function editmenu_inactive_parents_theme_registry_alter(&$theme_registry) {
- global $theme;
- // Save theme function
- $themes = variable_get('editmenu_inactive_parents_theme_function', array());
- $themes[$theme] = $theme_registry['menu_link']['function'];
- variable_set('editmenu_inactive_parents_theme_function', $themes);
- // Replace with our own
- $theme_registry['menu_item_link']['function'] = 'editmenu_inactive_parents_theme_menu_link';
- }
- /**
- * \brief Transform the menu item link.
- *
- * This function intercepts the menu item link theming function of
- * the system and
- */
- function editmenu_inactive_parents_theme_menu_link($link) {
- global $theme;
- static $cnt = 0;
- // this is a drop down?
- if (!empty($link['has_children']) && variable_get('editmenu_running', FALSE)) {
- ++$cnt;
- return '<a name="menu-id-' . $cnt . '">' . $link['title'] . '</a>';
- }
- // got a theme function?
- $themes = variable_get('editmenu_inactive_parents_theme_function', array());
- if (isset($themes[$theme])) {
- return $themes[$theme]($link);
- }
- // somehow the preprocess function did not get called?!
- // use the core default
- return theme_menu_link($link);
- }
- // vim: ts=2 sw=2 et syntax=php
|