Example #1
0
 /**
  * Возвращает элементы меню
  *
  * @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;
 }
Example #2
0
 /**
  * Перестраивает иерархиую страниц из полученного через 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;
 }