예제 #1
0
 /**
  * Заполняет ХЛЕБНЫЕ КРОШКИ
  * @param $id
  * @param $type (mainMenu, category, article)
  * @return array
  */
 public static function fillingBreadcrumbs($id, $type)
 {
     $breadcrumbs = array();
     switch ($type) {
         case 'mainMenu':
             $modelMenu = Mainmenu::model()->findByPk($id);
             $breadcrumbs = array($modelMenu->title => array('articles/list_articles', 'listType' => 'razdel', 'idMenu' => $modelMenu->idMenu));
             break;
         case 'category':
             $modelCategory = Categorys::model()->findByPk($id);
             $modelMenu = Mainmenu::model()->findByPk($modelCategory->idMenu);
             $breadcrumbs = array($modelMenu->title => array('articles/list_articles', 'listType' => 'razdel', 'idMenu' => $modelMenu->idMenu));
             $breadcrumbs = $breadcrumbs + array($modelCategory->title => array('articles/list_articles', 'listType' => 'category', 'idMenu' => $modelMenu->idMenu, 'idCategory' => $modelCategory->idCategory));
             break;
         case 'article':
             $modelArticle = Articles::model()->findByPk($id);
             $modelMenu = Mainmenu::model()->findByPk($modelArticle->idMenu);
             $breadcrumbs = array($modelMenu->title => array('articles/list_articles', 'listType' => 'razdel', 'idMenu' => $modelMenu->idMenu));
             if (!empty($modelArticle->idCategory)) {
                 $modelCategory = Categorys::model()->findByPk($modelArticle->idCategory);
                 $breadcrumbs = $breadcrumbs + array($modelCategory->title => array('articles/list_articles', 'listType' => 'category', 'idMenu' => $modelMenu->idMenu, 'idCategory' => $modelCategory->idCategory));
             }
             $breadcrumbs = $breadcrumbs + array($modelArticle->title);
             break;
     }
     return $breadcrumbs;
 }
예제 #2
0
 /**
  * Карта сайта
  */
 public function actionSite_map()
 {
     // ITEMS MENUS
     $menus = Mainmenu::model()->findAll(array('condition' => 'type = "middle" AND partSite = "site" AND visible = 1'));
     $itemsArray = array();
     foreach ($menus as $oneMenu) {
         $itemMenu = array('label' => $oneMenu->title, 'url' => array($oneMenu->link, 'listType' => 'razdel', 'idMenu' => $oneMenu->idMenu), 'itemOptions' => array('class' => 'itemMenu'), 'linkOptions' => array('class' => 'linkMenu'));
         // ITEMS CATEGORYS
         $categorys = Categorys::model()->findAll(array('condition' => 'idMenu = :idMenu AND active = 1', 'params' => array(':idMenu' => $oneMenu->idMenu)));
         // ITEMS ARTICLES (MENU)
         $articlesMenu = Articles::model()->findAll(array('condition' => 'moderationAppruv = 1 AND public = 1 AND deleted = 0 AND idMenu = :idMenu AND idCategory = 0', 'params' => array(':idMenu' => $oneMenu->idMenu)));
         $categoryItems = array();
         if (!empty($categorys)) {
             foreach ($categorys as $oneCategory) {
                 $itemCategory = array('label' => $oneCategory->title, 'url' => array('articles/list_articles', 'listType' => 'category', 'idMenu' => $oneCategory->idMenu, 'idCategory' => $oneCategory->idCategory), 'itemOptions' => array('class' => 'itemCategory'), 'linkOptions' => array('class' => 'linkCategory'));
                 // ITEMS ARTICLES (MENU - CATEGORY)
                 $articles = Articles::model()->findAll(array('condition' => 'moderationAppruv = 1 AND public = 1 AND deleted = 0 AND idMenu = :idMenu AND idCategory = :idCategory', 'params' => array(':idMenu' => $oneMenu->idMenu, ':idCategory' => $oneCategory->idCategory)));
                 if (!empty($articles)) {
                     $catMenuArtItem = array();
                     foreach ($articles as $oneArticle) {
                         $catMenuArtItem['items'][] = array('label' => $oneArticle->title, 'url' => array('articles/view_article', 'idArticle' => $oneArticle->idArticle, 'idMenu' => $oneArticle->idMenu), 'itemOptions' => array('class' => 'itemArticle'), 'linkOptions' => array('class' => 'linkArticle'));
                     }
                     $categoryItems['items'][] = $itemCategory + $catMenuArtItem;
                 } else {
                     $categoryItems['items'][] = $itemCategory;
                 }
             }
         }
         if (!empty($articlesMenu)) {
             foreach ($articlesMenu as $oneArticleMenu) {
                 $categoryItems['items'][] = array('label' => $oneArticleMenu->title, 'url' => array('articles/view_article', 'idArticle' => $oneArticleMenu->idArticle, 'idMenu' => $oneArticleMenu->idMenu), 'itemOptions' => array('class' => 'itemArticle'), 'linkOptions' => array('class' => 'linkArticle'));
             }
         }
         if (!empty($categoryItems['items'])) {
             $itemsArray['items'][] = $itemMenu + $categoryItems;
         } else {
             $itemsArray['items'][] = $itemMenu;
         }
     }
     $this->render('site_map', array('itemsArray' => $itemsArray));
 }
