Discuz! 中实现不同版块使用不同的模板文件的方法

时间:2022-06-01 19:32:07

通过此修改可在Discuz!X1后台为不同版块设置不同的模板文件。在需要为论坛不同版块设置不同模板风格的时候特别有用,比如你专门一个版块用来发布活动,那么可以为这个版块专门做一个模板文件,从而实现个性化的要求: 

安装步骤 

第一步:升级数据库 

复制代码

代码如下:


ALTER TABLE `pre_forum_forum` ADD `ffile` CHAR( 40 ) NOT NULL AFTER `styleid` , ADD `vfile` CHAR( 40 ) NOT NULL AFTER `ffile`; 


第二步:修改source/admincp/admincp_forums.php文件 

找到以下代码 

复制代码

代码如下:


showsetting('forums_edit_extend_threadcache', 'threadcachesnew', $forum['threadcaches'], 'text');在下面添加 
//----edit 
showsetting('forums_edit_extend_ffile', 'ffilenew', $forum['ffile'], 'text'); 
showsetting('forums_edit_extend_vfile', 'vfilenew', $forum['vfile'], 'text'); 
//----edit找到以下代码 
'styleid' => $_G['gp_styleidnew'],在下面添加 
//----edit 
'ffile' => $_G['gp_ffilenew'], 
'vfile' => $_G['gp_vfilenew'], 
//----edit 


第三步:修改source/module/forum/forum_forumdisplay.php 

找到以下代码 

复制代码

代码如下:


include template($template);替换成 
//eidt 
if($_G['forum']['ffile']) 
$skinfile=$_G['forum']['ffile']; 
else 
$skinfile = $template; 
include template($skinfile); 
//eidt 


第四步:修改source/module/forum/forum_viewthread.php 

找到以下代码 

复制代码

代码如下:


include template('diy:forum/viewthread'.$sufix.':'.$_G['fid']);替换成 
//eidt 
if($_G['forum']['vfile']){ 
include template($_G['forum']['vfile']); 

else{ 
include template('diy:forum/viewthread'.$sufix.':'.$_G['fid']); 

//eidt 


第五步:修改source/language/lang_admincp.php 

找到以下代码 

复制代码

代码如下:


Example Source Code:'forums_edit_extend_threadcache_comment' => '此功能可以将游客经常访问的主题临时缓存起来,缓解大型服务器压力。系数范围 0~100,建议数值 20 ~ 40,0 为关闭缓存。在磁盘空间允许的情况下,适当调高缓存系数,可以提高缓存效果
注:版块设置完毕后请到 基本设置 -> 站点页面缓存设置,调整其缓存时间。',在下面添加 
//----edit 
'forums_edit_extend_ffile' => '版块模板文件:', 
'forums_edit_extend_ffile_comment' => '填写格式如forum/forumdisplay,请在特殊需要时进行设置,若为空则默认为forumdisplay', 
'forums_edit_extend_vfile' => '版块主题模板文件:', 
'forums_edit_extend_vfile_comment' => '填写格式如forum/viewthread,请在特殊需要时进行设置,若为空则默认为viewthread', 
//----edit 


第六步:进入后台更新缓存后进入【论坛/版块/编辑/扩展设置】即可看到相应的设置 

设置:版块模板文件、版块主题模板文件 
注意:设置模板文件不需要填写此文件的后缀名 
例子:模板文件为test.htm则只需填写forum/test即可