Esempio n. 1
0
 private static function __getTopTopicsByFid($fid, $page, $pageSize, $params)
 {
     // return DbUtils::getDzDbUtils(true)->queryAll('
     //     SELECT *
     //     FROM %t
     //     WHERE
     //         (fid IN (%n) AND displayorder=%s) OR
     //         (fid IN (%n) AND displayorder=%s) OR
     //         (fid IN (%n) AND (displayorder=%s OR stamp=%s OR icon=%s))
     //     ORDER BY displayorder DESC, dateline DESC
     //     LIMIT %d, %d
     //     ',
     //     array(
     //         'forum_thread',
     //         self::_getFids(0),
     //         self::DISPLAY_ORDER_GLOBAL,
     //         DzForumForum::getFidsByGid(DzForumForum::getGidByFid($fid)),
     //         self::DISPLAY_ORDER_GROUP,
     //         self::_getFids($fid),
     //         self::DISPLAY_ORDER_FORUM,
     //         self::STAMP_TOP, self::ICON_TOP,
     //         $pageSize * ($page-1), $pageSize
     //     )
     // );
     // 不取置顶的图章,图标
     // -- 以下注释 -- //
     return DbUtils::getDzDbUtils(true)->queryAll('
         SELECT *
         FROM %t
         WHERE 
             (fid IN (%n) AND displayorder=%s) OR
             (fid IN (%n) AND displayorder=%s) OR
             (fid IN (%n) AND displayorder=%s)
         ORDER BY displayorder DESC, dateline DESC
         LIMIT %d, %d
         ', array('forum_thread', self::_getFids(0), self::DISPLAY_ORDER_GLOBAL, DzForumForum::getFidsByGid(DzForumForum::getGidByFid($fid)), self::DISPLAY_ORDER_GROUP, self::_getFids($fid), self::DISPLAY_ORDER_FORUM, $pageSize * ($page - 1), $pageSize));
     // $offset = ($page - 1) * $pageSize;
     // $params['topic_stick'] = array(1,2,3);
     // $params['topic_orderby'] = 'displayorder DESC, dateline';
     // return self::getByFidData(self::_getFids(), $offset, $pageSize, $params);
 }
 private function _getTopicInfos($fid, $page, $pageSize, $sort, $filterType = '', $filterId = '', $isImageList = '', $topOrder = '')
 {
     $infos = array('count' => 0, 'list' => array(), 'topTopicList' => array());
     // global $_G;
     // $forum = $_G['forum'];
     $count = $this->_getTopicCount($fid, $sort, $filterType, $filterId);
     $topicList = $this->_getTopicList($fid, $page, $pageSize, $sort, $filterType, $filterId);
     $topTopicList = $topTopicListTmp = $topList = array();
     if ($page == 1 && $topOrder != 0) {
         $status = $_GET['topOrder'];
         $fids = array();
         switch ($status) {
             case DzForumThread::DISPLAY_ORDER_GLOBAL:
                 $fids = ForumUtils::getForumShowFids();
                 break;
             case DzForumThread::DISPLAY_ORDER_GROUP:
                 $fids = DzForumForum::getFidsByGid(DzForumForum::getGidByFid($fid));
                 break;
             case DzForumThread::DISPLAY_ORDER_FORUM:
                 $fids = array($fid);
                 break;
             default:
                 break;
         }
         $topTopicListTmp = DzForumThread::getByFidData($fids, 0, 3, array('topic_stick' => array($status)));
         foreach ($topTopicListTmp as $top) {
             $topList['id'] = (int) $top['tid'];
             $topList['title'] = (string) $top['subject'];
             $topTopicList[] = $topList;
         }
     }
     // $topTopicList = $this->_getListField($topTopicList);
     $list = $this->_getListField($topicList);
     $infos['count'] = $count;
     $infos['list'] = $list;
     $infos['topTopicList'] = $topTopicList;
     return $infos;
 }