Пример #1
0
 public function actionIndex($param = null)
 {
     if (isset($_POST['ReviewAuthor'])) {
         $this->addNewReview($_POST);
     }
     //Общий список отзывов
     $root = ReviewRubrics::getRoot(new ReviewRubrics());
     $model['groups'] = $root->descendants(1)->findAll($root->id);
     $this->setSEO(Yii::app()->request->requestUri, 'Отзывы');
     if (empty($param)) {
         $model['elements'] = ReviewElements::model()->findAll('`status` = 1 ORDER BY review_data DESC');
     } else {
         //Число - это элемент
         if (is_numeric($param)) {
             $model['elements'] = ReviewElements::model()->findAll('`status` = 1 AND id = ' . (int) $param);
             if (empty($model['elements'])) {
                 throw new CHttpException(404, 'The page can not be found.');
             }
         } else {
             //Ссылка - это раздел
             $model['elements'] = ReviewElements::model()->findAll('`status` = 1 AND parent_id in (SELECT id FROM {{review_rubrics}} WHERE url LIKE "' . trim($param) . '")');
         }
     }
     $this->render('index', array('model' => $model, 'param' => $param));
 }
Пример #2
0
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'update' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate($id)
 {
     $this->breadcrumbs = array('Отзывы' => array('/review/review'), 'Редактировать запись');
     $model = $this->loadModel($id);
     $root = ReviewRubrics::getRoot(new ReviewRubrics());
     $catalog = $root->descendants()->findAll($root->id);
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     // set attributes from get
     if (isset($_GET['ReviewElements'])) {
         $model->attributes = $_GET['ReviewElements'];
     }
     if (isset($_POST['ReviewElements'])) {
         $model->attributes = $_POST['ReviewElements'];
         if ($model->save()) {
             $url = isset($_POST['go_to_list']) ? $this->listUrl('index') : $this->itemUrl('update', $model->id);
             $this->redirect($url);
         }
     }
     $this->render('update', array('model' => $model, 'root' => $root, 'catalog' => $catalog));
 }
 /**
  * Manages all models.
  */
 public function actionIndex($id = null)
 {
     $this->breadcrumbs = array('Вопрос-ответ' => array('/review/reviewrubrics/index'));
     set_time_limit(0);
     //получаем URL
     $base_patch = SITE_NAME_FULL . '/review';
     if (!empty($id)) {
         $model = ReviewRubrics::model()->findByPk((int) $id);
         if ($model) {
             $i = (int) $id;
             $array = array();
             do {
                 $model = ReviewRubrics::model()->findByPk((int) $i);
                 if (isset($model->id)) {
                     $array[] = $model->id;
                 }
                 $i = (int) $model->parent_id;
             } while ($i != 0);
             $array = array_reverse($array);
             unset($array[0]);
             foreach ($array as $value) {
                 $base_patch .= '/' . ReviewRubrics::model()->findByPk((int) $value)->url;
             }
         }
     }
     if (!empty($id)) {
         $model = ReviewRubrics::model()->findByPk((int) $id);
         $root = ReviewRubrics::getRoot($model);
         $category = ReviewRubrics::model()->findByPk((int) $id);
         //Получаем нужный узел
         $descendants = $category->descendants(1)->findAll();
         $param[] = 'left_key > ' . $model->left_key . ' AND right_key < ' . $model->right_key;
     } else {
         $model = new ReviewRubrics();
         $category = ReviewRubrics::getRoot($model);
         $category = ReviewRubrics::model()->findByPk($category->id);
         $descendants = $category->descendants(1)->findAll();
         $root = "";
         $param[] = 'level=2';
     }
     $model = new ReviewRubrics();
     $param = implode(" AND ", $param);
     $data = array('criteria' => array('condition' => $param));
     if ($settingsModel = SiteModuleSettings::model()->find('site_module_id = 7')) {
         $data['Pagination'] = array('PageSize' => (int) $settingsModel->elements_page_admin > 0 ? $settingsModel->elements_page_admin : 100);
     }
     $data['sort'] = array('defaultOrder' => 'left_key ASC');
     $provider = new CActiveDataProvider('ReviewRubrics', $data);
     $provider->criteria = $model->search($param);
     $this->render('list', array('model' => $model, 'provider' => $provider, 'root' => $root, 'categories' => $descendants, 'base_patch' => $base_patch));
 }