Example #1
0
 public function actionDict_edit($book_id)
 {
     if (!Yii::app()->request->isPostRequest) {
         throw new CHttpException(400, "Вы не должны видеть эту страницу. Что бы к этому не привело, пожалуйста, не делайте этого больше.");
     }
     $book = $this->loadBook($book_id);
     if (!$book->can("dict_edit")) {
         throw new CHttpException(403, "Только модераторы могут редактировать словарь перевода.");
     }
     $id = (int) $_POST["id"];
     $ajax = $_POST["ajax"] || $_GET["ajax"];
     if ($id) {
         $dict = Dict::model()->findByPk($id);
         if (!$dict) {
             throw new CHttpException(404, "Слова, которое вы пытаетесь отредактировать, нет в словаре этого перевода.");
         }
     } else {
         $dict = new Dict();
         $dict->book_id = $book->id;
         $dict->user_id = Yii::app()->user->id;
     }
     $dict->setAttributes($_POST);
     if ($dict->save()) {
         if ($ajax) {
             echo json_encode(array("id" => $dict->id, "term" => $dict->term, "descr" => $dict->descr));
         } else {
             $this->redirect($book->getUrl("dict"));
         }
     } else {
         if ($ajax) {
             echo json_encode(array("error" => $dict->getErrorsString()));
         } else {
             Yii::app()->user->setFlash("error", $dict->getErrorsString());
             $this->redirect($book->getUrl("dict"));
         }
     }
 }