コード例 #1
0
ファイル: SkinController.php プロジェクト: AxelPanda/ibos
 public function actionCropBg()
 {
     if (EnvUtil::submitCheck("bgSubmit") && !empty($_POST["src"])) {
         $params = $_POST;
         if (!isset($params) && empty($params)) {
             return null;
         }
         $tempBg = $params["src"];
         $bgPath = "data/home/";
         $bgBig = UserUtil::getBg($params["uid"], "big");
         $bgMiddle = UserUtil::getBg($params["uid"], "middle");
         $bgSmall = UserUtil::getBg($params["uid"], "small");
         if (LOCAL) {
             FileUtil::makeDirs($bgPath . dirname($bgBig));
         }
         FileUtil::createFile("data/home/" . $bgBig, "");
         FileUtil::createFile("data/home/" . $bgMiddle, "");
         FileUtil::createFile("data/home/" . $bgSmall, "");
         Ibos::import("ext.ThinkImage.ThinkImage", true);
         $imgObj = new ThinkImage(THINKIMAGE_GD);
         if (!isset($params["noCrop"])) {
             $imgObj->open($tempBg)->crop($params["w"], $params["h"], $params["x"], $params["y"], 1000, 300)->save($tempBg);
         }
         $imgObj->open($tempBg)->thumb(1000, 300, 1)->save($bgPath . $bgBig);
         $imgObj->open($tempBg)->thumb(520, 156, 1)->save($bgPath . $bgMiddle);
         $imgObj->open($tempBg)->thumb(400, 120, 1)->save($bgPath . $bgSmall);
         if (isset($params["commonSet"]) && $params["commonSet"]) {
             $this->setCommonBg($bgPath . $bgBig);
         }
         $this->ajaxReturn(array("isSuccess" => true));
         exit;
     }
 }
コード例 #2
0
 public function actionEdit()
 {
     if (EnvUtil::submitCheck("emailSubmit")) {
         $setting = array();
         foreach ($this->_fields as $field) {
             if (array_key_exists($field, $_POST)) {
                 $setting[$field] = intval($_POST[$field]);
             } else {
                 $setting[$field] = 0;
             }
         }
         $roles = array();
         if (isset($_POST["role"])) {
             foreach ($_POST["role"] as $role) {
                 if (!empty($role["positionid"]) && !empty($role["size"])) {
                     $positionId = StringUtil::getId($role["positionid"]);
                     $roles[implode(",", $positionId)] = intval($role["size"]);
                 }
             }
         }
         $setting["emailroleallocation"] = serialize($roles);
         foreach ($setting as $key => $value) {
             Setting::model()->updateSettingValueByKey($key, $value);
         }
         CacheUtil::update("setting");
         $this->success(Ibos::lang("Update succeed", "message"), $this->createUrl("dashboard/index"));
     }
 }
コード例 #3
0
ファイル: NewController.php プロジェクト: AxelPanda/ibos
 public function actionAdd()
 {
     $flowId = intval(EnvUtil::getRequest("flowid"));
     $flow = new ICFlowType($flowId);
     if (EnvUtil::submitCheck("formhash")) {
         $this->checkFlowAccess($flowId, 1, $this->createUrl("new/add"));
         $this->beforeAdd($_POST, $flow);
         $run = array("name" => $_POST["name"], "flowid" => $flowId, "beginuser" => $this->uid, "begintime" => TIMESTAMP);
         $runId = FlowRun::model()->add($run, true);
         $runProcess = array("runid" => $runId, "processid" => 1, "uid" => $this->uid, "flag" => FlowConst::PRCS_UN_RECEIVE, "flowprocess" => 1, "createtime" => TIMESTAMP);
         FlowRunProcess::model()->add($runProcess);
         if (strstr($flow->autoname, "{N}")) {
             FlowType::model()->updateCounters(array("autonum" => 1), sprintf("flowid = %d", $flowId));
             CacheUtil::rm("flowtype_" . $flowId);
         }
         $runData = array("runid" => $runId, "name" => $_POST["name"], "beginuser" => $this->uid, "begin" => TIMESTAMP);
         $this->handleRunData($flow, $runData);
         $param = array("flowid" => $flowId, "runid" => $runId, "processid" => 1, "flowprocess" => 1, "fromnew" => 1);
         $jumpUrl = $this->createUrl("form/index", array("key" => WfCommonUtil::param($param)));
         $this->ajaxReturn(array("isSuccess" => true, "jumpUrl" => $jumpUrl));
     } else {
         $this->checkFlowAccess($flowId, 1);
         if (!empty($flow->autoname)) {
             $runName = WfNewUtil::replaceAutoName($flow, $this->uid);
         } else {
             $runName = sprintf("%s (%s)", $flow->name, date("Y-m-d H:i:s"));
         }
         $data = array("flow" => $flow->toArray(), "runName" => $runName, "lang" => Ibos::getLangSources());
         $this->renderPartial("add", $data);
     }
 }
