珂珂的个人博客 - 一个程序猿的个人网站

discuz 更改html选项条件

       由于某些原因,我要直接在数据库插入主题页,这时候要开启html选项,不然发的帖子都是html标签文字...但是整个板块是禁用html代码的。于是就来动手修改一下discuz的源码....找了好久,终于找到改哪里了。

首先先去找模板分析,模板缓存存放:所有的模板缓存均被解析成php文件存放在 ./data/template 中,以 “数字_模板标示符组合.tpl.php”形式保存。页面缓存刷新原理:当开发者编辑过模板文件之后,Discuz! 模板解析器会匹配模板htm文件与缓存php文件的最后修改时间,如过模板html文件较新或无缓存文件,则更新或生成缓存,不新,则不采取任何动作。手动删除此目录的缓存不会影响Discuz!系统的整体运行,Discuz! 模板缓存仍然会进行自动生成。

找到这个文件 template/default/forum/viewthread.htm  发现有一行<!--{subtemplate forum/viewthread_node}-->

至于你怎么知道是这行..我去掉这行就不显示内容了 肯定是这行啦。根据意思猜找到viewthread_node.htm 发现有一行

<!--{subtemplate forum/viewthread_node_body}-->于是找到viewthread_node_body.htm  内容显示是 $post[message]

这里不知道怎么改了..好吧,我们去找$post这个变量.

      再来分析,根据文件请求路径是请求的forum.php这个文件,有一句

require DISCUZ_ROOT.'./source/module/forum/forum_'.$mod.'.php'; 根据mod参数找到source/module/forum/forum_viewthread.php   ,因为直接看了板块数据表结构,可以知道allowhtml自动用来标识的,于是搜索allowhtml,果然找到$post['message'] = discuzcode(..)  ,到处去找discuzcode 这个方法,搜索文件discuzcode,,

/source/function/function_discuzcode.php  再搜索allowhtml,关键就在这里了$htmlon = $htmlon && $allowhtml ? 1 : 0;

按要改了 if($html) 直接忽略$allowhtml就行,它之前是2个都满足才行.



上一篇:jUploader上传

下一篇:个人代码全部开源


0 评论

查看所有评论

给个评论吧