Example #1
0
 public static function exportSms($id)
 {
     $ids = is_array($id) ? $id : explode(",", $id);
     header("Content-Type:application/vnd.ms-excel");
     $fileName = ConvertUtil::iIconv(Ibos::lang("SMS export name", "dashboard.default", array("{date}" => date("Ymd"))), CHARSET, "gbk");
     header("Content-Disposition: attachment;filename={$fileName}.csv");
     header("Cache-Control: max-age = 0");
     $head = array("ID", Ibos::lang("Sender", "dashboard.default"), Ibos::lang("Recipient", "dashboard.default"), Ibos::lang("Membership module", "dashboard.default"), Ibos::lang("Recipient phone number", "dashboard.default"), Ibos::lang("Content", "dashboard.default"), Ibos::lang("Result", "dashboard.default"), Ibos::lang("Send time", "dashboard.default"));
     foreach ($head as &$header) {
         $header = ConvertUtil::iIconv($header, CHARSET, "gbk");
     }
     $fp = fopen("php://output", "a");
     fputcsv($fp, $head);
     $cnt = 0;
     $limit = 100;
     $system = Ibos::lang("System", "dashboard.default");
     foreach (NotifySms::model()->fetchAll(sprintf("FIND_IN_SET(id,'%s')", implode(",", $ids))) as $row) {
         if ($limit == $cnt) {
             ob_flush();
             flush();
             $cnt = 0;
         }
         $data = array($row["id"], ConvertUtil::iIconv($row["uid"] == 0 ? $system : User::model()->fetchRealnameByUid($row["uid"]), CHARSET, "gbk"), ConvertUtil::iIconv(User::model()->fetchRealnameByUid($row["touid"]), CHARSET, "gbk"), $row["module"], $row["mobile"], ConvertUtil::iIconv($row["content"], CHARSET, "gbk"), ConvertUtil::iIconv($row["return"], CHARSET, "gbk"), date("Y-m-d H:i:s", $row["ctime"]));
         fputcsv($fp, $data);
     }
     exit;
 }
Example #2
0
 public static function updateTable($flowId, $structure = array())
 {
     $tableName = sprintf("{{flow_data_%d}}", intval($flowId));
     if (!self::tableExists($tableName)) {
         if (!self::createTable($tableName, $structure)) {
             return false;
         }
         return true;
     }
     if ($structure) {
         $rows = Ibos::app()->db->createCommand()->setText("SHOW FIELDS FROM " . $tableName)->queryAll();
         $fields = ConvertUtil::getSubByKey($rows, "Field");
         $items = array();
         foreach ($structure as $eName => $config) {
             $field = strtolower(trim($eName));
             if (!in_array($field, $fields)) {
                 if (substr($field, 0, 5) == "data_") {
                     $items[] = "ALTER TABLE " . $tableName . " ADD `{$field}` text NOT NULL;";
                 }
             }
         }
         if (!empty($items)) {
             Ibos::app()->db->createCommand()->setText(implode("\n", $items))->execute();
         }
     }
     return true;
 }
Example #3
0
 protected function showDetail()
 {
     $repid = intval(EnvUtil::getRequest("repid"));
     $isShowTitle = EnvUtil::getRequest("isShowTitle");
     $fromController = EnvUtil::getRequest("fromController");
     $report = Report::model()->fetchByPk($repid);
     $uid = Ibos::app()->user->uid;
     Report::model()->addReaderuid($report, $uid);
     $record = ReportRecord::model()->fetchAllRecordByRep($report);
     $attachs = array();
     if (!empty($report["attachmentid"])) {
         $attachs = AttachUtil::getAttach($report["attachmentid"], true, true, false, false, true);
     }
     $readers = array();
     if (!empty($report["readeruid"])) {
         $readerArr = explode(",", $report["readeruid"]);
         $readers = User::model()->fetchAllByPk($readerArr);
     }
     $stampUrl = "";
     if ($report["stamp"] != 0) {
         $stamp = Stamp::model()->fetchStampById($report["stamp"]);
         $stampUrl = FileUtil::fileName(Stamp::STAMP_PATH) . $stamp;
     }
     $report["addtime"] = ConvertUtil::formatDate($report["addtime"], "u");
     $params = array("lang" => Ibos::getLangSource("report.default"), "repid" => $repid, "report" => $report, "uid" => $uid, "orgPlanList" => $record["orgPlanList"], "outSidePlanList" => $record["outSidePlanList"], "nextPlanList" => $record["nextPlanList"], "attachs" => $attachs, "readers" => $readers, "stampUrl" => $stampUrl, "fromController" => $fromController, "isShowTitle" => $isShowTitle, "allowComment" => $this->getIsAllowComment($fromController));
     $detailAlias = "application.modules.report.views.detail";
     $detailView = $this->renderPartial($detailAlias, $params, true);
     $this->ajaxReturn(array("data" => $detailView, "isSuccess" => true));
 }
