Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] [原创]IFRAME嵌入网站(逸风版)_前台有按钮+后台独立设定组别使用权限

[复制链接]
windsnow 发表于 2006-2-7 07:36:42 | 显示全部楼层 |阅读模式
前言 : 个人来说, 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, 请自行更改以下相关部分)

  1. ALTER TABLE `cdb_usergroups` ADD `allowiframecode` tinyint(1) DEFAULT '0' NOT NULL AFTER `allowhidecode` ;
复制代码


2. 在 templates/default/admincp.lang.php (如果其他风格里有这档也要改) 找 :

  1. 'usergroups_edit_hide_code_comment' => '设置是否允许帖子中使用 [hide] 隐藏标签',
复制代码


下面加入

  1. 'usergroups_edit_iframe_code' => '允许使用 [iframe] 代码:',
  2.         'usergroups_edit_iframe_code_comment' => '设置是否允许帖子中使用 [iframe] 嵌入网站标签',
复制代码


3. 在 admin/groups.inc.php 找 :

  1. showsetting('usergroups_edit_hide_code', 'allowhidecodenew', $group['allowhidecode'], 'radio');
复制代码


下面加入

  1. showsetting('usergroups_edit_iframe_code', 'allowiframecodenew', $group['allowiframecode'], 'radio');
复制代码


再找

  1. allowhidecode='$allowhidecodenew',
复制代码


后面跟着加入

  1. allowiframecode='$allowiframecodenew',
复制代码


