private function getMenuListFor($section_id, $level, $max_level, $max_count, $TEMPLATE, $templ_file, $no_view) { $pages = ''; $num = 0; $cur_level = isset($TEMPLATE[$level]) ? $level : $level - 1; $all_count = ormPages::getViewOfSection($section_id); while ($page = ormPages::getPageOfSection($section_id, $no_view)) { if ($page->view_in_menu && (empty($max_count) || $max_count > $num)) { $act = in_array($page->id, ormPages::getActiveId()) ? '_active' : ''; if (isset($TEMPLATE[$cur_level]['list' . $act])) { $fi = page::getFields('obj', $TEMPLATE[$cur_level]['list' . $act]); } else { return page::errorBlock('structure.menu', $templ_file, 'list' . $act); } $sub_menu = ''; if ($page->view_submenu && isset($fi['mono']) && in_array('sub_menu', $fi['mono']) && $page->issetChildren()) { $sub_menu = $this->getMenuListFor($page->id, $cur_level + 1, $max_level, $max_count, $TEMPLATE, $templ_file, $no_view); } page::assign('sub_menu', $sub_menu); $num++; $target = $page->in_new_window ? ' target="_blank"' : ''; page::assign('obj.num', $num); page::assign('obj.target', $target); page::assign('class-first', $num == 1 ? 'first' : ''); page::assign('class-last', $num == $all_count ? 'last' : ''); page::assign('class-odd', $num % 2 == 0 ? 'odd' : ''); page::assign('class-even', $num % 2 != 0 ? 'even' : ''); page::assign('class-third', $num % 3 == 0 ? 'third' : ''); page::assign('obj.id', $page->id); page::assign('obj.name', $page->name); page::assign('obj.url', $page->_url); page::assign('obj.h1', $page->h1); page::assign('obj.title', $page->title); page::assign('obj.keywords', $page->keywords); page::assign('obj.description', $page->description); page::assign('obj.img_h1', $page->img_h1); page::assign('obj.img_act', $page->img_act); page::assign('obj.img_no_act', $page->img_no_act); if ($num > 1 && isset($TEMPLATE[$cur_level]['separator'])) { $pages .= page::parse($TEMPLATE[$cur_level]['separator']); } $class = $page->getClass()->getSName(); $tname = isset($TEMPLATE[$cur_level]['list_' . $class . $act]) ? 'list_' . $class . $act : 'list' . $act; if (!isset($TEMPLATE[$cur_level][$tname])) { $tname = 'list'; } if (isset($TEMPLATE[$cur_level][$tname])) { $pages .= page::parse($TEMPLATE[$cur_level][$tname]); } } } if (!empty($pages)) { page::assign('list', $pages); return page::parse($TEMPLATE[$cur_level]['frame']); } }
private function getTreeObject($section_id) { if ($this->isPagesTree) { if ($page = ormPages::getPageOfSection($section_id, $this->orm_classes)) { if ($page->isEditable()) { return $page; } else { return $this->getTreeObject($section_id); } } } }