Example #4
0
 public function getUids($content, $extraUids = null, $lessUids = null)
 {
     preg_match_all($this->_atRegex, $content, $matches);
     $unames = $matches[1];
     $map = "realname in ('" . implode("','", $unames) . "')";
     $ulist = User::model()->fetchAll($map);
     $matchUids = ConvertUtil::getSubByKey($ulist, "uid");
     if (empty($matchUids) && !empty($extraUids)) {
         if (!empty($lessUids)) {
             foreach ($lessUids as $k => $v) {
                 if (in_array($v, $extraUids)) {
                     unset($extraUids[$k]);
                 }
             }
         }
         return is_array($extraUids) ? $extraUids : array($extraUids);
     }
     $suid = array();
     foreach ($matchUids as $v) {
         !in_array($v, $suid) && ($suid[] = (int) $v);
     }
     if (!empty($lessUids)) {
         foreach ($suid as $k => $v) {
             if (in_array($v, $lessUids)) {
                 unset($suid[$k]);
             }
         }
     }
     return array_unique(array_filter(array_merge($suid, (array) $extraUids)));
 }
 public function handleInitEnvironment($event)
 {
     Ibos::app()->performance->startClock();
     Ibos::app()->performance->startMemoryUsageMarker();
     define("STATICURL", Ibos::app()->assetManager->getBaseUrl());
     define("IN_MOBILE", EnvUtil::checkInMobile());
     define("IN_DASHBOARD", EnvUtil::checkInDashboard());
     define("TIMESTAMP", time());
     define("IN_APP", EnvUtil::checkInApp());
     $this->setTimezone();
     if (function_exists("ini_get")) {
         $memorylimit = @ini_get("memory_limit");
         if ($memorylimit && ConvertUtil::ConvertBytes($memorylimit) < 33554432 && function_exists("ini_set")) {
             ini_set("memory_limit", "128m");
         }
     }
     $global = array("timestamp" => TIMESTAMP, "version" => VERSION, "clientip" => EnvUtil::getClientIp(), "referer" => "", "charset" => CHARSET, "authkey" => "", "newversion" => 0, "config" => array(), "setting" => array(), "user" => array(), "cookie" => array(), "session" => array(), "lunar" => DateTimeUtil::getlunarCalendar(), "title" => MainUtil::getIncentiveWord(), "staticurl" => STATICURL);
     $global["phpself"] = $this->getScriptUrl();
     $sitePath = substr($global["phpself"], 0, strrpos($global["phpself"], "/"));
     $global["isHTTPS"] = isset($_SERVER["HTTPS"]) && strtolower($_SERVER["HTTPS"]) != "off" ? true : false;
     $global["siteurl"] = StringUtil::ihtmlSpecialChars("http" . ($global["isHTTPS"] ? "s" : "") . "://" . $_SERVER["HTTP_HOST"] . $sitePath . "/");
     $url = parse_url($global["siteurl"]);
     $global["siteroot"] = isset($url["path"]) ? $url["path"] : "";
     $global["siteport"] = empty($_SERVER["SERVER_PORT"]) || $_SERVER["SERVER_PORT"] == "80" || $_SERVER["SERVER_PORT"] == "443" ? "" : ":" . $_SERVER["SERVER_PORT"];
     $config = @(include PATH_ROOT . "/system/config/config.php");
     if (empty($config)) {
         throw new NotFoundException(Ibos::Lang("Config not found", "error"));
     } else {
         $global["config"] = $config;
     }
     Ibos::app()->setting->copyFrom($global);
 }
