예제 #1
0
 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']);
     }
 }
예제 #2
0
 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);
             }
         }
     }
 }