/** * Заполняет ХЛЕБНЫЕ КРОШКИ * @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; }
/** * Карта сайта */ 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)); }
/** * Добавление статьи пользователем */ 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)); }
/** * */ 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; } }