Example #1
0
 public function execute()
 {
     $errors = array();
     $tp = SJB_System::getTemplateProcessor();
     $i18n = SJB_I18N::getInstance();
     $lang = $i18n->getLanguageData($i18n->getCurrentLanguage());
     $langId = $lang['id'];
     // Category SID incoming as part of URL.
     $categoryId = SJB_Request::getVar("category_sid");
     if (isset($_REQUEST['passed_parameters_via_uri'])) {
         $passed_parameters_via_uri = SJB_UrlParamProvider::getParams();
         $categoryId = isset($passed_parameters_via_uri[0]) ? $passed_parameters_via_uri[0] : null;
     }
     if ($categoryId && $categoryId != 'category') {
         $article = false;
         if (is_null($categoryId)) {
             $errors['ITEM_SID_IS_EMPTY'] = 1;
         } else {
             $article = SJB_NewsManager::getActiveItemBySID($categoryId);
         }
         if (!$article) {
             $errors['ARTICLE_NOT_EXISTS'] = 1;
             echo SJB_System::executeFunction('static_content', 'show_static_content', array('pageid' => '404'));
             return;
         }
         $tp->assign('article', $article);
         $template = 'article_details.tpl';
     } else {
         $categoryId = isset($passed_parameters_via_uri[1]) ? $passed_parameters_via_uri[1] : null;
         // other params in query string
         $searchText = SJB_Request::getVar('search_text', false);
         $current_page = SJB_Request::getVar('page', 1);
         $itemsPerPage = 10;
         $action = SJB_Request::getVar('action');
         if ($action == 'search') {
             // COUNT FOR SEARCH ACTION
             $totalNews = SJB_NewsManager::getAllNewsCountBySearchText($searchText, $langId, true);
         } else {
             $totalNews = SJB_NewsManager::getAllNewsCount($categoryId, $langId, true);
         }
         $pages = ceil($totalNews / $itemsPerPage);
         if ($pages == 0) {
             $pages = 1;
         }
         if ($current_page > $pages) {
             $current_page = $pages;
         }
         if ($action == 'search') {
             // GET ARTICLES FOR SEARCH ACTION
             if ($totalNews == 0) {
                 $articles = array();
             } else {
                 $articles = SJB_NewsManager::searchArticles($searchText, $langId, true);
             }
         } else {
             $articles = SJB_NewsManager::getNewsByPage($current_page, $itemsPerPage, $categoryId, $langId, true);
         }
         $tp->assign('searchText', $searchText);
         $tp->assign('current_page', $current_page);
         $tp->assign('pages', $pages);
         $tp->assign('articles', $articles);
         $categories = SJB_NewsManager::getCategories($langId);
         $countOfNotEmptyCategories = 0;
         foreach ($categories as $category) {
             if ($category['count'] > 0) {
                 $countOfNotEmptyCategories++;
             }
         }
         $showCategoriesBlock = false;
         if ($countOfNotEmptyCategories > 1) {
             $showCategoriesBlock = true;
         }
         $tp->assign('show_categories_block', $showCategoriesBlock);
         $tp->assign('categories', $categories);
         $tp->assign('current_category_sid', $categoryId);
         $template = 'articles_list.tpl';
     }
     $tp->display($template);
 }