예제 #3
0
 /**
  * Добавление статьи пользователем
  */
 public function actionNew_article()
 {
     if (Yii::app()->request->isAjaxRequest) {
         if (isset($_POST['idMenu'])) {
             $category1 = array('' => 'Без категории');
             $category2 = Categorys::getAllCategories($_POST['idMenu']);
             $category = $category1 + $category2;
             $filteredCategory = array();
             $i = 0;
             foreach ($category as $key => $val) {
                 $filteredCategory[$i]['id'] = $key;
                 $filteredCategory[$i]['title'] = $val;
                 $i++;
             }
             echo CJSON::encode(array('categorys' => $filteredCategory));
             exit;
         }
     }
     // Проверки на доступ к странице
     if (Yii::app()->user->isGuest) {
         $this->redirect(Yii::app()->homeUrl);
     }
     if (isset($_POST['cancel'])) {
         $this->redirect(Yii::app()->homeUrl);
     }
     $model = new Articles('create');
     // Нажата кнопка "Редактировать" или "Добавить"
     if (isset($_POST['Articles'])) {
         $oldFile = null;
         $oldFile = $model->photo;
         // Генерим имя фото
         if ('' != $_FILES['Articles']['name']['image']) {
             $fileName = AuxiliaryFunctions::getUniquNamePhoto($_FILES['Articles']['name']['image']);
             $_POST['Articles']['photo'] = $fileName;
             $oldFile = $model->photo;
         }
         $model->attributes = $_POST['Articles'];
         $model->idUser = Yii::app()->user->id;
         if ($model->validate()) {
             if ($model->save()) {
                 if ($fileName) {
                     AuxiliaryFunctions::savePhoto($model, $fileName, $oldFile);
                 }
                 if (1 == $model->public && 1 == $model->moderationAppruv) {
                     $this->redirect($this->createAbsoluteUrl('articles/view_article', array('idArticle' => $model->idArticle, 'idMenu' => $model->idMenu)));
                 }
                 $this->redirect($this->createAbsoluteUrl('base/index', array('referrer' => 'new_article')));
             }
         }
     }
     $menus = Mainmenu::model()->getDropDownMenu();
     $idMenu = !empty($model->idMenu) ? $model->idMenu : key($menus);
     $category1 = array('' => 'Без категории');
     $category2 = Categorys::getAllCategories($idMenu);
     $category = $category1 + $category2;
     $this->render('new_article', array('model' => $model, 'menus' => $menus, 'category' => $category));
 }
예제 #4
0
 /**
  *
  */
 public function actionPopups()
 {
     if (isset($_POST['popup'])) {
         $popup = '';
         switch ($_POST['popup']) {
             case 'newCategory':
                 $model = new Categorys();
                 $menus = Mainmenu::model()->getDropDownMenu();
                 $popup = $this->renderPartial('categorys/save_category', array('model' => $model, 'menus' => $menus), true);
                 break;
         }
         echo CJSON::encode(array('popup' => $popup));
         exit;
     }
 }