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; }