コード例 #4
0
ファイル: PmController.php プロジェクト: AxelPanda/ibos
 public function actionPost()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $return = array("data" => Ibos::lang("Operation succeed", "message"), "IsSuccess" => true);
         if (empty($_POST["touid"])) {
             $return["data"] = Ibos::lang("Message receiver cannot be empty");
             $return["IsSuccess"] = false;
             $this->ajaxReturn($return);
         }
         if (trim(StringUtil::filterCleanHtml($_POST["content"])) == "") {
             $return["data"] = Ibos::lang("Message content cannot be empty");
             $return["IsSuccess"] = false;
             $this->ajaxReturn($return);
         }
         $_POST["touid"] = implode(",", StringUtil::getUid($_POST["touid"]));
         if (isset($_POST["type"])) {
             !in_array($_POST["type"], array(MessageContent::ONE_ON_ONE_CHAT, MessageContent::MULTIPLAYER_CHAT)) && ($_POST["type"] = null);
         } else {
             $_POST["type"] = null;
         }
         $_POST["content"] = StringUtil::filterDangerTag($_POST["content"]);
         $res = MessageContent::model()->postMessage($_POST, Yii::app()->user->uid);
         if ($res) {
             $this->ajaxReturn($return);
         } else {
             $return["IsSuccess"] = false;
             $return["data"] = MessageContent::model()->getError("message");
             $this->ajaxReturn($return);
         }
     }
 }
コード例 #5
0
ファイル: WebController.php プロジェクト: AxelPanda/ibos
 public function actionEdit()
 {
     if (EnvUtil::getRequest("op") == "setDefault") {
         $webId = EnvUtil::getRequest("webid");
         return $this->setDefault($webId);
     }
     $id = EnvUtil::getRequest("id");
     if (EnvUtil::submitCheck("emailSubmit")) {
         $data = $_POST["web"];
         $this->submitCheck($data, false);
         $web = $this->beforeSave($data);
         $web["ssl"] = isset($web["ssl"]) ? 1 : 0;
         $web["smtpssl"] = isset($web["smtpssl"]) ? 1 : 0;
         EmailWeb::model()->modify($id, $web);
         if (!empty($web["foldername"])) {
             EmailFolder::model()->updateAll(array("name" => StringUtil::filterCleanHtml($web["foldername"])), "webid = " . $id . " AND uid = " . $this->uid);
         }
         $this->success(Ibos::lang("Save succeed", "message"), $this->createUrl("web/index"));
     } else {
         $web = EmailWeb::model()->fetch("webid = {$id} AND uid = " . $this->uid);
         if ($web) {
             $web["foldername"] = EmailFolder::model()->fetchFolderNameByWebId($id);
             $web["password"] = StringUtil::authCode($web["password"], "DECODE", Yii::app()->user->salt);
             $this->setPageTitle(Ibos::lang("Edit web email"));
             $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang(Ibos::lang("Personal Office"))), array("name" => Ibos::lang(Ibos::lang("Email center")), "url" => $this->createUrl("list/index")), array("name" => Ibos::lang(Ibos::lang("Edit web email")))));
             $this->render("edit", array("web" => $web));
         } else {
             $this->error(Ibos::lang("Parameters error", "error"), $this->createUrl("web/index"));
         }
     }
 }
コード例 #6
0
ファイル: TimerController.php プロジェクト: AxelPanda/ibos
 public function actionSave()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $data =& $_POST;
         if (isset($data["type"])) {
             foreach ($data["type"] as $id => $type) {
                 if (empty($data["uid"][$id]) || empty($data["remindtime"][$id])) {
                     continue;
                 }
                 $type = intval($type);
                 $attr = array("type" => intval($type));
                 if (!in_array($type, array(1, 5))) {
                     $attr["reminddate"] = $data["reminddate"][$id];
                 }
                 $attr["remindtime"] = $data["remindtime"][$id];
                 if (substr($id, 0, 1) == "n") {
                     $uid = StringUtil::getId($data["uid"][$id]);
                     $attr["uid"] = implode(",", $uid);
                     $attr["flowid"] = $this->flowid;
                     FlowTimer::model()->add($attr);
                 } else {
                     FlowTimer::model()->modify($id, $attr);
                 }
             }
         }
         if (!empty($data["delid"])) {
             $id = StringUtil::filterStr($data["delid"]);
             FlowTimer::model()->deleteAll("FIND_IN_SET(tid,'{$id}')");
         }
         $this->ajaxReturn(array("isSuccess" => true));
     }
     exit;
 }