Example #6
0
 public function actionIndex()
 {
     $op = EnvUtil::getRequest("op");
     $op = in_array($op, array("dept", "letter")) ? $op : "dept";
     $params = array();
     if ($op == "letter") {
         $params["datas"] = $this->getDataByLetter();
     } else {
         $params["datas"] = $this->getDataByDept();
     }
     $userDatas = array();
     if (!empty($params["datas"])) {
         foreach ($params["datas"] as $datas) {
             $userDatas = $op == "dept" ? array_merge($userDatas, $datas["users"]) : array_merge($userDatas, $datas);
         }
     }
     $params["uids"] = implode(",", ConvertUtil::getSubByKey($userDatas, "uid"));
     $uid = Ibos::app()->user->uid;
     $params["cuids"] = Contact::model()->fetchAllConstantByUid($uid);
     $this->setPageTitle(Ibos::lang("Contact"));
     $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Contact"), "url" => $this->createUrl("defalut/index")), array("name" => Ibos::lang("Company contact"))));
     $view = $op == "letter" ? "letter" : "dept";
     $params["allLetters"] = $this->allLetters;
     $this->render($view, $params);
 }
Example #7
0
 public static function export($idstr)
 {
     $idArr = is_array($idstr) ? $idstr : explode(",", $idstr);
     if (1 < count($idArr)) {
         $zip = new Zip();
         $exportFileName = Ibos::lang("Form export file pack", "workflow.default", array("{date}" => date("Y-m-d")));
         $zipFileName = FileUtil::getTempPath() . "/" . TIMESTAMP . ".zip";
         foreach ($idArr as $id) {
             $form = self::handleExportSingleForm($id);
             $zip->addFile($form["content"], sprintf("%s.html", ConvertUtil::iIconv($form["title"], CHARSET, "gbk")));
         }
         $fp = fopen($zipFileName, "w");
         if (@fwrite($fp, $zip->file()) !== false) {
             header("Cache-control: private");
             header("Content-type: application/octet-stream");
             header("Accept-Ranges: bytes");
             header("Content-Length: " . sprintf("%u", FileUtil::fileSize($zipFileName)));
             header("Content-Disposition: attachment; filename=" . $exportFileName . ".zip");
             readfile($zipFileName);
             exit;
         }
     } else {
         $id = implode(",", $idArr);
         $form = self::handleExportSingleForm($id);
         ob_end_clean();
         header("Cache-control: private");
         header("Content-type: text/plain");
         header("Accept-Ranges: bytes");
         header("Accept-Length: " . strlen($form["content"]));
         header("Content-Disposition: attachment; filename=" . $form["title"] . ".html");
         echo $form["content"];
     }
 }
 public function getMemoryMarkerUsage($format = true)
 {
     $usage = (int) memory_get_usage() - $this->memoryUsage;
     if ($format) {
         return ConvertUtil::sizeCount($usage);
     }
     return $usage;
 }
Example #9
0
 public function actionAllDiggList()
 {
     $feedId = intval(EnvUtil::getRequest("feedid"));
     $result = FeedDigg::model()->fetchUserList($feedId, 5);
     $uids = ConvertUtil::getSubByKey($result, "uid");
     $followStates = Follow::model()->getFollowStateByFids(Ibos::app()->user->uid, $uids);
     $this->renderPartial("alldigglist", array("list" => $result, "followstates" => $followStates, "feedid" => $feedId));
 }
Example #10
0
 public function fetchAllPositionIdByUid($uid)
 {
     static $uids = array();
     if (!isset($uids[$uid])) {
         $posids = $this->fetchAll(array("select" => "positionid", "condition" => "`uid` = :uid", "params" => array(":uid" => $uid)));
         $uids[$uid] = ConvertUtil::getSubByKey($posids, "positionid");
     }
     return $uids[$uid];
 }
Example #11
0
 public function delClear($id, $uid)
 {
     $fidArr = Yii::app()->db->createCommand()->select("fid")->from($this->tableName())->where("FIND_IN_SET(webid,'{$id}') AND uid = {$uid}")->queryAll();
     $fids = ConvertUtil::getSubByKey($fidArr, "fid");
     $fid = implode(",", $fids);
     Yii::app()->db->createCommand()->delete("{{email_folder}}", "FIND_IN_SET(fid,'{$fid}') AND uid = {$uid}");
     Yii::app()->db->createCommand()->update("{{email}}", array("fid" => 1), "FIND_IN_SET(fid,'{$fid}') AND toid = {$uid}");
     return $this->deleteAll("FIND_IN_SET(webid,'{$id}')");
 }