4. 在 include/discuzcode.func.php 找 :

  1. if(empty($discuzcodes['searcharray']['imgcode'])) {
  2.                         $discuzcodes['searcharray']['imgcode'] = array(
  3.                                 "/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies",
  4.                                 "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies",
  5.                                 "/\[img=(\d{1,3})[x|\,](\d{1,3})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies"
复制代码


因为很多hack都可能改动这段, 所以特别说明一下. 找不到的话切除以上一小段来找就可找到. 找到之后留意看ies"之后有没有","(逗号), 有或无分开两种情况, 4.1或4.2, 只做其一就可以.

4.1 - 没逗号的话先在ies"后面加一个逗号
  1. ,
复制代码

然后在后面加入
  1. "/\[iframe\]\s*(.+?)\s*\[\/iframe\]/ies"
复制代码

4.2 - 有逗号的话在后面加入
  1. "/\[iframe\]\s*(.+?)\s*\[\/iframe\]/ies",
复制代码


改完以上其一后, 再下一点找 :

  1. "bbcodeurl('\\3', '<img width="\\1" height="\\2" src="%s" border="0">')"
复制代码


同样, 找到之后留意看')"之后有没有","(逗号), 有或无分开两种情况, 4.3或4.4, 只做其一就可以.

4.3 - 没逗号的话先在')"后面加一个逗号
  1. ,
复制代码

然后在后面加入
  1. "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 - 有逗号的话在后面加入
  1. "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 的最底部加入 :

  1. function bb_iframe() {
  2.                
  3.                 if (helpmode) {
  4.                 alert(iframe_help);
  5.         } else if (document.selection && document.selection.type == "Text") {
  6.                 var range = document.selection.createRange();
  7.                 range.text = "[iframe]" + range.text + "[/iframe]";
  8.         } else if (advmode) {
  9.                 AddTxt="\r[iframe]\r[/iframe]";
  10.                 AddText(AddTxt);
  11.         } else {   
  12.                 txt=prompt(iframe_normal,"http://");     
  13.                 if (txt!=null) {         
  14.                         AddTxt="\r[iframe]"+txt;
  15.                         AddText(AddTxt);
  16.                         AddText("[/iframe]");
  17.                 }              
  18.         }
  19. }
复制代码


6. 在 templates/default/post_bbinsert.htm (如其他风格里有此档也要修改) 找 :

  1. var underline_normal = "{lang post_discuzcode_underline_normal}";
复制代码


下面加入

  1. var iframe_help = "{lang post_discuzcode_iframe_help}";
  2.         var iframe_normal = "{lang post_discuzcode_iframe_normal}";
复制代码


再找

  1. <a href="javascript:list()"><img src="{IMGDIR}/bb_list.gif" border="0" alt="{lang post_discuzcode_list}"></a>
复制代码


下面加入

  1. <a href="javascript:bb_iframe()"><img src="{IMGDIR}/bb_iframe.gif" border="0" alt="插入网页"></a>
复制代码


7. 在 templates/default/templates.lang.php (如其他风格里有此档也要修改) 找 :

  1. 'post_discuzcode_list_normal_input' => '请输入列表项目内容,如果留空表示项目结束。',
复制代码


PS:若找不到请以 'post_discuzcode_list_normal_input' => 作为查找条件就会找到该句

在该句下面加入

  1. 'post_discuzcode_iframe_help' =>  '插入一个网站网址(*请注意您是否有权限可使用iframe功能!)。\n例如:\n[url]http://www.windheart.com[/url]\n[url=http://www.windheart.com]这就是逸风[/url]',
  2.         'post_discuzcode_iframe_normal' => '请输入要插入网页的网址.*请注意您是否有权限可使用iframe功能!',
复制代码


*******超过字数限制, 请继续看2楼*******

[ 本帖最后由 windsnow 于 2006-2-7 07:43 编辑 ]
 楼主| windsnow 发表于 2006-2-7 07:37:26 | 显示全部楼层
8. 在 post.php 找 :

  1. if(empty($bbcodeoff) && !$allowhidecode && preg_match("/\[hide=?\d*\].+?\[\/hide\]/is", preg_replace("/(\[code\].*\[\/code\])/is", '', $message))) {
  2.         showmessage('post_hide_nopermission');
  3. }
复制代码


下面加入

  1. if(empty($bbcodeoff) && !$allowiframecode && preg_match("/\[iframe=?\d*\].+?\[\/iframe\]/is", preg_replace("/(\[code\].*\[\/code\])/is", '', $message))) {
  2.         showmessage('post_iframe_nopermission');
  3. }
复制代码


9. 在 wap/include/post.inc.php 找 :

  1. if(empty($bbcodeoff) && !$allowhidecode && preg_match("/\[hide=?\d*\].+?\[\/hide\]/is", preg_replace("/(\[code\].*\[\/code\])/is", '', $message))) {
  2.         wapmsg('post_hide_nopermission');
  3. }
复制代码


下面加入

  1. if(empty($bbcodeoff && !$allowiframecode && preg_match("/\[iframe=?\d*\].+?\[\/iframe\]/is", preg_replace("/(\[code\].*\[\/code\])/is", '', $message))) {
  2.         wapmsg('post_iframe_nopermission');
  3. }
复制代码


10. 在 templates/default/messages.lang.php (如其他风格里有此档也要修改) 找 :

  1. 'post_hide_nopermission' => '对不起,您没有权限使用 [hide] 代码,请返回修改。',
复制代码


下面加入

  1. 'post_iframe_nopermission' => '对不起,您没有权限使用 [iframe] 代码,请返回修改。',
复制代码


11. 在 templates/default/wap.lang.php (如其他风格里有此档也要修改) 找 :

  1. 'post_hide_nopermission' => '无权使用[hide]代码',
复制代码


下面加入

  1. 'post_iframe_nopermission' => '对不起,您没有权限使用 [iframe] 代码,请返回修改。',
复制代码


12. 把以上修改过的档存档上载,再把1楼附档的图示上载到images/风格目录下

13. 后台更新缓存,然后到[用户组]里设定每个组别的使用权限(预设是所有群组连管理员都无权用),至此这个插件完成 !


如果你有装 雪狼 (伊乐园中文论坛) 的"我的许可权"插件, 你可以继续看下一个部分.

========================================
小点心 修改
========================================


以下修改是让iframe的使用权限可以显示在会员权限表中, 进行修改前请先确定你有安装 雪狼 (伊乐园中文论坛) 的"我的许可权"插件, 此插件cache版修改者为 别问我是谁.
原文在 :
http://www.alan888.com/Discuz/viewthread.php?tid=51392

14. 在 templates/status_index.htm 找 :

  1. <td bgcolor="{ALTBG2}">允许使用 [hide] 代码</td>
  2. <td bgcolor="{ALTBG1}">$allowhidecode_display</td>
复制代码


替换

  1. <td bgcolor="{ALTBG2}">允许使用 [hide] 代码<br>允许使用 [iframe] 代码</td>
  2. <td bgcolor="{ALTBG1}">$allowhidecode_display<br>$allowiframe_display</td>
复制代码


15. 在 status.php 找 :

  1. // 允许使用 html 代码:
复制代码


上面加入

  1. // 允许使用 [iframe] 代码:
  2. $allowiframe_display = $allowiframecode  == "1" ? "<font color=green>√</font>" : "<font color=red>×</font>";
复制代码


********** 所有修改完毕************

演示图 :



[ 本帖最后由 windsnow 于 2006-2-7 15:36 编辑 ]
回复

使用道具 举报

Liuxff 发表于 2006-2-7 07:43:22 | 显示全部楼层
顶一下
回复

使用道具 举报

bonusboy29 发表于 2006-2-7 08:10:19 | 显示全部楼层
真是不错的想法 discuz代码也可以做到 但无法做到设置组权限 谢谢楼主
回复

使用道具 举报

freddy 发表于 2006-2-7 08:16:55 | 显示全部楼层
真是好东西啊!
回复

使用道具 举报

karl907 发表于 2006-2-7 08:21:31 | 显示全部楼层
不錯!!
回复

使用道具 举报

yjflq2002 发表于 2006-2-7 08:30:41 | 显示全部楼层
挺好。
回复

使用道具 举报

M55 发表于 2006-2-7 08:38:15 | 显示全部楼层
貌似不错样哦~~~~~~~

就是不知道是干什么用的?
回复

使用道具 举报

jjpan 发表于 2006-2-7 10:46:09 | 显示全部楼层
能告诉我它是做什么用的吗??也就是有什么功能??
回复

使用道具 举报

孤情一刀 发表于 2006-2-7 10:52:59 | 显示全部楼层
我顶!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 01:53 , Processed in 0.030877 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表