コード例 #7
0
 public function actionUpdate()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $fieldArr = array("reporttypemanage" => "", "stampenable" => 0, "stampdetails" => "", "pointsystem" => 5, "autoreview" => 0, "autoreviewstamp" => 1);
         foreach ($_POST as $key => $value) {
             if (in_array($key, array_keys($fieldArr))) {
                 $fieldArr[$key] = $value;
             }
         }
         $stampStr = "";
         if (!empty($fieldArr["stampdetails"])) {
             foreach ($fieldArr["stampdetails"] as $score => $stampId) {
                 $stampId = empty($stampId) ? 0 : $stampId;
                 $stampStr .= $stampId . ":" . $score . ",";
             }
         }
         $fieldArr["stampdetails"] = rtrim($stampStr, ",");
         $apprise = EnvUtil::getRequest("apprise");
         if (empty($_POST["stampdetails"][$apprise])) {
             $fieldArr["autoreview"] = 0;
         } else {
             $fieldArr["autoreviewstamp"] = $_POST["stampdetails"][$apprise];
         }
         Setting::model()->modify("reportconfig", array("svalue" => serialize($fieldArr)));
         CacheUtil::update("setting");
         $this->success(Ibos::lang("Update succeed", "message"), $this->createUrl("dashboard/index"));
     }
 }
コード例 #8
0
ファイル: UnitController.php プロジェクト: AxelPanda/ibos
 public function actionIndex()
 {
     $unit = Setting::model()->fetchSettingValueByKey("unit");
     $formSubmit = EnvUtil::submitCheck("unitSubmit");
     if ($formSubmit) {
         $postData = array();
         if (!empty($_FILES["logo"]["name"])) {
             !empty($unit["logourl"]) && FileUtil::deleteFile($unit["logourl"]);
             $postData["logourl"] = $this->imgUpload("logo");
         } elseif (!empty($_POST["logourl"])) {
             $postData["logourl"] = $_POST["logourl"];
         } else {
             $postData["logourl"] = "";
         }
         $keys = array("phone", "fullname", "shortname", "fax", "zipcode", "address", "adminemail", "systemurl");
         foreach ($keys as $key) {
             if (isset($_POST[$key])) {
                 $postData[$key] = StringUtil::filterCleanHtml($_POST[$key]);
             } else {
                 $postData[$key] = "";
             }
         }
         Setting::model()->updateSettingValueByKey("unit", $postData);
         CacheUtil::update(array("setting"));
         $this->success(Ibos::lang("Save succeed", "message"));
     } else {
         $license = Setting::model()->fetchSettingValueByKey("license");
         $data = array("unit" => unserialize($unit), "license" => $license);
         $this->render("index", $data);
     }
 }
コード例 #9
0
 public function actionComment()
 {
     $op = EnvUtil::getRequest("op");
     if (EnvUtil::submitCheck("formhash")) {
         if (!in_array($op, array("delComment", "deleteComment", "commentRecover"))) {
             exit;
         }
         $ids = EnvUtil::getRequest("ids");
         foreach (explode(",", $ids) as $id) {
             Comment::model()->doEditComment($id, $op);
         }
         $this->ajaxReturn(array("isSuccess" => true));
     } else {
         if (!in_array($op, array("list", "recycle"))) {
             $op = "list";
         }
         $map = "";
         if ($op == "list") {
             $map = "isdel = 0";
         } else {
             $map = "isdel = 1";
         }
         if (EnvUtil::getRequest("search")) {
             $key = StringUtil::filterCleanHtml(EnvUtil::getRequest("search"));
             $map .= " AND content LIKE '%{$key}%'";
         }
         $count = Comment::model()->count($map);
         $pages = PageUtil::create($count);
         $list = Comment::model()->getCommentList($map, "cid DESC", $pages->getLimit(), $pages->getOffset());
         $data = array("op" => $op, "list" => $list, "pages" => $pages, "moduleAssetUrl" => Ibos::app()->assetManager->getAssetsUrl("weibo"));
         $this->render("comment", $data);
     }
 }
