Exemplo n.º 1
0
 protected function moduleList2($data)
 {
     $pages = $data['pages'];
     $mpage_id = ModulesInPages::model()->getLink($data['doc_id_last'], 'list2');
     $records_on_page = 0;
     // количество публикаций на странице
     $type = explode($pages->make_url($data['doc_id_last']), '/' . Yii::app()->request->pathInfo);
     $type = explode('/', $type[1]);
     $type = $type[0];
     if (substr($type, 0, 5) == 'show_') {
         // конкретная публикация
         $lenta = new ModuleList2();
         $item_id = floor(substr($type, 5));
         if ($lenta->existsItem($mpage_id, $item_id, 1)) {
             $data['item_id'] = $item_id;
             $data['item'] = $lenta->getItem($item_id, $mpage_id);
             $data['other_lenta'] = $lenta->getOtherList($mpage_id, $item_id, 4, 1);
             if (count($data['item']) == 0) {
                 $this->redirect($pages->make_url($data['doc_id_last']));
             } else {
                 $data['title_original'] = $data['title'];
                 $data['title'] = $data['item']['title'] . ' — ' . $data['title'];
                 $this->render('list2_show', $data);
             }
         } else {
             // публикация не найдена
             $this->redirect($pages->make_url($data['doc_id_last']));
         }
     } elseif (substr($type, 0, 5) == 'page_' || empty($type)) {
         // выбор страницы
         $page = 1;
         $lenta = new ModuleList2();
         if (!empty($type)) {
             $page = floor(substr($type, 5));
         }
         if ($page < 1) {
             $page = 1;
         }
         if ($records_on_page > 0) {
             $data['pagination'] = $this->pagination($pages->make_url($data['doc_id_last']) . 'page_', $lenta->getCount($mpage_id, 1), $page, $records_on_page);
         }
         $offset = ($page - 1) * $records_on_page;
         $limit = $records_on_page;
         $data['lenta'] = ModuleList2::model()->getList($mpage_id, $offset, $limit, 1);
         $data['url_for_menu'] = substr(substr($data['pages']->make_url($data['doc_id_last']), 0, -1), 1);
         $this->render('list2', $data);
     } else {
         // неизвестный тип отображения ПУБЛИКАЦИЙ
         $this->redirect($pages->make_url($data['doc_id_last']));
     }
 }