protected function load($menu = null) { $menu = $menu ?: $this->menu; if (is_numeric($menu)) { $root = Model_Menu::find_by_tree_id($menu); } else { $root = Model_Menu::find_by_slug($menu); } if (is_null($root)) { throw new MenuException('Menu ' . (is_numeric($menu) ? '#' : '') . $menu . ' not found'); } elseif (!$root->is_root()) { $root = $root->root(); $this->menu = $root->slug; \Log::write(250, 'Menu ' . (is_numeric($menu) ? '#' : '') . $menu . ' is not a root element.'); } $this->meta = array('name' => $root->name, 'identifier' => $root->slug, 'num_items' => $root->count_descendants()); $root->descendants()->get(); return $root; }