private function loadNewDoc($num = 3) { $uid = Yii::app()->user->uid; $allDeptId = Yii::app()->user->alldeptid . ""; $allPosId = Yii::app()->user->allposid . ""; $condition = " ( ((deptid='alldept' OR FIND_IN_SET('{$allDeptId}',deptid) OR FIND_IN_SET('{$allPosId}',positionid) OR FIND_IN_SET('{$uid}',uid)) OR (deptid='' AND positionid='' AND uid='') OR (author='{$uid}') OR (approver='{$uid}')) ) AND `status`='1'"; $criteria = array("select" => "docid,subject,author,addtime", "condition" => $condition, "order" => "`istop` DESC, `addtime` DESC", "offset" => 0); $docs = Officialdoc::model()->fetchAll($criteria); $unSign = array(); $signed = array(); if (!empty($docs)) { foreach ($docs as &$doc) { $doc["author"] = User::model()->fetchRealNameByUid($doc["author"]); $doc["sign"] = OfficialdocReader::model()->fetchByAttributes(array("docid" => $doc["docid"], "uid" => $uid)); $doc["isSign"] = empty($doc["sign"]) ? 0 : $doc["sign"]["issign"]; if ($doc["isSign"] == 0) { $unSign[] = $doc; } elseif ($doc["isSign"] == 1) { $signed[] = $doc; } } $docs = array_merge($unSign, $signed); } if ($num < count($docs)) { $docs = array_slice($docs, 0, $num); } return $docs; }
public function delete($catid) { $clear = false; $ids = $this->fetchAllSubId($catid); $idStr = implode(",", array_unique(explode(",", trim($ids, ",")))); if (empty($idStr)) { $idStr = $catid; } else { $idStr .= "," . $catid; } $count = Officialdoc::model()->count("catid IN ({$idStr})"); if ($count) { return -1; } if (!is_null($this->_related)) { $count = $this->_related->count("`{$this->index}` IN ({$idStr})"); !$count && ($clear = true); } else { $clear = true; } if ($clear) { $status = $this->_category->deleteAll("FIND_IN_SET({$this->index},'{$idStr}')"); $this->afterDelete(); return $status; } else { return false; } }
public function __construct($docid) { $officialDoc = Officialdoc::model()->fetchByPk($docid); if (!empty($officialDoc)) { $this->attributes = $officialDoc; $this->attributes["issign"] = OfficialdocReader::model()->fetchSignByDocid($docid, Ibos::app()->user->uid); } }
protected function getNewestVerByDocid($docid) { $doc = Officialdoc::model()->fetchByPk($docid); if (!empty($doc)) { return $doc["version"]; } else { return 1; } }
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"); }
public static function joinListCondition($type, $docidArr, $catid = 0, $condition = "") { $typeWhere = ""; $uid = Ibos::app()->user->uid; if ($type == "nosign" || $type == "sign") { $docidsStr = implode(",", $docidArr); $docids = empty($docidsStr) ? "-1" : $docidsStr; $flag = $type == "nosign" ? "NOT" : ""; $typeWhere = " docid " . $flag . " IN({$docids}) AND status=1"; } elseif ($type == "notallow") { $docids = Officialdoc::model()->fetchUnApprovalDocIds($catid, $uid); $docidStr = implode(",", $docids); $typeWhere = "FIND_IN_SET(`docid`, '{$docidStr}')"; } elseif ($type == "draft") { $typeWhere = "status='3' AND author='{$uid}'"; } else { $typeWhere = "status ='1' AND approver!=0"; } $condition = !empty($condition) ? $condition .= " AND " . $typeWhere : $typeWhere; $allCcDeptId = Ibos::app()->user->alldeptid . ""; $allDeptId = Ibos::app()->user->alldeptid . ""; $allDeptId .= "," . Ibos::app()->user->allupdeptid . ""; $allPosId = Ibos::app()->user->allposid . ""; $deptCondition = ""; $deptIdArr = explode(",", trim($allDeptId, ",")); if (0 < count($deptIdArr)) { foreach ($deptIdArr as $deptId) { $deptCondition .= "FIND_IN_SET('{$deptId}',deptid) OR "; } $deptCondition = substr($deptCondition, 0, -4); } else { $deptCondition = "FIND_IN_SET('',deptid)"; } $scopeCondition = " ( ((deptid='alldept' OR {$deptCondition} OR FIND_IN_SET('{$allCcDeptId}',ccdeptid) OR FIND_IN_SET('{$allPosId}',positionid) OR FIND_IN_SET('{$allPosId}',ccpositionid) OR FIND_IN_SET('{$uid}',uid ) OR FIND_IN_SET('{$uid}',ccuid )) OR (deptid='' AND positionid='' AND uid='') OR (author='{$uid}') OR (approver='{$uid}')) )"; $condition .= " AND " . $scopeCondition; if (!empty($catid)) { $condition .= " AND catid IN ({$catid})"; } return $condition; }
private function getForwardDoc() { $docId = intval(EnvUtil::getRequest("relatedid")); $doc = Officialdoc::model()->fetchByPk($docId); if (empty($doc)) { $this->error(Ibos::lang("转发的公文不存在或者已删掉"), Ibos::app()->urlManager->createUrl("officialdoc/officialdoc/index")); } return $doc; }
private function highLight() { if (Ibos::app()->request->isAjaxRequest) { $docids = trim(EnvUtil::getRequest("docids"), ","); $highLight = array(); $highLight["endTime"] = EnvUtil::getRequest("highlightEndTime"); $highLight["bold"] = EnvUtil::getRequest("bold"); $highLight["color"] = EnvUtil::getRequest("color"); $highLight["italic"] = EnvUtil::getRequest("italic"); $highLight["underline"] = EnvUtil::getRequest("underline"); $data = OfficialdocUtil::processHighLightRequestData($highLight); if (empty($data["highlightendtime"])) { Officialdoc::model()->updateHighlightStatus($docids, 0, "", ""); $this->ajaxReturn(array("isSuccess" => true, "info" => Ibos::lang("Unhighlighting success"))); } else { Officialdoc::model()->updateHighlightStatus($docids, 1, $data["highlightstyle"], $data["highlightendtime"]); $this->ajaxReturn(array("isSuccess" => true, "info" => Ibos::lang("Highlight succeed"))); } } }