public function formatFields($fields)
 {
     $result = array();
     if (!ACloudSysCoreS::isArray($fields)) {
         return '*';
     }
     foreach ($fields as $field) {
         list($tableAlias, $fieldName) = strpos($field, '.') === false ? array('', $field) : explode('.', $field);
         $result[] = ($tableAlias ? $tableAlias . '.' : '') . ACloudSysCoreS::sqlMetadata($fieldName);
     }
     return implode(',', $result);
 }
Пример #2
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);
 }
Пример #3
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 : '';
 }
Пример #4
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);
 }
 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);
 }
Пример #6
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));
 }
Пример #7
0
 public function getUsersByRange($startId, $endId)
 {
     list($startId, $endId) = array(intval($startId), intval($endId));
     if ($startId < 0 || $startId > $endId || $endId < 1) {
         return array();
     }
     $result = $members = array();
     $sql = sprintf("SELECT u.* FROM %s u WHERE u.uid >= %s AND u.uid <= %s", ACloudSysCoreS::sqlMetadata('{{user}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId));
     $query = Wind::getComponent('db')->query($sql);
     $result = $query->fetchAll('uid', PDO::FETCH_ASSOC);
     if (!ACloudSysCoreS::isArray($result)) {
         return array();
     }
     $query = Wind::getComponent('db')->query(sprintf("SELECT ud.* FROM %s ud WHERE ud.uid >= %s AND ud.uid <= %s", ACloudSysCoreS::sqlMetadata('{{user_data}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId)));
     $userData = $query->fetchAll('uid', PDO::FETCH_ASSOC);
     $query = Wind::getComponent('db')->query(sprintf("SELECT ui.* FROM %s ui WHERE ui.uid >= %s AND ui.uid <= %s", ACloudSysCoreS::sqlMetadata('{{user_info}}'), ACloudSysCoreS::sqlEscape($startId), ACloudSysCoreS::sqlEscape($endId)));
     $userInfo = $query->fetchAll('uid', PDO::FETCH_ASSOC);
     foreach ($result as $key => $value) {
         $result[$key] = array_merge($value, $userData[$value['uid']], $userInfo[$value['uid']]);
     }
     $siteUrl = ACloudSysCoreCommon::getGlobal('g_siteurl', $_SERVER['SERVER_NAME']);
     foreach ($result as $member) {
         $member['memberurl'] = 'http://' . $siteUrl . '/index.php?m=space&uid=' . $member['uid'];
         $member['icon'] = Pw::getAvatar($member['uid']);
         $members[$member['uid']] = $member;
     }
     return $this->filterMemberFields($members);
 }
 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;
 }