Example #12
0
 public static function getTableStatus($tableName, $formatSize = true)
 {
     $status = Ibos::app()->db->createCommand()->setText("SHOW TABLE STATUS LIKE '{{" . str_replace("_", "\\_", $tableName) . "}}'")->queryRow();
     if ($formatSize) {
         $status["Data_length"] = ConvertUtil::sizeCount($status["Data_length"]);
         $status["Index_length"] = ConvertUtil::sizeCount($status["Index_length"]);
     }
     return $status;
 }
Example #13
0
 public function fetchAuidByUid($uid)
 {
     $attentions = $this->fetchAll("uid = :uid", array(":uid" => $uid));
     $aUids = array();
     if (!empty($attentions)) {
         $aUids = ConvertUtil::getSubByKey($attentions, "auid");
     }
     return $aUids;
 }
 public function beforeAction($action)
 {
     if (!Ibos::app()->user->isGuest) {
         $param = ConvertUtil::implodeArray(array("GET" => $_GET, "POST" => $_POST), array("username", "password", "formhash"));
         $action = $action->getId();
         $log = array("user" => Ibos::app()->user->username, "ip" => Ibos::app()->setting->get("clientip"), "action" => $action, "param" => $param);
         Log::write($log, "admincp", sprintf("module.dashboard.%s", $action));
     }
     return true;
 }
Example #15
0
 protected function handleList($runProcess)
 {
     foreach ($runProcess as &$run) {
         $run["user"] = User::model()->fetchByUid($run["beginuser"]);
         $run["begintime"] = ConvertUtil::formatDate($run["begintime"], "u");
         $param = array("runid" => $run["runid"], "flowid" => $run["flowid"]);
         $run["key"] = WfCommonUtil::param($param);
     }
     return array("list" => $runProcess);
 }
Example #16
0
 public function delBody($bodyIds, $archiveId = 0)
 {
     $table = sprintf("{{%s}}", $this->getTableName($archiveId));
     $bodys = Yii::app()->db->createCommand()->select("attachmentid")->from($table)->where("FIND_IN_SET(bodyid,'{$bodyIds}')")->queryAll();
     $attachIds = ConvertUtil::getSubByKey($bodys, "attachmentid");
     $attachId = StringUtil::filterStr(implode(",", $attachIds));
     if (!empty($attachId)) {
         AttachUtil::delAttach($attachId);
     }
     return Yii::app()->db->createCommand()->delete($table, "FIND_IN_SET(bodyid,'{$bodyIds}')");
 }
Example #17
0
 public function actionLoadMoreDiggUser()
 {
     $feedId = intval(EnvUtil::getRequest("feedid"));
     $offset = intval(EnvUtil::getRequest("offset"));
     $result = FeedDigg::model()->fetchUserList($feedId, 5, $offset);
     $uids = ConvertUtil::getSubByKey($result, "uid");
     $followStates = Follow::model()->getFollowStateByFids(Ibos::app()->user->uid, $uids);
     $data["data"] = $this->renderPartial("application.modules.message.views.feed.digglistmore", array("list" => $result, "followstates" => $followStates), true);
     $data["isSuccess"] = true;
     $this->ajaxReturn($data);
 }
 public function handleCreditRule($event)
 {
     $rules = array();
     $records = CreditRule::model()->fetchAll();
     if (!empty($records)) {
         foreach ($records as $rule) {
             $rule["rulenameuni"] = urlencode(ConvertUtil::iIconv($rule["rulename"], CHARSET, "UTF-8", true));
             $rules[$rule["action"]] = $rule;
         }
     }
     Syscache::model()->modify("creditrule", $rules);
 }
