Enhancements to Task
This commit is contained in:
@@ -23,7 +23,49 @@ class Menu {
|
||||
if (empty($result[$mmo->id]))
|
||||
$result[$mmo->id] = $mmo;
|
||||
|
||||
return static::collapse($result);
|
||||
}
|
||||
|
||||
private static function collapse(array $array) {
|
||||
$result = array();
|
||||
|
||||
foreach ($array as $item) {
|
||||
if (isset($result[$item->module->name])) {
|
||||
if (! is_array($result[$item->module->name]))
|
||||
$result[$item->module->name] = array($result[$item->module->name]);
|
||||
|
||||
array_push($result[$item->module->name],$item);
|
||||
|
||||
continue;
|
||||
|
||||
} else {
|
||||
$result[$item->module->name] = $item;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function ul(array $result,array $append=NULL,$sub=FALSE) {
|
||||
$output = $sub ? '<ul class="dropdown-menu">' : '<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">';
|
||||
|
||||
foreach ($result as $k => $v)
|
||||
if (is_array($v)) {
|
||||
$output .= sprintf('<li class="dropdown-submenu">%s%s',HTML::anchor('#',$k,array('nocg'=>TRUE)),static::ul($v,NULL,TRUE).'</li>');
|
||||
} else
|
||||
$output .= '<li>'.HTML::anchor($v->url(),$v->menu_display(),array('tabindex'=>-1,'nocg'=>TRUE)).'</li>';
|
||||
|
||||
|
||||
if ($append) {
|
||||
$output .= '<li class="divider"></li>';
|
||||
|
||||
foreach ($append as $k => $v)
|
||||
$output .= sprintf('<li>%s</li>',HTML::anchor($k,$v,array('nocg'=>TRUE)));
|
||||
}
|
||||
|
||||
$output .= '</ul>';
|
||||
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
Reference in New Issue
Block a user