コード例 #10
0
ファイル: NotifyController.php プロジェクト: AxelPanda/ibos
 public function actionSetup()
 {
     $formSubmit = EnvUtil::submitCheck("formhash");
     if ($formSubmit) {
         $data =& $_POST;
         foreach (array("sendemail", "sendsms", "sendmessage") as $field) {
             if (!empty($data[$field])) {
                 $ids = array_keys($data[$field]);
                 $idstr = implode(",", $ids);
                 Notify::model()->updateAll(array($field => 1), sprintf("FIND_IN_SET(id,'%s')", $idstr));
                 Notify::model()->updateAll(array($field => 0), sprintf("NOT FIND_IN_SET(id,'%s')", $idstr));
             } else {
                 Notify::model()->updateAll(array($field => 0));
             }
         }
         CacheUtil::update("NotifyNode");
         $this->success(Ibos::lang("Save succeed", "message"));
     } else {
         $nodeList = Notify::model()->getNodeList();
         foreach ($nodeList as &$node) {
             $node["moduleName"] = Module::model()->fetchNameByModule($node["module"]);
         }
         $this->render("setup", array("nodeList" => $nodeList));
     }
 }
コード例 #11
0
ファイル: CreditController.php プロジェクト: AxelPanda/ibos
 public function actionRule()
 {
     $formSubmit = EnvUtil::submitCheck("creditRuleSubmit");
     if ($formSubmit) {
         $cycles = $_POST["cycles"];
         $credits = $_POST["credits"];
         $rewardNums = $_POST["rewardnums"];
         $rulesParam = array();
         foreach ($cycles as $ruleId => $cycle) {
             $rulesParam[$ruleId]["cycletype"] = $cycle;
         }
         foreach ($credits as $ruleId => $credit) {
             foreach ($credit as $extcreditOffset => $creditValue) {
                 $rulesParam[$ruleId]["extcredits" . $extcreditOffset] = $creditValue;
             }
         }
         foreach ($rewardNums as $ruleId => $rewardNum) {
             $rulesParam[$ruleId]["rewardnum"] = $rewardNum;
         }
         foreach ($rulesParam as $ruleId => $updateValue) {
             CreditRule::model()->modify($ruleId, $updateValue);
         }
         CacheUtil::update(array("creditRule"));
         $this->success(Ibos::lang("Save succeed", "message"));
     } else {
         $rules = CreditRule::model()->fetchAll();
         $credits = Credit::model()->fetchAll();
         $data = array("rules" => $rules, "credits" => $credits);
         $this->render("rule", $data);
     }
 }
コード例 #12
0
ファイル: InfoController.php プロジェクト: AxelPanda/ibos
 public function actionCropImg()
 {
     if (EnvUtil::submitCheck("userSubmit")) {
         $params = $_POST;
         if (!isset($params) && empty($params)) {
             return null;
         }
         $tempAvatar = $params["src"];
         $avatarPath = "data/avatar/";
         $avatarBig = UserUtil::getAvatar($params["uid"], "big");
         $avatarMiddle = UserUtil::getAvatar($params["uid"], "middle");
         $avatarSmall = UserUtil::getAvatar($params["uid"], "small");
         if (LOCAL) {
             FileUtil::makeDirs($avatarPath . dirname($avatarBig));
         }
         FileUtil::createFile("data/avatar/" . $avatarBig, "");
         FileUtil::createFile("data/avatar/" . $avatarMiddle, "");
         FileUtil::createFile("data/avatar/" . $avatarSmall, "");
         Ibos::import("ext.ThinkImage.ThinkImage", true);
         $imgObj = new ThinkImage(THINKIMAGE_GD);
         $imgObj->open($tempAvatar)->crop($params["w"], $params["h"], $params["x"], $params["y"])->save($tempAvatar);
         $imgObj->open($tempAvatar)->thumb(180, 180, 1)->save($avatarPath . $avatarBig);
         $imgObj->open($tempAvatar)->thumb(60, 60, 1)->save($avatarPath . $avatarMiddle);
         $imgObj->open($tempAvatar)->thumb(30, 30, 1)->save($avatarPath . $avatarSmall);
         $this->success(Ibos::lang("Upload avatar succeed"), $this->createUrl("home/personal", array("op" => "avatar")));
         exit;
     }
 }
コード例 #13
0
ファイル: CommentController.php プロジェクト: AxelPanda/ibos
 public function actionAddComment()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $widget = Ibos::app()->getWidgetFactory()->createWidget($this, "IWOfficialdocComment");
         return $widget->addComment();
     }
 }