Example #19
0
 public function fetchRepidAndAidByTypeids($typeids)
 {
     $typeids = is_array($typeids) ? implode(",", $typeids) : trim($typeids, ",");
     $reports = $this->fetchAll(array("select" => "repid, attachmentid", "condition" => "typeid IN({$typeids})"));
     $return = array();
     if (!empty($reports)) {
         $return["repids"] = implode(",", ConvertUtil::getSubByKey($reports, "repid"));
         $attachmentidArr = ConvertUtil::getSubByKey($reports, "attachmentid");
         $return["aids"] = implode(",", array_filter($attachmentidArr));
     }
     return $return;
 }
Example #20
0
 public function fetchAllByDocid($docid)
 {
     $versionData = $this->fetchAll("docid=:docid ORDER BY version DESC", array(":docid" => $docid));
     if (!empty($versionData)) {
         $users = Yii::app()->setting->get("cache/users");
         foreach ($versionData as $key => $version) {
             $versionData[$key]["uptime"] = ConvertUtil::formatDate($version["uptime"], "u");
             $versionData[$key]["editor"] = isset($users[$version["editor"]]) ? $users[$version["editor"]]["realname"] : "--";
             $versionData[$key]["showVersion"] = OfficialdocUtil::changeVersion($version["version"]);
         }
     }
     return $versionData;
 }
Example #21
0
 public function actionIndex()
 {
     $uid = Ibos::app()->user->uid;
     $unreadAtMe = UserData::model()->countUnreadAtMeByUid($uid);
     $pageCount = Atme::model()->countByAttributes(array("uid" => $uid));
     $pages = PageUtil::create($pageCount);
     $atList = Atme::model()->fetchAllAtmeListByUid($uid, $pages->getLimit(), $pages->getOffset());
     $feedIds = ConvertUtil::getSubByKey($atList, "feedid");
     $diggArr = FeedDigg::model()->checkIsDigg($feedIds, $uid);
     $data = array("unreadAtmeCount" => $unreadAtMe, "list" => $atList, "pages" => $pages, "digg" => $diggArr);
     $this->setPageTitle(Ibos::lang("Mention me"));
     $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Message center"), "url" => $this->createUrl("mention/index")), array("name" => Ibos::lang("Mention me"))));
     $this->render("index", $data);
 }
Example #22
0
 protected function getDataByLetter()
 {
     $deptid = intval(EnvUtil::getRequest("deptid"));
     if (!empty($deptid)) {
         $deptids = Department::model()->fetchChildIdByDeptids($deptid, true);
         $uids = User::model()->fetchAllUidByDeptids($deptids, false);
     } else {
         $users = UserUtil::loadUser();
         $uids = ConvertUtil::getSubByKey($users, "uid");
     }
     $uids = $this->removeDisabledUid($uids);
     $res = UserUtil::getUserByPy($uids);
     return ContactUtil::handleLetterGroup($res);
 }
Example #23
0
 public static function getAllArchiveTableId()
 {
     $return = array();
     $db = Yii::app()->db->createCommand();
     $prefix = $db->getConnection()->tablePrefix;
     $tables = $db->setText("SHOW TABLES LIKE '" . str_replace("_", "\\_", $prefix . "log_%") . "'")->queryAll(false);
     if (!empty($tables)) {
         $tableArr = ConvertUtil::getSubByKey($tables, 0);
         $return = array_map(function ($archiveTable) {
             return substr($archiveTable, -4);
         }, $tableArr);
     }
     return $return;
 }
Example #24
0
 public function fetchUserList($feedId, $nums, $offset = 0, $order = "ctime DESC")
 {
     $criteria = array("select" => "uid,ctime", "condition" => sprintf("feedid = %d", $feedId), "order" => $order, "offset" => $offset, "limit" => $nums);
     $result = $this->fetchAll($criteria);
     if ($result) {
         foreach ($result as &$res) {
             $res["user"] = User::model()->fetchByUid($res["uid"]);
             $res["diggtime"] = ConvertUtil::formatDate($res["ctime"]);
         }
     } else {
         $result = array();
     }
     return $result;
 }
Example #25
0
 public function actionIndex()
 {
     $uid = Ibos::app()->user->uid;
     $cuids = Contact::model()->fetchAllConstantByUid($uid);
     $res = UserUtil::getUserByPy($cuids);
     $group = ContactUtil::handleLetterGroup($res);
     $userDatas = array();
     foreach ($group as $users) {
         $userDatas = array_merge($userDatas, $users);
     }
     $params = array("datas" => $group, "letters" => array_keys($group), "allLetters" => $this->allLetters, "uids" => implode(",", ConvertUtil::getSubByKey($userDatas, "uid")));
     $this->setPageTitle(Ibos::lang("Regular contact"));
     $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Contact"), "url" => $this->createUrl("default/index")), array("name" => Ibos::lang("Regular contact"))));
     $this->render("index", $params);
 }
