コード例 #1
0
 public function __construct()
 {
     $daoObject = ACloudSysCoreCommon::getGlobal(ACloudSysCoreDefine::ACLOUD_OBJECT_DAO);
     $daoObject->getDB();
     list($currentUid) = ACloudSysCoreS::gp('current_uid');
     ACloudSysCoreCommon::setGlobal('customized_current_uid', $currentUid);
 }
コード例 #2
0
 public function deleteSqlLogsByIds($ids)
 {
     if (!ACloudSysCoreS::isArray($ids)) {
         return false;
     }
     return $this->getSqlLogDao()->deleteSqlLogsByIds($ids);
 }
コード例 #3
0
 public function deleteSqlLogsByIds($ids)
 {
     if (!ACloudSysCoreS::isArray($ids)) {
         return false;
     }
     return $this->query(sprintf("DELETE FROM %s WHERE id IN (%s)", $this->tablename, ACloudSysCoreS::sqlImplode($ids)));
 }
コード例 #4
0
 public function updateTableSettingByTableName($tableName, $fields)
 {
     list($tableName, $fields) = array(trim($tableName), $this->checkFields($fields));
     if (!$tableName || !ACloudSysCoreS::isArray($fields)) {
         return false;
     }
     return $this->getTableSettingsDao()->update($fields, $tableName);
 }
コード例 #5
0
 public function updateApiConfigByApiName($apiName, $fields)
 {
     list($apiName, $fields) = array(trim($apiName), $this->checkFields($fields));
     if (!$apiName || !ACloudSysCoreS::isArray($fields)) {
         return false;
     }
     return $this->getApisDao()->update($fields, $apiName);
 }
コード例 #6
0
ファイル: aCloud.php プロジェクト: fanqimeng/4tweb
 public function run()
 {
     list($a) = ACloudSysCoreS::gp(array('a'));
     $action = $a ? $a . "Action" : "";
     if ($action && method_exists($this, $action)) {
         ACloudInit::execute();
         $this->{$action}();
     }
 }
コード例 #7
0
 public function formatDeleteIds($ids)
 {
     if (!ACloudSysCoreS::isArray($ids)) {
         return array();
     }
     list($tableName, $primaryKey) = $this->getPrimaryKeyAndTable();
     $result = array();
     foreach ($ids as $id) {
         $result[] = array($primaryKey => intval($id));
     }
     return $result;
 }
