/** * Render a menu item (usually as a link) * * @param ElggMenuItem $item The menu item * @param array $vars Options to pass to output/url if a link * @return string * @since 1.9.0 */ function elgg_view_menu_item(ElggMenuItem $item, array $vars = array()) { if (!isset($vars['class'])) { $vars['class'] = 'elgg-menu-content'; } $vars = array_merge($item->getValues(), $vars); if ($item->getLinkClass()) { $vars['class'] .= ' ' . $item->getLinkClass(); } if ($item->getHref() === false) { $text = $item->getText(); // if contains elements, don't wrap if (preg_match('~<[a-z]~', $text)) { return $text; } else { return elgg_format_element('span', array('class' => 'elgg-non-link'), $text); } } if (!isset($vars['rel']) && !isset($vars['is_trusted'])) { $vars['is_trusted'] = true; } if ($item->getConfirmText()) { $vars['confirm'] = $item->getConfirmText(); return elgg_view('output/confirmlink', $vars); } else { unset($vars['confirm']); } return elgg_view('output/url', $vars); }
public static function extractText(\ElggMenuItem $item) { return $item->getText(); }
/** * Compare two menu items by their display text * HTML tags are stripped before comparison * * @param \ElggMenuItem $a Menu item * @param \ElggMenuItem $b Menu item * @return bool */ public static function compareByText($a, $b) { $at = strip_tags($a->getText()); $bt = strip_tags($b->getText()); $result = strnatcmp($at, $bt); if ($result === 0) { return $a->getData('original_order') - $b->getData('original_order'); } return $result; }
/** * Adds a toggle link for use in responsive * * @param \ElggMenuItem $item */ function theme_haarlem_add_toggle_link(\ElggMenuItem &$item) { $children = $item->getChildren(); if (empty($children)) { return; } $item->setText($item->getText() . elgg_view_icon('angle-right', 'elgg-menu-site-toggle')); foreach ($children as $child) { theme_haarlem_add_toggle_link($child); } }