/** * Renders a custom menu node as part of a submenu * * The custom menu this method override the render_custom_menu_item function * in outputrenderers.php * * @see render_custom_menu() * * @staticvar int $submenucount * @param custom_menu_item $menunode * @return string */ protected function render_custom_menu_item(custom_menu_item $menunode) { if (!right_to_left()) { // Keep YUI3 navmenu for LTR UI parent::render_custom_menu_item($menunode); } // Required to ensure we get unique trackable id's static $submenucount = 0; $content = html_writer::start_tag('li'); if ($menunode->has_children()) { // If the child has menus render it as a sub menu $submenucount++; if ($menunode->get_url() !== null) { $url = $menunode->get_url(); } else { $url = '#cm_submenu_' . $submenucount; } $content .= html_writer::start_tag('span', array('class' => 'customitem')); $content .= html_writer::link($url, $menunode->get_text(), array('title' => $menunode->get_title())); $content .= html_writer::end_tag('span'); $content .= html_writer::start_tag('ul'); foreach ($menunode->get_children() as $menunode) { $content .= $this->render_custom_menu_item($menunode); } $content .= html_writer::end_tag('ul'); } else { // The node doesn't have children so produce a final menuitem if ($menunode->get_url() !== null) { $url = $menunode->get_url(); } else { $url = '#'; } $content .= html_writer::link($url, $menunode->get_text(), array('title' => $menunode->get_title())); } $content .= html_writer::end_tag('li'); // Return the sub menu return $content; }
protected function render_custom_menu_item(custom_menu_item $menunode) { $transmutedmenunode = new theme_archaius_transmuted_custom_menu_item($menunode); return parent::render_custom_menu_item($transmutedmenunode); }