コード例 #14
0
ファイル: UpdateController.php プロジェクト: AxelPanda/ibos
 public function actionIndex()
 {
     $types = EnvUtil::getRequest("updatetype");
     $data = array();
     if (EnvUtil::submitCheck("formhash")) {
         $type = implode(",", $types);
         if (!empty($type)) {
             $this->redirect($this->createUrl("update/index", array("doupdate" => 1, "updatetype" => $type)));
         }
     }
     if (Ibos::app()->request->getIsAjaxRequest()) {
         $op = EnvUtil::getRequest("op");
         if (LOCAL) {
             @set_time_limit(0);
         }
         if ($op == "data") {
             CacheUtil::update();
         }
         if ($op == "static") {
             LOCAL && Ibos::app()->assetManager->republicAll();
             OrgUtil::update();
         }
         if ($op == "module") {
             ModuleUtil::updateConfig();
         }
         Ibos::app()->cache->clear();
         $this->ajaxReturn(array("isSuccess" => true));
     }
     if (EnvUtil::getRequest("doupdate") == 1) {
         $type = explode(",", trim($types, ","));
         $data["doUpdate"] = true;
         foreach ($type as $index => $act) {
             if (!empty($act)) {
                 if (in_array("data", $type)) {
                     unset($type[$index]);
                     $data["typedesc"] = Ibos::lang("Update") . Ibos::lang("Data cache");
                     $data["op"] = "data";
                     break;
                 }
                 if (in_array("static", $type)) {
                     unset($type[$index]);
                     $data["typedesc"] = Ibos::lang("Update") . Ibos::lang("Static cache");
                     $data["op"] = "static";
                     break;
                 }
                 if (in_array("module", $type)) {
                     $data["typedesc"] = Ibos::lang("Update") . Ibos::lang("Module setting");
                     $data["op"] = "module";
                     unset($type[$index]);
                     break;
                 }
             }
         }
         $data["next"] = $this->createUrl("update/index", array("doupdate" => intval(!empty($type)), "updatetype" => implode(",", $type)));
     } else {
         $data["doUpdate"] = false;
     }
     $this->render("index", $data);
 }
コード例 #15
0
ファイル: QuerytplController.php プロジェクト: AxelPanda/ibos
 public function actionDel()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $sid = EnvUtil::getRequest("sid");
         FlowQueryTpl::model()->deleteByPk(intval($sid));
         $this->ajaxReturn(array("isSuccess" => true));
     }
 }
コード例 #16
0
ファイル: ApiController.php プロジェクト: AxelPanda/ibos
 public function actionUnFollow()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $fid = StringUtil::filterCleanHtml($_POST["fid"]);
         $res = Follow::model()->unFollow(Ibos::app()->user->uid, intval($fid));
         $this->ajaxReturn(array("isSuccess" => !!$res, "msg" => Follow::model()->getError("unFollow")));
     }
 }
コード例 #17
0
ファイル: IndexController.php プロジェクト: AxelPanda/ibos
 public function actionLicense()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $licensekey = StringUtil::filterCleanHtml(EnvUtil::getRequest("licensekey"));
         $filename = PATH_ROOT . "/data/licence.key";
         @file_put_contents($filename, $licensekey);
         $this->success(Ibos::lang("Save succeed", "message"));
     }
 }
コード例 #18
0
ファイル: ManagerController.php プロジェクト: AxelPanda/ibos
 public function actionDel()
 {
     $id = intval(EnvUtil::getRequest("id"));
     if ($id && EnvUtil::submitCheck("formhash")) {
         $flowId = intval(EnvUtil::getRequest("flowid"));
         $status = FlowPermission::model()->deleteAllByAttributes(array("id" => $id, "flowid" => $flowId));
         $this->ajaxReturn(array("isSuccess" => !!$status));
     }
 }
コード例 #19
0
ファイル: PageController.php プロジェクト: AxelPanda/ibos
 public function actionSave()
 {
     if (EnvUtil::submitCheck("saveSubmit")) {
         $pageid = intval(EnvUtil::getRequest("pageid"));
         $attributes = array("template" => EnvUtil::getRequest("tpl"), "content" => EnvUtil::getRequest("content"));
         if (!empty($pageid)) {
             Page::model()->modify($pageid, $attributes);
         }
         $this->ajaxReturn(array("isSuccess" => true, "pageid" => $pageid));
     }
 }
コード例 #20
0
ファイル: AttachController.php プロジェクト: AxelPanda/ibos
 public function actionOffice()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $widget = Ibos::app()->getWidgetFactory()->createWidget($this, "IWMainOffice", array());
         return $widget->handleRequest();
     } else {
         $data = $this->getData();
         $widget = $this->createWidget("IWMainOffice", array("param" => $data["decodeArr"], "attach" => $data["attach"]));
         echo $widget->run();
     }
 }
