您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz论坛添加Wiki语法的方法
雁卉2025-07-08Discuz教程已有人查阅
导读目标是使在论坛中的特定语法能够被解析为Wiki实际的url, 如:关键字需要支持以下2种论坛语法:
目标是使在论坛中的特定语法能够被解析为Wiki实际的url, 如:关键字需要支持以下2种论坛语法:
使论坛支持 [wiki]关键字[/wiki] 这样的语法.
使论坛支持wiki特定的引用语法, 如在MoinMoin wiki下是 ["关键字"], 在MediaWiki下是 [[关键字]].
原理是使用语法扫描器在页面解析的时候扫描帖子内容, 对专门的语法实施特定文本替换.
实施:
viewthread.php文件
负责展现帖子的程序是viewthread.php这个文件, 打开并定位到大约330多行左右, 可以看到下面的代码, 这?嵌蕴幽谌萁杏锓ㄌ婊坏牡胤? 我们在这下面继续加入我们自己的语法解析器即可.
解析代码会循环匹配正则表达式所限定的格式然后将其替换为html, 如果需要mediawiki的语法可以将第二个正则表达式替换为 '#\[\[(.+?)\]\]#s' 需要注意的是第二种语法只能在支持html的论坛中使用, 第一种则不限.
使论坛支持 [wiki]关键字[/wiki] 这样的语法.
使论坛支持wiki特定的引用语法, 如在MoinMoin wiki下是 ["关键字"], 在MediaWiki下是 [[关键字]].
原理是使用语法扫描器在页面解析的时候扫描帖子内容, 对专门的语法实施特定文本替换.
实施:
viewthread.php文件
负责展现帖子的程序是viewthread.php这个文件, 打开并定位到大约330多行左右, 可以看到下面的代码, 这?嵌蕴幽谌萁杏锓ㄌ婊坏牡胤? 我们在这下面继续加入我们自己的语法解析器即可.
$post['message'] = discuzcode($post['message'], $post['smileyoff'],
$post['bbcodeoff'], $post['htmlon'], $forum['allowsmilies'],$forum['allowbbcode'],
($forum['allowimgcode'] && $showimages ? 1 : 0),$forum['allowhtml'],
($forum['jammer'] && $post['authorid'] != $discuz_uid ? 1 : 0), 0, $post['authorid']);
这是我加入的自定义新增wiki语法解析函数, 为了管理方便将其独立置于addons/dz_moinwiki.php文件中, 当然名字任由您定.
$post['message'] = moinwiki_parse($post['message']);
别忘了在文件起始部分加入文件引用:
include_once(DISCUZ_ROOT.'./addons/dz_moinwiki.php');
dz_moinwiki.php文件解析代码会循环匹配正则表达式所限定的格式然后将其替换为html, 如果需要mediawiki的语法可以将第二个正则表达式替换为 '#\[\[(.+?)\]\]#s' 需要注意的是第二种语法只能在支持html的论坛中使用, 第一种则不限.
<?php
function moinwiki_parse($message)
{
while (preg_match('#\[wiki\](.+?)\[/wiki\]#s', $message, $match))
{
$wiki_name = $match[1];
$wiki_html = '<b><a href="http://wiki.cwowaddon.com/'.$wiki_name.'" target="_blank">'.$wiki_name.'</a></b>';
$message = str_replace($match[0], $wiki_html, $message);
}
while (preg_match('#\[\"(.+?)\"\]#s', $message, $match))
{
$wiki_name = $match[1];
$wiki_html = '<b><a href="http://wiki.cwowaddon.com/'.$wiki_name.'" target="_blank">'.$wiki_name.'</a></b>';
$message = str_replace($match[0], $wiki_html, $message);
}
return $message;
}
?>
通过这个简单的例子我们也可以看到, 只需对现有html所见即所得技术加以小扩展即可支持核心的wiki语法, 而又能享受到排版的便利, 如果wiki也能使用论坛这样的语法技术, 写作门槛将大大降低。
本文标签:
很赞哦! ()
上一篇:discuz模块调用更新流程解析
相关教程
图文教程
调用discuz编辑器的步骤方法
前面讲了如何开发一个discuz的特殊主题插件,详情可在此查看discuz特殊主题插件开发步骤和犯的愚蠢错误。上一篇文章讲解的是一些简单的开发步骤,不涉及到具体的编码。
wordpress、Discuz产品部署示例
Wordpress、Discuz产品部署三个产品提供挂载的目录信息创建一个博客,用wordpress数据库的设置把nginx和php加入开机自启动:首先,在数据库创建一个wordpress的数据库
LR实战Discuz开源论坛网页细分图结果分析
续LR实战之Discuz开源论坛项目,之前一直是创建虚拟用户脚本(Virtual User Generator)和场景(Controller),现在,终于到了LoadRunner性能测试结果分析(Analysis)这部分了。
discuz!nt用户整合实现同步用户密码的方法
最近的项目要跟discuz的论坛进行整合,实现用户同步注册,单点登陆,同步删除用户,同步修改用户密码采用的是discuz!nt
相关源码
-
(自适应html5)重工业钢铁机械设备网站pbootcms响应式模板下载为重工业领域打造的响应式网站模板,助力企业高效展示产品与服务,基于PbootCMS开发的工业级网站模板,特别适合钢铁制造、机械设备生产等重工业企业使用。查看源码 -
(自适应手机端)锁锁芯锁具网站pbootcms模板 智能防盗锁网站源码下载本模板基于PbootCMS系统开发,为智能锁具、防盗锁芯及相关安防产品企业设计。采用响应式布局技术,确保在手机、平板和电脑等不同设备上都能获得良好的浏览体验,数据实时同步更新。查看源码 -
帝国CMS7.5二次元COS漫展网站模板源码免费下载本模板基于帝国CMS 7.5版本深度开发,为二次元文化分享领域设计。采用UTF-8编码,支持中文内容展示,特别适用于COSPLAY作品展示、漫展信息发布等二次元相关内容的网站建设。模板结构清晰,布局合理,充分考虑了二次元用户群体的浏览习惯和审美需求。查看源码 -
(自适应响应式)房产合同知识产权企业管理pbootcms模板下载本模板基于PbootCMS系统开发,为知识产权服务、法律咨询及企业合同管理等行业设计。采用严谨专业的布局风格,突出法律文书与知识产权服务行业特色,适合展示各类法律服务和知识产权相关内容。查看源码 -
(自适应)蓝色建材亚克力板材装饰材料pbootcms网站模板这款基于PbootCMS开发的响应式模板为建材板材行业优化设计,适用于亚克力板材、建筑装饰材料等企业展示需求。采用HTML5技术实现手机/PC跨终端适配,管理员通过统一后台即可同步查看源码 -
(自适应)驾校培训学车活动免费pbootcms源码下载本模板基于PbootCMS内核开发,为驾校培训行业打造,具备完善的招生展示、课程预约、教练团队展示等功能模块。响应式设计适配各类移动终端,数据实时同步管理,助您高效开展线上业务。查看源码
| 分享笔记 (共有 篇笔记) |