Example #26
0
 public function getSidebar($getUid, $getUser)
 {
     $uid = Ibos::app()->user->uid;
     if (!empty($getUid)) {
         $subUids = $getUid;
     } elseif (!empty($getUser)) {
         $subUids = ConvertUtil::getSubByKey($getUser, "uid");
     } else {
         $subUids = UserUtil::getAllSubs($uid, "", true);
     }
     $deptArr = UserUtil::getManagerDeptSubUserByUid($uid);
     $sidebarAlias = "application.modules.report.views.review.sidebar";
     $params = array("statModule" => Ibos::app()->setting->get("setting/statmodules"), "lang" => Ibos::getLangSource("report.default"), "deptArr" => $deptArr, "dashboardConfig" => $this->getReportConfig(), "reportTypes" => ReportType::model()->fetchAllTypeByUid($subUids));
     $sidebarView = $this->renderPartial($sidebarAlias, $params, false);
     return $sidebarView;
 }
Example #27
0
 public static function processShareListData($uid, $data)
 {
     $result = array();
     $attentions = DiaryAttention::model()->fetchAllByAttributes(array("uid" => $uid));
     $auidArr = ConvertUtil::getSubByKey($attentions, "auid");
     foreach ($data as $diary) {
         $diary["content"] = StringUtil::cutStr(strip_tags($diary["content"]), 255);
         $diary["realname"] = User::model()->fetchRealnameByUid($diary["uid"]);
         $diary["addtime"] = ConvertUtil::formatDate($diary["addtime"], "u");
         $isattention = in_array($diary["uid"], $auidArr);
         $diary["isattention"] = $isattention ? 1 : 0;
         $diary["user"] = User::model()->fetchByUid($diary["uid"]);
         $result[] = $diary;
     }
     return $result;
 }
 protected function ReplenishingScore($list)
 {
     if (empty($list)) {
         return $list;
     }
     $dateScope = array_fill_keys($this->getDateScope(), "'-'");
     $diaryIds = ConvertUtil::getSubByKey($list, "diaryid");
     $timeList = Diary::model()->fetchAddTimeByDiaryId($diaryIds);
     $new = array();
     foreach ($timeList as $time) {
         $dayTime = date("Y-m-d", $time["addtime"]);
         $new[$dayTime] = $time["diaryid"];
     }
     $this->getLegalScore($dateScope, $new, $list);
     return $dateScope;
 }
 protected function ReplenishingScore($list)
 {
     if (empty($list)) {
         return $list;
     }
     $dateScopeTmp = $this->getDateScope();
     $dateScope = array_flip($dateScopeTmp);
     $repIds = ConvertUtil::getSubByKey($list, "repid");
     $timeList = Report::model()->fetchAddTimeByRepId($repIds);
     $new = array();
     foreach ($timeList as $time) {
         $dayTime = date("Y-m-d", $time["addtime"]);
         $new[$dayTime] = $time["repid"];
     }
     $ret = $this->getLegalScore($dateScope, $new, $list);
     return $ret;
 }
Example #30
0
 public static function handelListData($reports)
 {
     $return = array();
     foreach ($reports as $report) {
         $report["cutSubject"] = StringUtil::cutStr(strip_tags($report["subject"]), 60);
         $report["user"] = User::model()->fetchByUid($report["uid"]);
         $readeruid = $report["readeruid"];
         $report["readercount"] = empty($readeruid) ? 0 : count(explode(",", trim($readeruid, ",")));
         $report["content"] = StringUtil::cutStr(strip_tags($report["content"]), 255);
         $report["addtime"] = ConvertUtil::formatDate($report["addtime"], "u");
         if ($report["stamp"] != 0) {
             $path = Stamp::model()->fetchIconById($report["stamp"]);
             $report["stampPath"] = FileUtil::fileName(Stamp::STAMP_PATH . $path);
         }
         $return[] = $report;
     }
     return $return;
 }