コード例 #21
0
ファイル: DefaultController.php プロジェクト: AxelPanda/ibos
 public function actionEdit()
 {
     if (!EnvUtil::submitCheck("updatesubmit")) {
         $assignmentId = intval(EnvUtil::getRequest("id"));
         $checkRes = $this->checkAvailableById($assignmentId);
         if (!$checkRes["isSuccess"]) {
             $this->ajaxReturn($checkRes);
         }
         $assignment = Assignment::model()->fetchByPk($assignmentId);
         $uid = Ibos::app()->user->uid;
         if ($uid != $assignment["designeeuid"]) {
             $this->ajaxReturn(array("isSuccess" => false, "msg" => Ibos::lang("You donot have permission to edit")));
         }
         if (!empty($assignment["attachmentid"])) {
             $assignment["attachs"] = AttachUtil::getAttach($assignment["attachmentid"]);
         }
         $assignment["starttime"] = empty($assignment["starttime"]) ? "" : date("Y-m-d H:i", $assignment["starttime"]);
         $assignment["endtime"] = empty($assignment["endtime"]) ? "" : date("Y-m-d H:i", $assignment["endtime"]);
         $assignment["chargeuid"] = StringUtil::wrapId($assignment["chargeuid"]);
         $assignment["participantuid"] = StringUtil::wrapId($assignment["participantuid"]);
         $assignment["lang"] = Ibos::getLangSource("assignment.default");
         $assignment["assetUrl"] = Ibos::app()->assetManager->getAssetsUrl("assignment");
         $editAlias = "application.modules.assignment.views.default.edit";
         $editView = $this->renderPartial($editAlias, $assignment, true);
         echo $editView;
     } else {
         $assignmentId = intval(EnvUtil::getRequest("id"));
         $assignment = Assignment::model()->fetchByPk($assignmentId);
         $this->beforeSave($_POST);
         $uid = Ibos::app()->user->uid;
         $data = $this->handlePostData();
         $data["updatetime"] = TIMESTAMP;
         $updateSuccess = Assignment::model()->updateByPk($assignmentId, $data);
         if ($updateSuccess) {
             AttachUtil::updateAttach($data["attachmentid"]);
             if ($data["chargeuid"] != $assignment["chargeuid"]) {
                 $chargeuid = StringUtil::getId($_POST["chargeuid"]);
                 $participantuid = StringUtil::getId($_POST["participantuid"]);
                 $uidArr = array_merge($participantuid, $chargeuid);
                 $this->sendNotify($assignmentId, $data["subject"], $uidArr, "assignment_new_message");
             }
             $this->addStepComment($assignmentId, Ibos::lang("Eidt the assignment"));
             AssignmentLog::model()->addLog($assignmentId, "edit", Ibos::lang("Eidt the assignment"));
             $this->ajaxReturn(array("isSuccess" => true, "msg" => Ibos::lang("Update succeed", "message")));
         } else {
             $this->ajaxReturn(array("isSuccess" => false, "msg" => Ibos::lang("Update failed", "message")));
         }
     }
 }
コード例 #22
0
ファイル: DateController.php プロジェクト: AxelPanda/ibos
 public function actionIndex()
 {
     $formSubmit = EnvUtil::submitCheck("dateSetupSubmit");
     if ($formSubmit) {
         $data = array("dateformat" => $_POST["dateFormat"], "timeformat" => $_POST["timeFormat"], "dateconvert" => $_POST["dateConvert"], "timeoffset" => $_POST["timeOffset"]);
         foreach ($data as $sKey => $sValue) {
             Setting::model()->updateSettingValueByKey($sKey, $sValue);
         }
         CacheUtil::update(array("setting"));
         $this->success(Ibos::lang("Save succeed", "message"));
     } else {
         $date = Setting::model()->fetchSettingValueByKeys("dateformat,dateconvert,timeformat,timeoffset");
         $data = array("timeZone" => Ibos::getLangSource("dashboard.timeZone"), "date" => $date);
         $this->render("index", $data);
     }
 }
コード例 #23
0
 public function actionDel()
 {
     $formSubmit = EnvUtil::submitCheck("announcementSubmit");
     if ($formSubmit) {
         $ids = EnvUtil::getRequest("id");
         $id = implode(",", $ids);
         $this->announcementDelete($id);
         $this->success(Ibos::lang("Save succeed", "message"));
     } else {
         $id = EnvUtil::getRequest("id");
         if ($this->announcementDelete($id)) {
             $this->success(Ibos::lang("Del succeed", "message"));
         } else {
             $this->error(Ibos::lang("Del failed", "message"));
         }
     }
 }