コード例 #8
0
 public function getForumsByRange($startId, $endId)
 {
     list($startId, $endId) = array(intval($startId), intval($endId));
     if ($startId < 0 || $startId > $endId || $endId < 1) {
         return array();
     }
     $sql = sprintf("SELECT * FROM %s WHERE isshow = 1 AND fid >= %s AND fid <= %s", ACloudSysCoreS::sqlMetadata('{{bbs_forum}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId));
     $query = Wind::getComponent('db')->query($sql);
     $result = $query->fetchAll(null, PDO::FETCH_ASSOC);
     if (!ACloudSysCoreS::isArray($result)) {
         return array();
     }
     return $this->buildForumData($result);
 }
コード例 #9
0
 public function getSearchData($params = array())
 {
     list($keyword, $type, $fid, $username) = ACloudSysCoreS::gp(array("keyword", "type", "fid", "username"));
     $data = array();
     $data['k'] = $keyword;
     $data['type'] = $type;
     $data['fid'] = intval($fid);
     $data['username'] = $username;
     $data['charset'] = ACloudSysCoreCommon::getGlobal('g_charset', Wekit::app()->charset);
     $data['url'] = ACloudSysCoreCommon::getGlobal('g_siteurl', $_SERVER['SERVER_NAME']);
     $data['sv'] = 'svp9';
     require_once Wind::getRealPath("ACLOUD:system.core.ACloudSysCoreHttp");
     return ACloudSysCoreHttp::httpBuildQuery(array_merge($data, $params));
 }
コード例 #10
0
 public function filterFields($data)
 {
     if (!ACloudSysCoreS::isArray($data)) {
         return $data;
     }
     $result = array();
     foreach ($data as $key => $fields) {
         if (ACloudSysCoreS::isArray($fields)) {
             unset($fields['password'], $fields['safecv']);
         }
         $result[$key] = $fields;
     }
     return $result;
 }
コード例 #11
0
 public function getRealClassAndMethodAndArguments($classPath, $className, $method, $arguments, $request)
 {
     if (!is_file($classPath)) {
         return array('', '', array());
     }
     require_once ACloudSysCoreS::escapePath($classPath);
     if (!class_exists($className)) {
         return array('', '', array());
     }
     $apiClass = new $className();
     if (!method_exists($apiClass, $method)) {
         return array('', '', array());
     }
     $arguments = $arguments ? explode(',', $arguments) : array();
     $arguments = $this->buildRequestArguments($arguments, $request);
     return array($apiClass, $method, $arguments);
 }
コード例 #12
0
 public function buildClause($arrays, $expr = null)
 {
     if (!is_array($arrays) && !$expr) {
         return '';
     }
     $sets = " SET ";
     if ($expr) {
         foreach ($expr as $v) {
             $sets .= " " . $v . ",";
         }
     }
     if ($arrays) {
         foreach ($arrays as $k => $v) {
             $sets .= " " . ACloudSysCoreS::sqlMetadata($k) . " = " . ACloudSysCoreS::sqlEscape($v) . ",";
         }
     }
     $sets = trim($sets, ",");
     return $sets ? $sets : '';
 }
コード例 #13
0
 public function checkSecretKey($data)
 {
     if (!ACloudSysCoreS::isArray($data) || !isset($data['plaintext']) || !$data['plaintext'] || !isset($data['ciphertext']) || !$data['ciphertext']) {
         return array(false, 'apply_checkkey_invalid_params');
     }
     $keysService = ACloudSysCoreCommon::loadSystemClass('keys', 'config.service');
     $key6 = $keysService->getKey6(2);
     if (!$key6 || strlen($key6) != 128) {
         return array(false, 'apply_checkkey_invalid_key6');
     }
     unset($data['a']);
     unset($data['m']);
     unset($data['c']);
     if (!ACloudSysCoreVerify::verifyWithOAuth($data, $key6)) {
         return array(false, 'apply_checkkey_wrong_sign');
     }
     if (!ACloudSysCoreVerify::verifyWithAES($data['ciphertext'], $data['plaintext'])) {
         return array(false, 'apply_checkkey_fail');
     }
     return array(true, 'apply_checkkey_success');
 }
コード例 #14
0
 public function getForumsByRange($startId, $endId)
 {
     list($startId, $endId) = array(intval($startId), intval($endId));
     if ($startId < 0 || $startId > $endId || $endId < 1) {
         return array();
     }
     $sql = sprintf("SELECT * FROM %s WHERE isshow = 1 AND fid >= %s AND fid <= %s", ACloudSysCoreS::sqlMetadata('{{bbs_forum}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId));
     $query = Wind::getComponent('db')->query($sql);
     $result = $query->fetchAll('fid', PDO::FETCH_ASSOC);
     $fids = array_keys($result);
     $forumDomain = $this->_getDomainDs()->fetchByTypeAndId('forum', $fids);
     $data = array();
     foreach ($result as $k => $v) {
         $v['domain'] = '';
         if (isset($forumDomain[$k])) {
             $v['domain'] = $forumDomain[$k]['domain'];
         }
         $data[] = $v;
     }
     if (!ACloudSysCoreS::isArray($data)) {
         return array();
     }
     return $this->buildForumData($data);
 }
コード例 #15
0
 public function delete($ekey)
 {
     return $this->query(sprintf("DELETE FROM %s WHERE ekey = %s", $this->tablename, ACloudSysCoreS::sqlEscape($ekey)));
 }
コード例 #16
0
 public function getsByAppId($appId)
 {
     return $this->fetchAll(sprintf("SELECT * FROM %s WHERE app_id = %s ", $this->tablename, ACloudSysCoreS::sqlEscape($appId)));
 }
コード例 #17
0
 private function buildSql($sql)
 {
     if (!ACloudSysCoreS::isArray($this->getParams())) {
         return $sql;
     }
     return preg_replace_callback('/\\?/', array($this, 'replaceSqlParams'), $sql);
 }
コード例 #18
0
 private function getDataByPrimaryKeyRange($tableSetting, $start, $end)
 {
     $generalDataService = ACloudSysCoreCommon::loadSystemClass('generaldata', 'config.service');
     $dataSql = sprintf('SELECT * FROM %s WHERE %s >= %s AND %s <= %s', ACloudSysCoreS::sqlMetadata($tableSetting['name']), ACloudSysCoreS::sqlMetadata($tableSetting['primary_key']), ACloudSysCoreS::sqlEscape($start), ACloudSysCoreS::sqlMetadata($tableSetting['primary_key']), ACloudSysCoreS::sqlEscape($end));
     return $generalDataService->executeSql($dataSql);
 }
コード例 #19
0
ファイル: ACloudApiRouter.php プロジェクト: fanqimeng/4tweb
 private function registerSystemParams()
 {
     list($format) = ACloudSysCoreS::gp(array('format'));
     ACloudSysCoreCommon::setGlobal('acloud_api_output_format', $format);
     return true;
 }
コード例 #20
0
 public function get($name)
 {
     return $this->fetchOne(sprintf("SELECT * FROM %s WHERE name = %s", $this->tablename, ACloudSysCoreS::sqlEscape($name)));
 }
コード例 #21
0
 private function getContentAndForumInfo($result)
 {
     $tids = $fids = array();
     foreach ($result as $value) {
         $tids[] = $value['tid'];
         $fids[] = $value['fid'];
     }
     $query = Wind::getComponent('db')->query(sprintf('SELECT * FROM %s WHERE tid IN(%s)', ACloudSysCoreS::sqlMetadata('{{bbs_threads_content}}'), ACloudSysCoreS::sqlImplode(array_unique($tids))));
     $contents = $query->fetchAll('tid', PDO::FETCH_ASSOC);
     $query = Wind::getComponent('db')->query(sprintf('SELECT fid, name as forumname FROM %s WHERE fid IN(%s)', ACloudSysCoreS::sqlMetadata('{{bbs_forum}}'), ACloudSysCoreS::sqlImplode(array_unique($fids))));
     $forums = $query->fetchAll('fid', PDO::FETCH_ASSOC);
     foreach ($result as $key => $thread) {
         $result[$key] = array_merge($thread, (array) $contents[$thread['tid']]);
         $result[$key]['forumname'] = isset($forums[$thread['fid']]) ? $forums[$thread['fid']]['forumname'] : '';
     }
     return $result;
 }
コード例 #22
0
 public function getLatestThreadsByFids($fids, $offset, $limit)
 {
     if (!ACloudSysCoreS::isArray($fids)) {
         return $this->buildResponse(0, array());
     }
     Wind::import('SRV:forum.vo.PwThreadSo');
     $uids = $result = array();
     $threaddb = array();
     $so = new PwThreadSo();
     $so->setFid($fids)->setDisabled(0)->orderbyCreatedTime(0);
     $threaddb = $this->_getThread()->searchThread($so, $limit, $offset);
     if (!$threaddb) {
         return $this->buildResponse(THREAD_NOT_EXIST, "帖子不存在");
     }
     $forums = $this->_getForum()->fetchForum($fids, PwForum::FETCH_MAIN);
     $result = array();
     foreach ($threaddb as $key => $value) {
         if (!$value) {
             continue;
         }
         $value['forumname'] = strip_tags($forums[$value]['name']);
         $value['icon'] = Pw::getAvatar($value['created_userid']);
         $uids[$value['tid']] = $value['created_userid'];
         $result['threads'][$value['tid']] = $value;
     }
     return $this->buildResponse(0, $result);
 }
コード例 #23
0
 private function filterMemberFields($members)
 {
     if (!ACloudSysCoreS::isArray($members)) {
         return array();
     }
     $result = array();
     foreach ($members as $value) {
         unset($value['password']);
         $result[] = $value;
     }
     return $result;
 }
コード例 #24
0
 public function replaceSql($sqlTemplate, $argumentValues, $fields)
 {
     $sqlTemplate = preg_replace('/\\{\\{(\\w+?)\\}\\}/', '[[$1]]', $sqlTemplate);
     preg_match_all('/\\{(\\w+)\\}/', $sqlTemplate, $matches);
     if (!ACloudSysCoreS::isArray($matches)) {
         return '';
     }
     $seg = $this->getRandString(4);
     $sql = preg_replace('/\\{(\\w+)\\}/', $seg . '{${1}}' . $seg, $sqlTemplate);
     foreach ($matches[0] as $k => $v) {
         $value = $v != '{fields}' ? is_array($argumentValues[$matches[1][$k]]) ? ACloudSysCoreS::sqlImplode($argumentValues[$matches[1][$k]]) : $argumentValues[$matches[1][$k]] : $fields;
         $sql = str_replace($seg . $v . $seg, $value, $sql);
     }
     $sql = preg_replace('/\\[\\[(\\w+?)\\]\\]/', '{{$1}}', $sql);
     return $sql;
 }
コード例 #25
0
 public static function getSiteUserAgent()
 {
     list($key, $ua) = array('_ac_app_ua', '');
     if (!$_COOKIE || !isset($_COOKIE[$key]) || !$_COOKIE[$key]) {
         $ua = substr(md5($_SERVER['HTTP_USER_AGENT'] . '\\t' . rand(1000, 9999) . '\\t' . time()), 8, 18);
         setcookie($key, $ua, time() + 86400 * 365 * 5);
     }
     $ua = $ua ? $ua : $_COOKIE[$key];
     return strlen($ua) == 18 ? ACloudSysCoreS::escapeChar($ua) : '';
 }
コード例 #26
0
 public function checkApplyCondition($siteUrl)
 {
     if (!$siteUrl) {
         return array(false, '站点地址不能为空');
     }
     $envService = ACloudSysCoreCommon::loadSystemClass('env', 'open.service');
     if (!$envService->hasIndexFile()) {
         return array(false, 'aCloud安装包的代码不完整,请重新安装覆盖');
     }
     $tableInfo = $this->getTableInfo();
     if (ACloudSysCoreS::isArray($tableInfo)) {
         return array(false, '缺少以下数据表' . implode(',', $tableInfo));
     }
     return array(true, '');
 }
コード例 #27
0
 public function getPostMaxId()
 {
     $sql = sprintf('SELECT MAX(pid) as count FROM %s', ACloudSysCoreS::sqlMetadata('{{bbs_posts}}'));
     $query = Wind::getComponent('db')->query($sql);
     return current($query->fetch(PDO::FETCH_ASSOC));
 }
コード例 #28
0
 private function storage_getAttaches()
 {
     list($directory) = ACloudSysCoreS::gp(array('dir'));
     $dataFlowService = ACloudSysCoreCommon::loadSystemClass('crawler', 'dataflow.service');
     return $dataFlowService->getAttachesForStorage($directory);
 }
コード例 #29
0
 public function format($data, $format, $charset)
 {
     $format = ACloudSysCoreS::inArray(strtolower($format), $this->formats) ? strtolower($format) : 'json';
     $action = $format . 'Format';
     return $this->{$action}($data, $charset);
 }