discuz如何做到不同主题调取不同的独立diy内容
- 原创
- |
- 浏览:266
- |
- 更新:
要实现这个discuz如何做到不同主题调取不同的diy或者说是调取相对应的diy?复制采集君,你好,今天你复制粘贴,发财了吗?还真没那么简单,我尝试了很多种办法,zui终通过大胆猜想和尝试实践之后,才想到怎么来实现这个功能,很辛苦,很累!实现的基本原理就是,先给某个特定的主题(你想要做这个主题核心关键词排名的主题)做一个特定的单独模板,这得益于我原来研究和精通dede程序的启发来源。单独设置一个主题,然后再去创建diy的时候就不会跟其他页面的diy内容有冲突了,这样的话,单独一个专用的模板所调取的diy内容就会与其他所有版块完全不同,这样就不会那么死板去调取公共部分了,这样也利于SEO。我都快要佩服我自己的聪明才智和牛叉的智慧了!
方法/步骤
费话不多说,按步骤来操作,首先要在数据库的一个表 pre_forum_forum 新增两个字段,分别是 标识 主题的列表页模板 vfile:
ALTER TABLE `pre_forum_forum` ADD `ffile` CHAR( 40 ) NOT NULL AFTER `styleid` , ADD `vfile` CHAR( 40 ) NOT NULL AFTER `ffile`;
接着要添加你能在后台看得见的一些表单:
打开 source/module/forum/forum_forumdisplay.php,ctrl+f 寻找代码:$template = 'diy:forum/forumdisplay:'.$_G['fid'];
然后在上面的代码下面添加代码:
$template2 = 'diy:'.$_G['forum']['ffile'].':'.$_G['fid'];
完了之后,继续ctrl+f,寻找代码:
include template($template);
然后,把上面的代码注释掉,或者删掉,紧接着在后面添加代码:
if($_G['forum']['ffile'])
$skinfile=$template2;
else
$skinfile = $template;
include template($skinfile);- 此文章未经授权抓取自百度经验
完了之后,就保存文件,退出。
接着来就是修改主题内容帖子页面模板,给它增加一个判断,你先别管为什么,这里面是为了做到兼容不出错,完全智能化或者说是自动化等等。
打开 source/module/forum/forum_viewthread.php ,然后 ctrl+f,寻找代码:include template('diy:forum/viewthread'.$sufix.':'.$_G['fid']);
寻找到上面的代码之后,可以直接把上面的代码删掉,或者你也可以把它注释掉也行,我是选择注释掉的,为了方便以后还能找回原来的代码做准备的,建议你也学我一样吧。
接着就是紧接着在后面添加代码:if($_G['forum']['vfile']){
include template('diy:'.$_G['forum']['vfile'].':'.$_G['fid']);
}
else{
include template('diy:forum/viewthread'.$sufix.':'.$_G['fid']);
}完了之后呢,保存文件,退出。
接着来给后台增加一些人性化的提醒操作,方便以后管理,打开 source/language/lang_admincp.php,继续ctrl+f,寻找代码:forums_edit_extend_threadcache_comment
然后,在上面的代码下面添加代码:
'forums_edit_extend_ffile' => '主题列表模板文件:',
'forums_edit_extend_ffile_comment' => '填写格式如forum/forumdisplay,为空则默认为forumdisplay',
'forums_edit_extend_vfile' => '版块内容模板文件:',
'forums_edit_extend_vfile_comment' => '填写格式如forum/viewthread,为空则默认为viewthread',完了之后,保存文件,退出,到这里呢,就已经成功地在后台新增了两个功能,可以自由给任何一个版块自由设定任意模板了,如图所示:(原来的程序是没有这个功能的,现在有了,是不是感觉很爽啊!,我再一次把掌声送给自己,我实在是太聪明、太机智、太智慧、太那个啥了,总之吧,我很了不起的样子,起码看起来是的!你认为呢?!)
好了,上面的操作做完了之后,只是完成了一半工作而已,还有后面相当复杂的操作过程。认真耐心看教程吧先把原来在公共调取的模板文件复制一份出来,然后给它不同的容易记得住的特定命名,比如我有一个版块专门想做 龙虾 的,然后我就 多加了 “longxia”这样的命名来区别,如图所示:(紧接着把这两个文件上传到模板目录下,反正跟原来的模板文件挨在一起同在一个文件夹下就可以了!)
接着呢,我们要干什么呢?
回到后台,什么样的后台,如图所示:这里要值得注意的地方就是,两个地方:
首先,就是不要写绝对的路径,它其实已经是默认了把所选的风格模板文件当做是当前默认文件下,所以前面不需要**路径的,如图所示:(看图!自己去对比吧!真的不会解释了,哎,好烦!!!)注意对比哈,认真对比,再去写,不然会出错!!!搞不好会死机喔!!~~
其次要注意的地方就是,请你仔细认真看,你会发现一个小地方,就是 forum/forumdisplaylongxia 这个地方的后面,它是没有 .htm
错误的写法类似这样的:forum/forumdisplaylongxia.htm (这个是错误的写法!!错误的写法!错误的写法!重要的事情讲3遍!)
那么,正确的写法就是:forum/forumdisplaylongxia (这个才是正确的写法!!!!!!!!!!!!!!!!!!!)
接下来就是进入主题啦!什么主题呢?就是搞这个特定主题的 diy(独 one 无 two 的 diy 内容)回到前台,打开 diy 功能,进入高级模式……
进来之后呢,你会发现原有的 diy 的那个区域是一片空白的,这个时候,你要重新设定……
怎么设定呢?接着来……
在你要设diy调取的那个区域里面,先添加 框架!稍微解释一下什么叫框架:每个diy 加上去的 都要区分 不同的标识符,以免冲突。先加 框架(相当于加一个碗),然后再加 模块(相当于往 碗里加菜),**后才是选择调取单独的 小龙虾 内容。
接着呢,才是添加 模块!
接下来就是,那个模板里面的样式啊,什么乱七八糟的样式呀,什么好看啦,好看的样式啦,自己去设!!如图:
然后呢,什么乱七八糟的设置就自己去设啦!
完了之后,要切记一件事情,就是:
每当设好了一个diy区域的时候,必须要先到服务器释放内存,接着去后台更新缓存!
意思就是说,每当设好了一个小块区域之后呢,就要去更新一下缓存,不然的话,你设定的这些diy的所有的内容就会消失啦,等于白做工!!!
不要急!diy的块区,设定一个就更新缓存一个,保证每一个都成功设置!不要做无用功!一个个设,也没多大点事,它不会浪费你一毛钱!!
等你上面的所有的diy区域都搞完了之后呢,接下来也要注意一个地方就是……如图:这里是个啥呢?点击这个【编辑】进去,看看不就知道是啥了吗?
养成好的习惯,给你新增的模板页面 命个名吧!!!!大哥哥,大姐姐!喔!
完了之后,再去看看这里,如图:看到了吧?!!就是上面截图这里,你会发现是这样子的。如果没做前面的那几个步骤,你会看到【所在页面】这里啊,会有【未使用】这样的字眼的,这样的话,万一清理缓存的时候,就会清掉你所设的diy,这样又是白干一场了,你滴明白!?
所以,很重要吧!!多看看吧!
终于结束了,完了!OK了!拜拜,睡觉!晚安!不对,现在是早上了,早安吧!
——土土土 于 2019年7月21日06:47:12 原创亲笔!
(转载的时候不要漏掉这一句话,我写得很辛苦,谢谢啦!)END



