コード例 #24
0
 public function actionIndex()
 {
     if (EnvUtil::submitCheck("formhash")) {
         if (isset($_POST["statmodules"])) {
         } else {
             $_POST["statmodules"] = array();
         }
         Setting::model()->updateSettingValueByKey("statmodules", $_POST["statmodules"]);
         CacheUtil::update("setting");
         $this->success(Ibos::lang("Operation succeed", "message"));
     } else {
         $res = Setting::model()->fetchSettingValueByKey("statmodules");
         $statModules = $res ? unserialize($res) : array();
         $data = array("statModules" => $statModules, "enabledModules" => StatCommonUtil::getStatisticsModules());
         $this->render("index", $data);
     }
 }
コード例 #25
0
ファイル: EntrustController.php プロジェクト: AxelPanda/ibos
 public function actionConfirmPost()
 {
     if (EnvUtil::submitCheck("formhash")) {
         $key = EnvUtil::getRequest("key");
         $param = WfCommonUtil::param($key, "DECODE");
         $runId = intval($param["runid"]);
         $processId = intval($param["processid"]);
         $flowId = intval($param["flowid"]);
         $flowProcess = intval($param["flowprocess"]);
         $opflag = intval($_POST["opflag"]);
         $oldUid = intval($_POST["oldUid"]);
         $this->checkRunAccess($runId);
         $this->checkEntrustType($flowId);
         $referer = EnvUtil::referer();
         $frp = FlowRunProcess::model()->fetchRunProcess($runId, $processId, $flowProcess, $oldUid);
         if ($frp) {
             $parent = $frp["parent"];
             $topflag = $frp["topflag"];
         }
         $toid = implode(",", StringUtil::getId($_POST["prcs_other"]));
         $tempFRP = FlowRunProcess::model()->fetchRunProcess($runId, $processId, $flowProcess, $toid);
         if (!$tempFRP) {
             $data = array("runid" => $runId, "processid" => $processId, "uid" => $toid, "flag" => 1, "flowprocess" => $flowProcess, "opflag" => $opflag, "topflag" => $topflag, "parent" => $parent, "createtime" => TIMESTAMP);
             FlowRunProcess::model()->add($data);
         } else {
             if ($tempFRP["opflag"] == 0 && $opflag == 1) {
                 FlowRunProcess::model()->updateAll(array("opflag" => 1, "flag" => 2), sprintf("runid = %d AND processid = %d AND flowprocess = %d AND uid = %d", $runId, $processId, $flowProcess, $toid));
             } else {
                 $name = User::model()->fetchRealnameByUid($toid);
                 $this->error(Ibos::lang("Already are opuser", "", array("{name}" => $name)), $referer);
             }
         }
         FlowRunProcess::model()->updateProcessTime($runId, $processId, $flowProcess, $oldUid);
         FlowRunProcess::model()->updateAll(array("flag" => 4, "opflag" => 0, "delivertime" => TIMESTAMP), "runid = :runid AND processid = :prcsid AND flowprocess = :fp AND uid = :uid", array(":runid" => $runId, ":prcsid" => $processId, ":fp" => $flowProcess, ":uid" => $oldUid));
         $toName = User::model()->fetchRealnameByUid($toid);
         $userName = User::model()->fetchRealnameByUid($oldUid);
         $content = Ibos::lang("Entrust to desc", "", array("{username}" => $userName, "{toname}" => $toName));
         WfCommonUtil::runlog($runId, $processId, $flowProcess, $this->uid, 2, $content, $toid);
         $message = StringUtil::filterCleanHtml($_POST["message"]);
         if (!empty($message)) {
             Notify::model()->sendNotify($toid, "workflow_entrust_notice", array("{message}" => $message));
         }
         $this->redirect($referer);
     }
 }
