您现在的位置是:首页 > 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首页“今日”“昨日”“欢迎新会员”等文字删除添加搜索templeta/default/forum/discuz.htm (使用非默认模版的请修改当前使用模版的discuz.htm)
Discuz! X3数据字典ctrl+G查询
pre_common_admincp_cmenu 后台菜单收藏表;pre_common_admincp_group 后台管理组;pre_common_admincp_member 后台管理成员;pre_common_admincp_perm 后台权限表
discuz建站步骤教程
买了域名A,又买了虚拟主机B,悔不当初的是B还免费送域名。各种失败尝试就不说了,反正折腾了整天终于通了。主机是cPanel图形化管理器,虽然说很方便,但绑定起来还是很多问题要注意的。
Discuz数据结构说明文档
由于工作需要,发现Discuz的数据结构在网上很难找到全的。希望找到的这个能对大家有帮助!discuz数据表结构
相关源码
-
(自适应)品牌创意设计作品工作室pbootcms模板下载该模板适用于品牌策划、艺术设计、广告创意公司官网,亦可通过替换图文快速适配其他行;高端创意设计公司工作室网站源码极简代码架构、艺术化视觉布局、企业级功能扩展性。查看源码 -
pbootcms响应式蓝色旅游旅行社pbootcms网站源码下载为旅游公司、旅行社定制的响应式网站模板,聚焦旅游线路展示、景点推荐及预约服务场景。采用PbootCMS内核开发,自适应技术确保PC与手机端数据实时同步查看源码 -
帝国cms自适应古诗词古籍名句网站整站带数据基于帝国CMS打造的专业古诗词文化网站模板,专注于古典文学内容的展示与传播。模板设计蕴含传统文化韵味,支持诗词鉴赏、名句赏析、古籍整理等特色功能,为诗词爱好者提供优质的在线阅读体验。查看源码 -
(PC+WAP)蓝色五金机械设备营销型网站源码下载基于PbootCMS内核开发的营销型企业网站模板,为五金机械设备类企业打造,通过标准化数字展示提升客户转化率。模板采用模块化设计,可快速适配机床工具、建筑五金、阀门管件等细分领域。查看源码 -
(PC+WAP)生活资讯百科新闻门户类pbootcms网站模板为生活资讯、百科门户类企业打造的高性能网站模板,基于PbootCMS开源内核开发,采用HTML5响应式架构,PC与手机端实时数据同步,覆盖全终端用户浏览场景。查看源码 -
(PC+手机)帝国cms7.5漫画图片连载网站源码免费下载本模板基于帝国CMS7.5深度开发,为漫画阅读类网站打造。整体设计风格贴合漫画行业特性,界面布局充分考虑漫画作品的展示需求,支持多种漫画阅读模式。模板采用响应式设计,能够自动适配PC端和移动端设备,为读者提供流畅的阅读体验。查看源码
| 分享笔记 (共有 篇笔记) |
