public function actionEdit() { $id = EnvUtil::getRequest("id"); if (EnvUtil::submitCheck("posSubmit")) { if (isset($_POST["posname"])) { $data["posname"] = $_POST["posname"]; $data["sort"] = $_POST["sort"]; $data["catid"] = intval(EnvUtil::getRequest("catid")); $data["goal"] = $_POST["goal"]; $data["minrequirement"] = $_POST["minrequirement"]; Position::model()->modify($id, $data); } if (isset($_POST["responsibility"])) { foreach ($_POST["responsibility"] as $rId => $value) { $data = array("positionid" => $id, "responsibility" => $value, "criteria" => $_POST["criteria"][$rId]); PositionResponsibility::model()->modify($rId, $data); } } if (isset($_POST["newResponsibility"])) { $this->addResponsibility($id, $_POST["newResponsibility"], $_POST["newCriteria"]); } if (!empty($_POST["resDelId"])) { $delId = trim($_POST["resDelId"], ","); PositionResponsibility::model()->deleteByPk(explode(",", $delId)); } if (isset($_POST["nodes"])) { $this->updateAuthItem($id, $_POST["nodes"], $_POST["data-privilege"]); } if (isset($_POST["member"])) { UserUtil::setPosition($id, $_POST["member"]); } else { OrgUtil::update(); } PositionUtil::cleanPurvCache($id); $this->success(Ibos::lang("Save succeed", "message"), $this->createUrl("position/index")); } else { $pos = Position::model()->fetchByPk($id); $related = NodeRelated::model()->fetchAllByPosId($id); $relateCombine = PositionUtil::combineRelated($related); $responsibility = PositionResponsibility::model()->fetchAllByPosId($id); $data["id"] = $id; $data["pos"] = $pos; $catData = PositionUtil::loadPositionCategory(); $data["category"] = StringUtil::getTree($catData, $this->selectFormat, $pos["catid"]); $data["related"] = $relateCombine; $data["responsibility"] = $responsibility; $authItem = AuthUtil::loadAuthItem(); $data["authItem"] = $authItem; $uids = User::model()->fetchUidByPosId($id, false); if (!empty($uids)) { $data["uids"] = $uids; $data["uidString"] = ""; foreach ($uids as $uid) { $data["uidString"] .= "'u_" . $uid . "',"; } $data["uidString"] = trim($data["uidString"], ","); } $this->setPageTitle(Ibos::lang("Edit position")); $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Organization"), "url" => $this->createUrl("department/index")), array("name" => Ibos::lang("Position manager"), "url" => $this->createUrl("position/index")), array("name" => Ibos::lang("Edit position")))); $this->render("edit", $data); } }