コード例 #26
0
ファイル: SysstampController.php プロジェクト: AxelPanda/ibos
 public function actionIndex()
 {
     $formSubmit = EnvUtil::submitCheck("stampSubmit");
     $stampPath = Stamp::STAMP_PATH;
     if ($formSubmit) {
         if (isset($_POST["stamps"])) {
             foreach ($_POST["stamps"] as $id => $stamp) {
                 if (FileUtil::fileExists($stamp["stamp"])) {
                     Stamp::model()->delImg($id, "stamp");
                     $stamp["stamp"] = DashboardUtil::moveTempFile($stamp["stamp"], $stampPath);
                 }
                 if (FileUtil::fileExists($stamp["icon"])) {
                     Stamp::model()->delImg($id, "icon");
                     $stamp["icon"] = DashboardUtil::moveTempFile($stamp["icon"], $stampPath);
                 }
                 Stamp::model()->modify($id, $stamp);
             }
         }
         if (isset($_POST["newstamps"])) {
             foreach ($_POST["newstamps"] as $value) {
                 if (!empty($value["stamp"])) {
                     $value["stamp"] = DashboardUtil::moveTempFile($value["stamp"], $stampPath);
                 }
                 if (!empty($value["icon"])) {
                     $value["icon"] = DashboardUtil::moveTempFile($value["icon"], $stampPath);
                 }
                 Stamp::model()->add($value);
             }
         }
         if (!empty($_POST["removeId"])) {
             $removeIds = explode(",", trim($_POST["removeId"], ","));
             Stamp::model()->deleteByIds($removeIds);
         }
         clearstatcache();
         $this->success(Ibos::lang("Save succeed", "message"));
     } else {
         if (EnvUtil::getRequest("op") === "upload") {
             $fakeUrl = $this->imgUpload("stamp");
             $realUrl = FileUtil::fileName($fakeUrl);
             return $this->ajaxReturn(array("fakeUrl" => $fakeUrl, "url" => $realUrl));
         }
         $data = array("stampUrl" => $stampPath, "list" => Stamp::model()->fetchAll(), "maxSort" => Stamp::model()->getMaxSort());
         $this->render("index", $data);
     }
 }
コード例 #27
0
 public function actionUpdate()
 {
     if (EnvUtil::submitCheck("calendarSubmit")) {
         $setting = array();
         foreach ($this->_fields as $field) {
             if (array_key_exists($field, $_POST)) {
                 $setting[$field] = $_POST[$field];
             } else {
                 $setting[$field] = 0;
             }
         }
         foreach ($setting as $key => $value) {
             Setting::model()->updateSettingValueByKey($key, $value);
         }
         CacheUtil::update("setting");
         $this->success(Ibos::lang("Update succeed", "message"), $this->createUrl("dashboard/index"));
     }
 }
コード例 #28
0
ファイル: DatabaseController.php プロジェクト: AxelPanda/ibos
 public function actionOptimize()
 {
     $formSubmit = EnvUtil::submitCheck("dbSubmit");
     if ($formSubmit) {
         $tables = $_POST["optimizeTables"];
         if (!empty($tables)) {
             DatabaseUtil::optimize($tables);
         }
         $this->success(Ibos::lang("Operation succeed", "message"));
     } else {
         $list = DatabaseUtil::getOptimizeTable();
         $totalSize = 0;
         foreach ($list as $table) {
             $totalSize += $table["Data_length"] + $table["Index_length"];
         }
         $data["list"] = $list;
         $data["totalSize"] = $totalSize;
         $this->render("optimize", $data);
     }
 }
コード例 #29
0
ファイル: EmailController.php プロジェクト: AxelPanda/ibos
 public function actionCheck()
 {
     $formSubmit = EnvUtil::submitCheck("emailSubmit");
     if ($formSubmit) {
         $testFrom = $_POST["testfrom"];
         $testTo = $_POST["testto"];
         if (empty($testFrom) || empty($testTo)) {
             $this->error(Ibos::lang("Parameters error", "error"));
         }
         $toEmails = explode(",", $testTo);
         $subject = Ibos::lang("IBOS test email subject");
         $message = Ibos::lang("IBOS test email content");
         foreach ($toEmails as $to) {
             MailUtil::sendMail($to, $subject, $message, $testFrom);
         }
         $this->success(Ibos::lang("Operation succeed", "message"));
     } else {
         $this->render("check");
     }
 }
コード例 #30
0
ファイル: OptimizeController.php プロジェクト: AxelPanda/ibos
 public function actionSphinx()
 {
     if (LOCAL) {
         $formSubmit = EnvUtil::submitCheck("sphinxSubmit");
         if ($formSubmit) {
             $sphinxHost = $_POST["sphinxhost"];
             $sphinxPort = $_POST["sphinxport"];
             Setting::model()->updateSettingValueByKey("sphinxhost", $sphinxHost);
             Setting::model()->updateSettingValueByKey("sphinxport", $sphinxPort);
             CacheUtil::update(array("setting"));
             $this->success(Ibos::lang("Save succeed", "message"));
         } else {
             $record = Setting::model()->fetchSettingValueByKeys("sphinxhost,sphinxport");
             $sphinxPort = Setting::model()->fetchSettingValueByKey("sphinxport");
             $data = array("sphinxHost" => $record["sphinxhost"], "sphinxPort" => $record["sphinxport"]);
             $this->render("sphinx", $data);
         }
     } else {
         echo Ibos::lang("Not compatible service", "message");
     }
 }