Beispiel #1
0
 public function children($parent_id, $level, $return = FALSE)
 {
     $expanded_rows = Arr::get($_COOKIE, 'cms_expanded_pages');
     $expanded_rows = $expanded_rows == NULL ? array() : explode(',', $expanded_rows);
     $page = ORM::factory('page', $parent_id);
     if (!$page->loaded()) {
         return;
     }
     $pages = ORM::factory('page')->children_of($parent_id);
     $behavior = Behavior::get($page->behavior_id);
     if (!empty($behavior['limit'])) {
         $pages->limit((int) $behavior['limit']);
     }
     $childrens = $pages->find_all()->as_array('id');
     foreach ($childrens as $index => $child) {
         $childrens[$index]->has_children = $child->has_children();
         $child_behavior = Behavior::get($child->behavior_id);
         if (!empty($child_behavior['link'])) {
             $childrens[$index]->has_children = TRUE;
         }
         $childrens[$index]->is_expanded = in_array($child->id, $expanded_rows);
         if ($childrens[$index]->is_expanded === TRUE) {
             $childrens[$index]->children_rows = $this->children($child->id, $level + 1, true);
         }
     }
     if (!empty($behavior['limit'])) {
         $childrens[] = '...';
     }
     if (!empty($behavior['link'])) {
         $link = strtr($behavior['link'], array(':id' => $parent_id));
         $childrens[] = __(':icon :link', array(':icon' => UI::icon('book'), ':link' => HTML::anchor(URL::backend($link), __(ucfirst($page->behavior_id)))));
     }
     $content = View::factory('page/children', array('childrens' => $childrens, 'level' => $level + 1, 'expanded_rows' => $expanded_rows));
     if ($return === TRUE) {
         return $content;
     }
     echo $content;
 }