CroogoNav::add PHP Method

add() public static method

Add a menu item
public static add ( $menu, string $path, array $options = [] ) : void
$path string dot separated path in the array.
$options array menu options array
return void
    public static function add($menu, $path, $options = array())
    {
        // Juggle argument for backward compatibility
        if (is_array($path)) {
            $options = $path;
            $path = $menu;
            $menu = self::activeMenu();
        } else {
            self::activeMenu($menu);
        }
        $pathE = explode('.', $path);
        $pathE = array_splice($pathE, 0, count($pathE) - 2);
        $parent = join('.', $pathE);
        if (!empty($parent) && !Hash::check(self::$_items[$menu], $parent)) {
            $title = Inflector::humanize(end($pathE));
            $o = array('title' => $title);
            self::_setupOptions($o);
            self::add($parent, $o);
        }
        self::_setupOptions($options);
        $current = Hash::extract(self::$_items[$menu], $path);
        if (!empty($current)) {
            self::_replace(self::$_items[$menu], $path, $options);
        } else {
            self::$_items[$menu] = Hash::insert(self::$_items[$menu], $path, $options);
        }
    }

Usage Example

Example #1
0
 /**
  * testAdminMenus
  */
 public function testAdminMenus()
 {
     CakeSession::write('Auth.User', array('id' => 1, 'role_id' => 1));
     CroogoNav::add('contents', array('title' => 'Contents', 'url' => '#'));
     $items = CroogoNav::items();
     $expected = '<ul class="nav nav-stacked"><li><a href="#" class="menu-contents sidebar-item"><i class="icon-white icon-large"></i> <span>Contents</span></a></li></ul>';
     $result = $this->Croogo->adminMenus(CroogoNav::items());
     $this->assertEquals($expected, $result);
 }
All Usage Examples Of CroogoNav::add