Exemple #1
0
 public function NewsAction()
 {
     $newsModel = new NewsModel();
     $request = Project::getRequest();
     $user = Project::getUser()->getDbUser();
     if (!$user->id) {
         $user->id = 0;
     }
     $isAdmin = $user->user_type_id == 1 ? true : false;
     $isPartner = $user->user_type_id == 4 ? true : false;
     $isTabsSnow = false;
     // if !$isTabsSnow you can show tabs
     //  view type and filters
     switch ($request->view) {
         // View type
         case 'full':
             // full news list
             $_SESSION['newsViewType'] = 'full';
             break;
         case 'report':
             // report news list
             $_SESSION['newsViewType'] = 'report';
             break;
         case 'news_all':
             // no filter, all news
             $_SESSION['newsViewFilter'] = 'news_all';
             break;
         case 'news_subscribe':
             // filter, only subscribe news
             $_SESSION['newsViewFilter'] = 'news_subscribe';
             break;
         case 'news_stared':
             // filter, only news star
             $_SESSION['newsViewFilter'] = 'news_stared';
             break;
     }
     $_SESSION['newsViewType'] = $_SESSION['newsViewType'] ? $_SESSION['newsViewType'] : 'report';
     $_SESSION['newsViewFilter'] = $_SESSION['newsViewFilter'] ? $_SESSION['newsViewFilter'] : 'news_subscribe';
     switch ($_SESSION['newsViewType']) {
         // View type
         case 'full':
             // full news list
             $viewCheckedClass = array('viewCheckedClass', '');
             break;
         case 'report':
             // report news list
             $viewCheckedClass = array('', 'viewCheckedClass');
             break;
     }
     switch ($_SESSION['newsViewFilter']) {
         // View filter
         case 'news_all':
             // no filter, all news
             $newsViewFilter = array('viewCheckedClass', '', '');
             $isOnlyFavoriteNews = false;
             $isOnlySubscribeNewsTree = false;
             break;
         case 'news_subscribe':
             // filter, only subscribe news
             $newsViewFilter = array('', 'viewCheckedClass', '');
             $isOnlyFavoriteNews = false;
             $isOnlySubscribeNewsTree = true;
             break;
         case 'news_stared':
             // filter, only news star
             $newsViewFilter = array('', '', 'viewCheckedClass');
             $isOnlyFavoriteNews = true;
             $isOnlySubscribeNewsTree = false;
             break;
     }
     if (!$user->id) {
         // if NOT REGISTRED USER
         $this->_view->assign('newsViewFilter', 'news_all');
         $isOnlyFavoriteNews = false;
         $isOnlySubscribeNewsTree = false;
     } else {
         $this->_view->assign('newsViewFilter', $_SESSION['newsViewFilter']);
     }
     if ($request->shownow == 'allnews') {
         // if click on "(все новости [15])"
         $this->_view->assign('newsViewType', 'full');
         $this->_view->assign('nShowRows', 0);
         // Show all news records
         if (!$isTabsSnow) {
             $newsViewModel = new NewsView();
             if ($request->filterNewsTreeFeeds) {
                 $breadCrumb = $newsViewModel->ShowNewsTreeBreadCrumbByNewsTreeFeedsId($request->filterNewsTreeFeeds, false);
             } else {
                 $breadCrumb = $newsViewModel->ShowNewsTreeBreadCrumbByNewsTreeId($request->filterNewsTree, false);
             }
             $this->_view->assign('tab_list', TabController::getNewsTabs($user->id, $isAdmin, false, false, false, false, false, array(), true, $breadCrumb));
             // Show tabs
             $isTabsSnow = true;
         }
     } else {
         $this->_view->assign('newsViewType', $_SESSION['newsViewType']);
         $this->_view->assign('nShowRows', 4);
         // Show all news records
     }
     $this->_view->assign('shownow', $request->shownow);
     $this->_view->assign('viewCheckedClass', $viewCheckedClass);
     $this->_view->assign('viewFilterCheckedClass', $newsViewFilter);
     // END view type and filters
     $this->_view->assign('user_id', $user->id);
     $this->_view->assign('isAdmin', $isAdmin);
     $this->_view->assign('isPartner', $isPartner);
     $news_tree_id = $request->news_tree_id;
     if ($request->news_id) {
         if ($isAdmin) {
             $isNewsTreeActive = false;
             $isNewsBannersActive = false;
         } else {
             $isNewsTreeActive = true;
             $isNewsBannersActive = true;
         }
         $news = $newsModel->getNewsById($request->news_id, $user->id, $isNewsTreeActive, $isNewsBannersActive);
         if (!$news) {
             Project::getResponse()->redirect(Project::getRequest()->createUrl('News', 'News'));
         }
         $this->_view->assign('news', $news);
         $tabsNews = array("title" => $newsModel->getNWordsFromText($news['news_title'], 7), "id" => $request->news_id);
         if (!$isTabsSnow) {
             $this->_view->assign('tab_list', TabController::getNewsTabs($user->id, $isAdmin, false, false, false, false, true, $tabsNews));
             // Show tabs
             $isTabsSnow = true;
         }
         $this->_view->assign('isShowOneNews', true);
         $newsModel->setNews_Views($request->news_id, 1);
     } else {
         if (!$isTabsSnow) {
             $this->_view->assign('tab_list', TabController::getNewsTabs($user->id, $isAdmin, true));
             // Show tabs
             $isTabsSnow = true;
         }
         $this->_view->assign('isShowOneNews', false);
     }
     $aNewsTreeList = $newsModel->getAllNews();
     $this->_view->assign('news_tree_list', $aNewsTreeList);
     // all News tree
     $this->_view->assign('filterNewsTree', $request->filterNewsTree);
     // filter by News tree ID
     $this->_view->assign('filterNewsTreeFeeds', $request->filterNewsTreeFeeds);
     // filter by News tree feeds ID
     // PAGER
     $news_per_page = $this->getParam("NEWS_PER_PAGE");
     $pager_view = new SitePagerView();
     if ($request->filterNewsTreeFeeds) {
         // pager for All news , filterNewsTreeFeeds
         $news_count = $newsModel->getNewsCountByNewsTreeFeedsId($request->filterNewsTreeFeeds, $user->id, $isOnlySubscribeNewsTree, $isOnlyFavoriteNews);
         $pages_number = $pager_view->getPagesNumber($news_count, $news_per_page);
         $current_page_number = $request->getKeyByNumber(2);
         $news_pager = $pager_view->show3('News', 'News', array("shownow" => "allnews", "filterNewsTreeFeeds" => $request->filterNewsTreeFeeds), $pages_number, $current_page_number);
         $this->_view->assign('news_tree_pager', $news_pager);
         $this->_view->assign('page_settings', array("record_per_page" => $news_per_page, "current_page_number" => $current_page_number + 1));
     } elseif ($request->filterNewsTree) {
         // pager for All news , filterNewsTree
         $news_count = $newsModel->getNewsCountByNewsTreeId($request->filterNewsTree, $user->id, $isOnlySubscribeNewsTree, $isOnlyFavoriteNews);
         $pages_number = $pager_view->getPagesNumber($news_count, $news_per_page);
         $current_page_number = $request->getKeyByNumber(2);
         $news_pager = $pager_view->show3('News', 'News', array("shownow" => "allnews", "filterNewsTree" => $request->filterNewsTree), $pages_number, $current_page_number);
         $this->_view->assign('news_tree_pager', $news_pager);
         $this->_view->assign('page_settings', array("record_per_page" => $news_per_page, "current_page_number" => $current_page_number + 1));
     }
     // END PAGER
     $aNewsSubscribe = $newsModel->getNewsSubscribeByUserId($user->id);
     $this->_view->assign('aNewsSubscribe', $aNewsSubscribe);
     // all NewsSubscribe
     switch ($request->view) {
         // View type
         /*        case 'full': // full news list
         	           $_SESSION['newsViewType'] = 'full';
         	           break;
         	        case 'report': // report news list
         	           $_SESSION['newsViewType'] = 'report';
         	           break;
         	         */
         case 'news_all':
             // no filter, all news
             $this->_view->assign('tab_list', TabController::getNewsTabs($user->id, $isAdmin, true, false, false, false, false, $tabsNews));
             // Show tabs
             break;
         case 'news_subscribe':
             // filter, only subscribe news
             $this->_view->assign('tab_list', TabController::getNewsTabs($user->id, $isAdmin, false, false, true, false, false, $tabsNews));
             // Show tabs
             break;
         case 'news_stared':
             // filter, only news star
             $this->_view->assign('tab_list', TabController::getNewsTabs($user->id, $isAdmin, false, false, false, false, false, $tabsNews, false, false, false, false, false, true));
             // Show tabs
             break;
     }
     $this->_view->NewsPage();
     $this->_view->parse();
 }