Example #2
0
 public function execute()
 {
     $errors = array();
     $action = $this->getNewsAction();
     $tp = SJB_System::getTemplateProcessor();
     $categoryId = SJB_Request::getVar('category_sid');
     if (empty($categoryId)) {
         $categoryId = SJB_Request::getVar('category_id');
     }
     $category = SJB_NewsManager::getCategoryBySid($categoryId);
     $tp->assign('category_id', $categoryId);
     $tp->assign('category', $category);
     $allCategories = SJB_NewsManager::getCategories();
     $tp->assign('all_categories', $allCategories);
     /****************** ACTIONS ***************************/
     switch ($action) {
         case 'add':
             $article = new SJB_NewsArticle($_REQUEST);
             $articleAddForm = new SJB_Form($article);
             $articleAddForm->registerTags($tp);
             $formSubmitted = SJB_Request::getVar('form_submit', false);
             if ($formSubmitted && $articleAddForm->isDataValid($errors)) {
                 SJB_NewsDBManager::saveNewsArticle($article);
                 $articleSID = $article->getSID();
                 if ($articleSID) {
                     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/news-categories/?action=edit&category_sid={$categoryId}&newsAdded=1");
                     exit;
                 } else {
                     $errors[] = 'UNABLE_TO_ADD_ARTICLE';
                 }
             } else {
                 $article = new SJB_NewsArticle($_REQUEST);
                 $article->deleteProperty('category_id');
                 // cause it set in form by get param
                 $articleAddForm = new SJB_Form($article);
                 $articleAddForm->registerTags($tp);
                 $formFields = $articleAddForm->getFormFieldsInfo();
                 $tp->assign('form_fields', $formFields);
                 $metaDataProvider = SJB_ObjectMother::getMetaDataProvider();
                 $tp->assign("METADATA", array("form_fields" => $metaDataProvider->getFormFieldsMetadata($formFields)));
             }
             $tp->assign('uploadMaxFilesize', SJB_UploadFileManager::getIniUploadMaxFilesize());
             $tp->assign('errors', $errors);
             $tp->display('add_article.tpl');
             break;
         case 'edit':
             $itemSID = SJB_Request::getVar('article_sid', false);
             if (!$itemSID) {
                 $errors[] = 'NO_ITEM_SID_PRESENT';
             } else {
                 $articleInfo = SJB_NewsManager::getNewsArticleInfoBySid($itemSID);
                 $articleInfo = array_merge($articleInfo, $_REQUEST);
                 $article = new SJB_NewsArticle($articleInfo);
                 $articleEditForm = new SJB_Form($article);
                 $articleEditForm->registerTags($tp);
                 $formSubmitted = SJB_Request::getVar('form_submit', false);
                 if ($formSubmitted && $articleEditForm->isDataValid($errors)) {
                     $article->setSID($itemSID);
                     // if need to change article category
                     $moveToCategory = SJB_Request::getVar('article_category');
                     if (!empty($moveToCategory) && is_numeric($moveToCategory)) {
                         $article->setPropertyValue('category_id', $moveToCategory);
                     }
                     SJB_NewsDBManager::saveNewsArticle($article);
                     SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/news-categories/?action=edit&category_sid={$categoryId}&newsSaved=1");
                 } else {
                     $formFields = $articleEditForm->getFormFieldsInfo();
                     $tp->assign('form_fields', $formFields);
                     $tp->assign('article_sid', $itemSID);
                     $metaDataProvider = SJB_ObjectMother::getMetaDataProvider();
                     $tp->assign("METADATA", array("form_fields" => $metaDataProvider->getFormFieldsMetadata($formFields)));
                 }
             }
             $tp->assign('errors', $errors);
             $tp->assign('category', $category);
             $tp->assign("uploadMaxFilesize", SJB_UploadFileManager::getIniUploadMaxFilesize());
             $tp->display('edit_article.tpl');
             break;
         case 'delete':
             $itemSIDs = SJB_Request::getVar('news');
             foreach ($itemSIDs as $sid => $item) {
                 SJB_NewsManager::deleteArticleBySID($sid);
             }
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/news-categories/?action=edit&category_sid={$categoryId}&newsDeleted=1");
             break;
         case 'delete_image':
             $articleSid = SJB_Request::getVar('article_sid');
             SJB_NewsManager::deleteArticleImageByArticleSid($articleSid);
             // get category
             $article = SJB_NewsManager::getNewsArticleBySid($articleSid);
             $categoryId = $article->getCategoryId();
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/manage-news/?action=edit&article_sid={$articleSid}&category_sid={$categoryId}");
             break;
         case 'activate':
             $itemSIDs = SJB_Request::getVar('news');
             foreach ($itemSIDs as $sid => $item) {
                 SJB_NewsManager::activateItemBySID($sid);
             }
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/news-categories/?action=edit&category_sid={$categoryId}");
             break;
         case 'deactivate':
             $itemSIDs = SJB_Request::getVar('news');
             foreach ($itemSIDs as $sid => $item) {
                 SJB_NewsManager::deactivateItemBySID($sid);
             }
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/news-categories/?action=edit&category_sid={$categoryId}");
             break;
         case 'archive':
             $itemSIDs = SJB_Request::getVar('news');
             foreach ($itemSIDs as $sid => $item) {
                 SJB_NewsManager::moveArticleToArchiveBySid($sid);
             }
             SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/news-categories/?action=edit&category_sid={$categoryId}");
             break;
         default:
             $page = SJB_Request::getVar('page', 1);
             $itemsPerPage = SJB_Request::getVar('items_per_page', 10);
             $totalNewsCount = SJB_NewsManager::getAllNewsCount($categoryId);
             $pages = ceil($totalNewsCount / $itemsPerPage);
             // get news for current page
             $news = SJB_NewsManager::getNewsByPage($page, $itemsPerPage);
             $tp->assign('news', $news);
             $tp->assign('pages', $pages);
             $tp->assign('items_per_page', $itemsPerPage);
             $tp->assign('current_page', $page);
             $tp->display('manage_news.tpl');
             break;
     }
 }