예제 #1
0
 public function actionAddContent()
 {
     $langs = Yii::app()->params['translatedLanguages'];
     //var_dump($langs);die;
     if (Yii::app()->request->isPostRequest) {
         //var_dump($_POST);die;
         $page_id = Yii::app()->request->getPost('page_id');
         $text = Yii::app()->request->getPost('text');
         $alias = Yii::app()->request->getPost('alias');
         if (!$page_id || !$alias) {
             echo CJSON::encode(array('error' => 'Ошибка запроса. Обновите страницу и попробуйте ещё раз.'));
             Yii::app()->end();
         }
         $model = new Contents();
         $model->alias = $alias;
         $model->page_id = $page_id;
         if (!$model->validate()) {
             echo CActiveForm::validate($model);
             Yii::app()->end();
         } else {
             $transaction = Yii::app()->db->beginTransaction();
             try {
                 if (!$model->save()) {
                     throw new Exception('Ошибка при сохранении данных.');
                 }
                 foreach ($langs as $lang => $value) {
                     $modelLang = new ContentsLang();
                     $modelLang->text = $text;
                     $modelLang->lang = $lang;
                     $modelLang->content_id = $model->id;
                     if (!$modelLang->save()) {
                         throw new Exception('Ошибка при сохранении данных.');
                     }
                 }
                 $transaction->commit();
             } catch (Exception $e) {
                 $transaction->rollBack();
                 echo CJSON::encode(array('error' => $e->getMessage()));
                 Yii::app()->end();
             }
         }
         echo CJSON::encode(array());
         Yii::app()->end();
     }
 }