Added selectpicker and Menu
This commit is contained in:
67
classes/lnApp/Menu.php
Normal file
67
classes/lnApp/Menu.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class is used to create our Menu/Navbars
|
||||
*
|
||||
* @package lnApp
|
||||
* @category Helpers
|
||||
* @author Deon George
|
||||
* @copyright (c) 2009-2013 Deon George
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
class lnApp_Menu {
|
||||
public static function items($type) {
|
||||
$result = array();
|
||||
|
||||
if (empty(URL::$method_directory[$type]))
|
||||
return NULL;
|
||||
|
||||
$list = Kohana::list_files('classes/Controller/'.ucfirst($type));
|
||||
|
||||
// This will be used a lot!
|
||||
$ext_length = strlen(EXT);
|
||||
|
||||
foreach ($list as $name => $path)
|
||||
if (is_array($path)) {
|
||||
$result += self::items($path);
|
||||
|
||||
} elseif (substr($name, -$ext_length) === EXT) {
|
||||
// Remove "classes/" and the extension
|
||||
$class = substr($name, 8, -$ext_length);
|
||||
|
||||
// Convert slashes to underscores
|
||||
$class = str_replace(DIRECTORY_SEPARATOR, '_', $class);
|
||||
|
||||
if (method_exists($class,'menu')) {
|
||||
$cat = strtolower(str_replace('Controller_'.ucfirst($type).'_','',$class));
|
||||
|
||||
foreach ($class::menu() as $k=>$v)
|
||||
$result[$cat][$k] = $v;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function ul($type,array $result,array $append=NULL,$sub=FALSE,$method=NULL) {
|
||||
$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)),self::ul($type,$v,NULL,TRUE,$k).'</li>');
|
||||
else
|
||||
$output .= '<li>'.HTML::anchor(URL::$method_directory[$type].'/'.$method.'/'.$k,$v,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