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; }
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; }
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)); }
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); }
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); }
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; }
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)); }
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]; }
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}')"); }
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; }
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; }
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); }
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}')"); }
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); }
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; }
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; }
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); }
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); }
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; }
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; }
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); }
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; }
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; }
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; }