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")); } } }