コード例 #1
0
ファイル: DefaultController.php プロジェクト: AxelPanda/ibos
 private function update()
 {
     $uid = Ibos::app()->user->uid;
     $articleId = $_POST["articleid"];
     $this->beforeSaveData($_POST);
     $this->addOrUpdateArticle("update", $_POST, $uid);
     if ($_POST["type"] == parent::ARTICLE_TYPE_PICTURE) {
         $pidids = $_POST["picids"];
         if (!empty($pidids)) {
             ArticlePicture::model()->deleteAll("articleid=:articleid", array(":articleid" => $articleId));
             AttachUtil::updateAttach($pidids);
             $attach = AttachUtil::getAttach($pidids, true, true, false, false, true);
             $this->addPicture($attach, $articleId);
         }
     }
     $attachmentid = trim($_POST["attachmentid"], ",");
     if (!empty($attachmentid)) {
         AttachUtil::updateAttach($attachmentid);
         Article::model()->modify($articleId, array("attachmentid" => $attachmentid));
     }
     $dashboardConfig = $this->getDashboardConfig();
     if (isset($_POST["votestatus"]) && $this->getVoteInstalled() && $dashboardConfig["articlevoteenable"]) {
         $voteItemType = $_POST["voteItemType"];
         $type = $voteItemType == 1 ? "vote" : "imageVote";
         if (!empty($voteItemType) && trim($_POST[$type]["subject"]) != "") {
             $this->updateVote($voteItemType, $type, $articleId, $uid);
             $rcord = Article::model()->fetch(array("select" => array("votestatus"), "condition" => "articleid=:articleid", "params" => array(":articleid" => $articleId)));
             if ($rcord["votestatus"] == 0) {
                 Article::model()->modify($articleId, array("votestatus" => 1));
             }
         } else {
             Article::model()->modify($articleId, array("votestatus" => 0));
         }
     }
     $user = User::model()->fetchByUid($uid);
     $article = Article::model()->fetchByPk($articleId);
     $categoryName = ArticleCategory::model()->fetchCateNameByCatid($article["catid"]);
     if (!empty($_POST["msgRemind"]) && $article["status"] == 1) {
         $publishScope = array("deptid" => $article["deptid"], "positionid" => $article["positionid"], "uid" => $article["uid"]);
         $uidArr = ArticleUtil::getScopeUidArr($publishScope);
         $config = array("{sender}" => $user["realname"], "{category}" => $categoryName, "{subject}" => $article["subject"], "{content}" => $this->renderPartial("remindcontent", array("article" => $article, "author" => $user["realname"]), true), "{url}" => Ibos::app()->urlManager->createUrl("article/default/index", array("op" => "show", "articleid" => $article["articleid"])));
         if (0 < count($uidArr)) {
             Notify::model()->sendNotify($uidArr, "article_message", $config, $uid);
         }
     }
     if ($article["status"] == 2) {
         $this->sendPending($article, $uid);
     }
     ArticleBack::model()->deleteAll("articleid = {$articleId}");
     $this->success(Ibos::lang("Update succeed"), $this->createUrl("default/index"));
 }