Example #1
0
 public function actionShow()
 {
     $uid = Ibos::app()->user->uid;
     $docid = EnvUtil::getRequest("id");
     $version = EnvUtil::getRequest("version");
     if (empty($docid)) {
         $this->ajaxReturn("", "JSONP");
     }
     $officialDocEntity = new ICOfficialdoc($docid);
     $officialDoc = $officialDocEntity->getAttributes();
     if ($version) {
         $versionData = OfficialdocVersion::model()->fetchByAttributes(array("docid" => $docid, "version" => $version));
         $officialDoc = array_merge($officialDoc, $versionData);
     }
     if (!empty($officialDoc)) {
         if (!OfficialdocUtil::checkReadScope($uid, $officialDoc)) {
             $this->error(Ibos::lang("You do not have permission to read the officialdoc"), $this->createUrl("default/index"));
         }
         $data = ICOfficialdoc::getShowData($officialDoc);
         OfficialdocReader::model()->addReader($docid, $uid);
         Officialdoc::model()->updateClickCount($docid, $data["clickcount"]);
         $page = EnvUtil::getRequest("page");
         $criteria = new CDbCriteria();
         $pages = new CPagination(OfficialdocUtil::getCharacterLength($data["content"]));
         $pages->pageSize = 2000;
         $pages->applyLimit($criteria);
         $tmpContent = OfficialdocUtil::subHtml($data["content"], $pages->getCurrentPage() * $pages->getPageSize(), ($pages->getCurrentPage() + 1) * $pages->getPageSize());
         $data["content"] = $tmpContent;
         if (!empty($page) && $page != 1) {
             $data["content"] = "<div><div style=\"border-bottom:4px solid #e26f50;margin-top:60px;\"></div><div style=\"border-top:1px solid #e26f50;margin-top:4px;\"><div><p style=\"text-align:center;\"></p><div id=\"original-content\" style=\"min-height:400px;font:16px/2 fangsong,simsun;color:#666;\"><table cellspacing=\"0\" cellpadding=\"0\" width=\"95%\" align=\"center\"><tbody><tr><td class=\"p1\"><span><p>" . $tmpContent . "</p>";
             $data["content"] = OfficialdocUtil::subHtml($data["content"], 0, $pages->pageSize * 2);
         }
         $params = array("data" => $data, "pages" => $pages, "dashboardConfig" => Yii::app()->setting->get("setting/docconfig"));
         if ($data["rcid"]) {
             $params["rcType"] = RcType::model()->fetchByPk($data["rcid"]);
         }
     } else {
         $params = "";
     }
     $this->ajaxReturn($params, "JSONP");
 }
Example #2
0
 private function verify()
 {
     if (Ibos::app()->request->isAjaxRequest) {
         $uid = Ibos::app()->user->uid;
         $docids = trim(EnvUtil::getRequest("docids"), ",");
         $ids = explode(",", $docids);
         if (empty($ids)) {
             $this->ajaxReturn(array("isSuccess" => false, "info" => Ibos::lang("Parameters error", "error")));
         }
         $sender = User::model()->fetchRealnameByUid($uid);
         foreach ($ids as $docid) {
             $docApproval = OfficialdocApproval::model()->fetchLastStep($docid);
             if (empty($docApproval)) {
                 $this->verifyComplete($docid, $uid);
             } else {
                 $doc = Officialdoc::model()->fetchByPk($docApproval["docid"]);
                 $category = OfficialdocCategory::model()->fetchByPk($doc["catid"]);
                 $approval = Approval::model()->fetch("id={$category["aid"]}");
                 $curApproval = Approval::model()->fetchNextApprovalUids($approval["id"], $docApproval["step"]);
                 $nextApproval = Approval::model()->fetchNextApprovalUids($approval["id"], $docApproval["step"] + 1);
                 if (!in_array($uid, $curApproval["uids"])) {
                     $this->ajaxReturn(array("isSuccess" => false, "info" => Ibos::lang("You do not have permission to verify the official")));
                 }
                 if (!empty($nextApproval)) {
                     if ($nextApproval["step"] == "publish") {
                         $this->verifyComplete($docid, $uid);
                     } else {
                         OfficialdocApproval::model()->recordStep($docid, $uid);
                         $config = array("{sender}" => $sender, "{subject}" => $doc["subject"], "{category}" => $category["name"], "{content}" => $this->renderPartial("remindcontent", array("doc" => $doc, "author" => $sender), true), "{url}" => $this->createUrl("officialdoc/index", array("type" => "notallow")));
                         foreach ($nextApproval["uids"] as $k => $approvalUid) {
                             if (!OfficialdocUtil::checkReadScope($approvalUid, $doc)) {
                                 unset($nextApproval["uids"][$k]);
                             }
                         }
                         Notify::model()->sendNotify($nextApproval["uids"], "officialdoc_verify_message", $config, $uid);
                         Officialdoc::model()->updateAllStatusByDocids($docid, 2, $uid);
                     }
                 }
             }
         }
         $this->ajaxReturn(array("isSuccess" => true, "info" => Ibos::lang("Verify succeed", "message")));
     }
 }