前言 : 个人来说, iframe功能在2.5版时本来是与多媒体线上播放连在一起改的, 最近研究4.0版时发现语法有不同, 决定把两者分开写, 亦为本来比较简单的iframe加入后台设定, 用了一个晚上总算完工, 希望大家喜欢.
========================================
插件与版权说明
========================================
插件名称:IFRAME嵌入网站-前后台(逸风版)
适用版本:Discuz! 4
插件作者:逸风
制作日期:7th, Feb, 2006
插件特色:
1、前台-在bbcode代码插入栏增加插入按钮,比后台手动加入代码方式更便利论坛会员。
2、后台-可独立设定各群组组别的使用权限,iframe功能可视乎实际需要开放给任何一个组别的论坛用户,比只能限制为版主级别以上专用更具弹性,同时亦避免被一般会员滥用以妨害论坛安全。
3、支援WAP介面的运作
4、本插件依照正规程式开发流程进行编程,涵括后台设定、用户中介输入、程式检测及输出显示部分,保持了与Discuz主程式的完善配合,亦为其他开源用户在进一步修改上提供了稳健的基础。
修改档案:1、admin/groups.inc.php
2、include/discuzcode.func.php
3、include/bbcode.js
4、post.php
5、wap/include/post.inc.php
修改模版:1、templates/default/admincp.lang.php
2、templates/default/post_bbinsert.htm
3、templates/default/templates.lang.php
4、templates/default/messages.lang.php
5、templates/default/wap.lang.php
升级数据库:有
安装难易:易至中
技术支援: http://www.iron-heart.com/forum
效果展示: 2楼有演示图
========================================
程式修改实作
========================================
1. 升级数据库(注意如果你的数据库表名前缀不是用预设的cdb, 请自行更改以下相关部分)
- ALTER TABLE `cdb_usergroups` ADD `allowiframecode` tinyint(1) DEFAULT '0' NOT NULL AFTER `allowhidecode` ;
复制代码
2. 在 templates/default/admincp.lang.php (如果其他风格里有这档也要改) 找 :
- 'usergroups_edit_hide_code_comment' => '设置是否允许帖子中使用 [hide] 隐藏标签',
复制代码
下面加入
- 'usergroups_edit_iframe_code' => '允许使用 [iframe] 代码:',
- 'usergroups_edit_iframe_code_comment' => '设置是否允许帖子中使用 [iframe] 嵌入网站标签',
复制代码
3. 在 admin/groups.inc.php 找 :
- showsetting('usergroups_edit_hide_code', 'allowhidecodenew', $group['allowhidecode'], 'radio');
复制代码
下面加入
- showsetting('usergroups_edit_iframe_code', 'allowiframecodenew', $group['allowiframecode'], 'radio');
复制代码
再找
- allowhidecode='$allowhidecodenew',
复制代码
后面跟着加入
- allowiframecode='$allowiframecodenew',
复制代码
4. 在 include/discuzcode.func.php 找 :
- if(empty($discuzcodes['searcharray']['imgcode'])) {
- $discuzcodes['searcharray']['imgcode'] = array(
- "/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",
- "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies",
- "/\[img=(\d{1,3})[x|\,](\d{1,3})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies"
复制代码
因为很多hack都可能改动这段, 所以特别说明一下. 找不到的话切除以上一小段来找就可找到. 找到之后留意看ies"之后有没有","(逗号), 有或无分开两种情况, 4.1或4.2, 只做其一就可以.
4.1 - 没逗号的话先在ies"后面加一个逗号
然后在后面加入
- "/\[iframe\]\s*(.+?)\s*\[\/iframe\]/ies"
复制代码
4.2 - 有逗号的话在后面加入
- "/\[iframe\]\s*(.+?)\s*\[\/iframe\]/ies",
复制代码
改完以上其一后, 再下一点找 :
- "bbcodeurl('\\3', '<img width="\\1" height="\\2" src="%s" border="0">')"
复制代码
同样, 找到之后留意看')"之后有没有","(逗号), 有或无分开两种情况, 4.3或4.4, 只做其一就可以.
4.3 - 没逗号的话先在')"后面加一个逗号
然后在后面加入
- "bbcodeurl('\\1', '<a href="%s" target="_blank">按此开新视窗</a><br><br><iframe src="%s" frameborder="0" allowtransparency="true" scrolling="yes" width="97%%" height="480"></iframe>')"
复制代码
4.4 - 有逗号的话在后面加入
- "bbcodeurl('\\1', '<a href="%s" target="_blank">按此开新视窗</a><br><br><iframe src="%s" frameborder="0" allowtransparency="true" scrolling="yes" width="97%%" height="480"></iframe>')",
复制代码
5. 在 include/bbcode.js 的最底部加入 :
- function bb_iframe() {
-
- if (helpmode) {
- alert(iframe_help);
- } else if (document.selection && document.selection.type == "Text") {
- var range = document.selection.createRange();
- range.text = "[iframe]" + range.text + "[/iframe]";
- } else if (advmode) {
- AddTxt="\r[iframe]\r[/iframe]";
- AddText(AddTxt);
- } else {
- txt=prompt(iframe_normal,"http://");
- if (txt!=null) {
- AddTxt="\r[iframe]"+txt;
- AddText(AddTxt);
- AddText("[/iframe]");
- }
- }
- }
复制代码
6. 在 templates/default/post_bbinsert.htm (如其他风格里有此档也要修改) 找 :
- var underline_normal = "{lang post_discuzcode_underline_normal}";
复制代码
下面加入
- var iframe_help = "{lang post_discuzcode_iframe_help}";
- var iframe_normal = "{lang post_discuzcode_iframe_normal}";
复制代码
再找
- <a href="javascript:list()"><img src="{IMGDIR}/bb_list.gif" border="0" alt="{lang post_discuzcode_list}"></a>
复制代码
下面加入
- <a href="javascript:bb_iframe()"><img src="{IMGDIR}/bb_iframe.gif" border="0" alt="插入网页"></a>
复制代码
7. 在 templates/default/templates.lang.php (如其他风格里有此档也要修改) 找 :
- 'post_discuzcode_list_normal_input' => '请输入列表项目内容,如果留空表示项目结束。',
复制代码
PS:若找不到请以 'post_discuzcode_list_normal_input' => 作为查找条件就会找到该句
在该句下面加入
- 'post_discuzcode_iframe_help' => '插入一个网站网址(*请注意您是否有权限可使用iframe功能!)。\n例如:\n[url]http://www.windheart.com[/url]\n[url=http://www.windheart.com]这就是逸风[/url]',
- 'post_discuzcode_iframe_normal' => '请输入要插入网页的网址.*请注意您是否有权限可使用iframe功能!',
复制代码
*******超过字数限制, 请继续看2楼*******
[ 本帖最后由 windsnow 于 2006-2-7 07:43 编辑 ] |