/** * Возвращает элементы меню * * @return array */ public function getItems() { if (!($items = cache('menu.' . $this->id . '.items'))) { $handler = new Menu_Db_Item(); $handler->menu_id = $this->object()->id; $items = array(); if ($result = $handler->findAll()) { foreach ($result as $item) { $items[] = $item->object(); } } cache('menu.' . $this->id . '.items', $items); } return $items; }
/** * Перестраивает иерархиую страниц из полученного через Ajax массива вида: * * @param array $items */ private function rebuildItemsTree($items, $parent_id = 0) { $i = 0; foreach ($items as $item) { $menu_item = new Menu_Db_Item(); $menu_item->id = $item['id']; if ($menu_item->find()) { $menu_item->pid = $parent_id; $menu_item->branching(++$i); $menu_item->update(); if (isset($item['children'])) { $this->rebuildItemsTree($item['children'], $menu_item->id); } } } return TRUE; }