这个作用是为了使用不同的 forumdisplay模板
由于原来的源文件和现在源文件有了很多变化,包括模板目录,以及读取模板的方式都有了很大的变化,所以,研究了老长时间也没有成功,希望各位鼎力相助,万分感谢!
原来
7x版的时候
是这么写的- switch ($forum['fid'])
- {
- case '1': include template('forumdisplay_7X'); break;
复制代码 现在dx版有限变化
用
- switch ($_G['forum']['fid'])
- {
- case '1': include template('forum/forumdisplay_DX); break;
复制代码 没有什么作用
请给位大大给指点下 正确的写法 非常感谢
涉及的代码:7x版- if($forumjump) {
- $forummenu = forumselect(FALSE, 1);
- }
- switch ($forum['fid'])
- {
- case '1': include template('forumdisplay1'); break;
- case '2': include template('forumdisplay2'); break;
- case '3': include template('forumdisplay'); break;
- default: include template('forumdisplay');
- }
- ?>
复制代码 涉及的代码:Dx版
$subforumonly = $_G['forum']['simple'] & 1;
if($subforumonly) {
$forummenu = '';
if($_G['setting']['forumjump']) {
$forummenu = forumselect(FALSE, 1);
}
switch ($_G['forum']['fid'])
{
case '1': include template('forum/forumdisplay1'); break;
case '2': include template('forum/forumdisplay2'); break;
case '3': include template('forum/forumdisplay3'); break;
include template('forum/forumdisplay');
exit();
}
$page = $_G['page'];
$page = $_G['setting']['threadmaxpages'] && $page > $_G['setting']['threadmaxpages'] ? 1 : $page;
$start_limit = ($page - 1) * $_G['tpp'];
$simplestyle = !$_G['forum']['allowside'] || $page > 1 ? true : false;
if($_G['forum']['modrecommend'] && $_G['forum']['modrecommend']['open'] && !$simplestyle) {
$_G['forum']['recommendlist'] = recommendupdate($_G['fid'], $_G['forum']['modrecommend'], '', 1);
}
$recommendgroups = array();
if($_G['forum']['status'] != 3 && !$simplestyle) {
loadcache('forumrecommend');
$recommendgroups = $_G['cache']['forumrecommend'][$_G['fid']];
}
if(!$simplestyle || !$_G['forum']['allowside'] && $page == 1) {
if($_G['cache']['announcements_forum']) {
$announcement = $_G['cache']['announcements_forum'];
$announcement['starttime'] = dgmdate($announcement['starttime'], 'd');
} else {
$announcement = NULL;
}
}
$filteradd = $sortoptionurl = $sp = '';
$sorturladdarray = $selectadd = array();
$forumdisplayadd = array('orderby' => '');
$specialtype = array('poll' => 1, 'trade' => 2, 'reward' => 3, 'activity' => 4, 'debate' => 5);
$filterfield = array('digest', 'recommend', 'typeid', 'sortid', 'special', 'dateline', 'specialtype', 'author', 'reply', 'view', 'lastpost', 'heat', 'page');
foreach ($filterfield as $v) {
$forumdisplayadd[$v] = '';
}
if(isset($_G['gp_filter']) && in_array($_G['gp_filter'], $filterfield)) {
if($query_string = $_SERVER['QUERY_STRING']) {
$query_string = substr($query_string, (strpos($query_string, "&") + 1));
parse_str($query_string, $geturl);
$geturl = daddslashes($geturl, 1);
if($geturl && is_array($geturl)) {
$issort = isset($_G['gp_sortid']) && isset($_G['forum']['threadsorts']['types'][$_G['gp_sortid']]) && $quicksearchlist ? TRUE : FALSE;
$selectadd = $issort ? $geturl : array();
foreach($filterfield as $option) {
foreach($geturl as $field => $value) {
if(in_array($field, $filterfield) && $option != $field && $field != 'page') {
$forumdisplayadd[$option] .= '&'.$field.'='.$value;
}
}
if($issort) {
$sfilterfield = array_merge(array('filter', 'sortid', 'orderby', 'fid'), $filterfield);
foreach($geturl as $soption => $value) {
$forumdisplayadd[$option] .= !in_array($soption, $sfilterfield) ? "&$soption=$value" : '';
}
}
}
if($issort && is_array($quicksearchlist)) {
foreach($quicksearchlist as $option) {
$identifier = $option['identifier'];
foreach($geturl as $option => $value) {
$sorturladdarray[$identifier] .= !in_array($option, array('filter', 'sortid', 'orderby', 'fid', 'searchsort', $identifier)) ? "&$option=$value" : '';
}
}
}
foreach($geturl as $field => $value) {
if(in_array($field, $filterfield) && $field != 'page') {
$filteradd .= $sp;
if($field == 'digest') {
$filteradd .= "AND digest>'0'";
} elseif($field == 'recommend' && $_G['setting']['recommendthread']['status']) {
$filteradd .= "AND recommends>'".intval($_G['setting']['recommendthread']['iconlevels'][0])."'";
} elseif($field == 'specialtype') {
$filteradd .= "AND special='$specialtype[$value]'";
} elseif($field == 'dateline') {
$filteradd .= $value ? "AND lastpost>='".(TIMESTAMP - $value)."'" : '';
} else {
$filteradd .= "AND $field='$value'";
}
$sp = ' ';
}
}
}
}
$simplestyle = true;
} else {
$_G['gp_filter'] = '';
}
if(!empty($_G['gp_orderby']) && in_array($_G['gp_orderby'], array('lastpost', 'dateline', 'replies', 'views', 'recommends', 'heats'))) {
$forumdisplayadd['orderby'] .= '&orderby='.$_G['gp_orderby'];
} else {
$_G['gp_orderby'] = isset($_G['cache']['forums'][$_G['fid']]['orderby']) ? $_G['cache']['forums'][$_G['fid']]['orderby'] : 'lastpost';
}
if(!empty($_G['gp_ascdesc']) && in_array($ascdesc, array('ASC', 'DESC'))) {
$forumdisplayadd['ascdesc'] .= '&ascdesc='.$_G['gp_ascdesc'];
} else {
$_G['gp_ascdesc'] = isset($_G['cache']['forums'][$_G['fid']]['ascdesc']) ? $_G['cache']['forums'][$_G['fid']]['ascdesc'] : 'DESC';
}
$check = array();
$check[$_G['gp_filter']] = $check[$_G['gp_orderby']] = $check[$_G['gp_ascdesc']] = 'selected="selected"';
if(($_G['forum']['status'] != 3 && !$simplestyle) || !empty($_G['forum']['threadsorts']['templatelist'])) {
$onlinenum = getonlinenum($_G['fid']);
if($_G['setting']['whosonlinestatus'] == 2 || $_G['setting']['whosonlinestatus'] == 3) {
$_G['setting']['whosonlinestatus'] = 1;
$detailstatus = $showoldetails == 'yes' || (((!isset($_G['cookie']['onlineforum']) && !$_G['setting']['whosonline_contract']) || $_G['cookie']['onlineforum']) && !$showoldetails);
if($detailstatus) {
updatesession();
$actioncode = lang('forum/action');
$whosonline = array();
$forumname = strip_tags($_G['forum']['name']);
$query = DB::query("SELECT uid, groupid, username, invisible, lastactivity FROM ".DB::table('common_session')." WHERE action='2' AND uid>'0' AND fid='$_G[fid]' AND invisible='0' ORDER BY lastactivity DESC LIMIT 12");
$_G['setting']['whosonlinestatus'] = 1;
while($online = DB::fetch($query)) {
if($online['uid']) {
$online['icon'] = isset($_G['cache']['onlinelist'][$online['groupid']]) ? $_G['cache']['onlinelist'][$online['groupid']] : $_G['cache']['onlinelist'][0];
} else {
$online['icon'] = $_G['cache']['onlinelist'][7];
$online['username'] = $_G['cache']['onlinelist']['guest'];
}
$online['lastactivity'] = dgmdate($online['lastactivity'], 't');
$whosonline[] = $online;
}
unset($online);
}
} else {
$_G['setting']['whosonlinestatus'] = 0;
}
}
if($_G['forum']['threadsorts']['types'] && $sortoptionarray && ($_G['gp_searchoption'] || $_G['gp_searchsort'])) {
$sortid = intval($_G['gp_sortid']);
if($_G['gp_searchoption']){
$forumdisplayadd['page'] = '&sortid='.$sortid;
foreach($_G['gp_searchoption'] as $optionid => $option) {
$identifier = $sortoptionarray[$sortid][$optionid]['identifier'];
$forumdisplayadd['page'] .= $option['value'] ? "&searchoption[$optionid][value]=$option[value]&searchoption[$optionid][type]=$option[type]" : '';
}
}
if($searchsorttids = sortsearch($_G['gp_sortid'], $sortoptionarray, $_G['gp_searchoption'], $selectadd, $_G['fid'])) {
$filteradd .= "AND tid IN (".dimplode($searchsorttids).")";
}
}
if(empty($_G['gp_filter']) && empty($_G['gp_sortid']) && empty($_G['gp_archiveid']) && empty($_G['forum']['archive'])) {
$_G['forum_threadcount'] = $_G['forum']['threads'];
} else {
$_G['forum_threadcount'] = DB::result_first("SELECT COUNT(*) FROM ".DB::table($threadtable)." WHERE fid='{$_G['fid']}' $filteradd AND displayorder>='0'");
}
$thisgid = $_G['forum']['type'] == 'forum' ? $_G['forum']['fup'] : (!empty($_G['cache']['forums'][$_G['forum']['fup']]['fup']) ? $_G['cache']['forums'][$_G['forum']['fup']]['fup'] : 0);
$forumstickycount = $stickycount = $stickytids = 0;
if($_G['setting']['globalstick'] && $_G['forum']['allowglobalstick']) {
$stickytids = $_G['cache']['globalstick']['global']['tids'].(empty($_G['cache']['globalstick']['categories'][$thisgid]['count']) ? '' : ','.$_G['cache']['globalstick']['categories'][$thisgid]['tids']);
$stickytids = trim($stickytids, ', ');
if ($stickytids === ''){
$stickytids = '0';
}
if($_G['forum']['status'] != 3) {
$stickycount = $_G['cache']['globalstick']['global']['count'];
if(!empty($_G['cache']['globalstick']['categories'][$thisgid])) {
$stickycount += $_G['cache']['globalstick']['categories'][$thisgid]['count'];
}
}
}
$forumstickytids = array();
loadcache('forumstick');
$_G['cache']['forumstick'][$_G['fid']] = isset($_G['cache']['forumstick'][$_G['fid']]) ? $_G['cache']['forumstick'][$_G['fid']] : array();
$forumstickycount = count($_G['cache']['forumstick'][$_G['fid']]);
foreach($_G['cache']['forumstick'][$_G['fid']] as $forumstickthread) {
$forumstickytids[] = $forumstickthread['tid'];
}
if(!empty($forumstickytids)) {
$forumstickytids = dimplode($forumstickytids);
$stickytids .= ", $forumstickytids";
}
$stickycount += $forumstickycount;
$filterbool = !empty($_G['gp_filter']) && in_array($_G['gp_filter'], $filterfield);
$_G['forum_threadcount'] += $filterbool ? 0 : $stickycount;
$forumdisplayadd['page'] = !empty($forumdisplayadd['page']) ? $forumdisplayadd['page'] : '';
$multipage_archive = $_G['gp_archiveid'] && in_array($_G['gp_archiveid'], $threadtableids) ? "archiveid={$_G['gp_archiveid']}" : '';
$multipage = multi($_G['forum_threadcount'], $_G['tpp'], $page, "forum.php?mod=forumdisplay&fid=$_G[fid]".($_G['gp_filter'] ? "&filter=$_G[gp_filter]" : '')."$forumdisplayadd[orderby]$forumdisplayadd |