找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 845|回复: 3

论坛上贴代码保持格式缩进的方法

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-1-21 10:18:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在发信息输入的框上面,有一排按钮,点下 # 按钮或者直接手工输入
{code} 你的代码 {/code}


注意:上面的花括号换成中括号,因为我不能输入中括号,输入就当作VB代码解释,大家就看不到了。

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-3-10 02:23:11 | 显示全部楼层
这个VB论坛的bbcode代码扩展了没有?版本是多少?
我觉得你可以扩展出来像lisp,dwg,txt等等的代码。
这样一来,大家都可以直接发表出来这些源代码,也不需要发表者上传/观看者下载了。
方法可以参考这个方法:
  1. 通常为 vB2 添加新的 vB Code 有两种方法:

  2. 一种是在管理控制面板里添加。这种方法的好处是直观方便,稍懂 HTML 即可,但是最多只能有一个控制选项,例如[ url=xxx ]yyy[ /url ],这里的 xxx 就是 url 代码唯一的控制选项。但是有时候一个控制选项并不足够,例如我要贴一个可以自定义长宽的 Flash,通过管理控制面板里添加的 vB Code 就无能为力了。

  3. 另一种方法就是直接修改程序文件。这种方法灵活多变,可以定义任意多个控制选项,并且还可以对控制选项也进行控制。当然这种修改需要一定的 PHP 编程基础,特别是要了解 PHP 的正则表达式。关于编程这里就不再多说了,把已经做好的修改放上来吧(以下修改均在 vB 2.03 下进行,其他版本的请自己测试,估计大同小异):

  4. 查找 admin/functions.php:

  5. return censortext($bbcode);


  6. 前面加上:

  7. // start new vbcodes added by cx
  8. $searcharray2 = array(
  9. "/(\[shadow])(.*)(\[\/shadow])/siU",
  10. "/(\[glow])(.*)(\[\/glow])/siU",
  11. "/(\[fly])(.*)(\[\/fly])/siU",
  12. "/(\[move])(.*)(\[\/move])/siU",
  13. "/(\[)(swf)(])(www\.)([^"]*)(\[\/swf\])/siU",
  14. "/(\[)(swf)(])([^"]*)(\[\/swf\])/siU",
  15. "/(\[)(swf=)([1-6]\d\d)(,)([1-9]\d\d)(])(www\.)([^"]*)(\[\/swf\])/siU",
  16. "/(\[)(swf=)([1-6]\d\d)(,)([1-9]\d\d)(])([^"]*)(\[\/swf\])/siU",
  17. "/(\[)(iframe)(])(www\.)([^"]*)(\[\/iframe\])/siU",
  18. "/(\[)(iframe)(])([^"]*)(\[\/iframe\])/siU",
  19. "/(\[)(iframe=)([1-6]\d\d)(,)([1-9]\d\d)(])(www\.)([^"]*)(\[\/iframe\])/siU",
  20. "/(\[)(iframe=)([1-6]\d\d)(,)([1-9]\d\d)(])([^"]*)(\[\/iframe\])/siU",
  21. );

  22. $replacearray2 = array(
  23. "<table style="filter: shadow(color=ff5555, direction=135)">\\2</table>",
  24. "<table style="filter: glow(color=5555ff, strength=4)">\\2</table>",
  25. "<marquee behavior=alternate scrollAmount=5 width=100%>\\2</marquee>",
  26. "<marquee scrollamount=5 width=100%>\\2</marquee>",
  27. "<embed src="[URL]http://www.\\5"[/URL]; width=400 height=300></embed><br>",
  28. "<embed src="\\4" width=400 height=300></embed><br>",
  29. "<embed src="[URL]http://www.\\8"[/URL]; width="\\3" height="\\5"></embed><br>",
  30. "<embed src="\\7" width="\\3" height="\\5"></embed><br>",
  31. "<iframe src="[URL]http://www.\\5"[/URL]; width=400 height=300 wiscrolling=no></iframe><br>",
  32. "<iframe src="\\4" width=400 height=300 wiscrolling=no></iframe><br>",
  33. "<iframe src="[URL]http://www.\\8"[/URL]; width="\\3" height="\\5" wiscrolling=no></iframe><br>",
  34. "<iframe src="\\7" width="\\3" height="\\5" wiscrolling=no></iframe><br>",
  35. );

  36. $bbcode = preg_replace($searcharray2, $replacearray2, $bbcode);
  37. // end new vbcodes added by cx


  38. 这一段代码加入了几个新的 vB Code:[ shadow ](阴影)、[ glow ](光晕)、[ fly ](飞行)、[ move ](移动)、[ swf ](Flash)、[iframe](iFrame)。其中后两个都可以有两个控制选项,并且都加上了一定的限制。

  39. 例如,贴一个 Flash:[ swf=xxx,yyy]zzzzzzzzzzzzzzz[ /swf],其中的 xxx 代表 Flash 的宽度,yyy 代表高度;xxx 的范围是 100~699,yyy 是 100~999,超过这个范围 vB Code 将不会解析。当然省略 =xxx,yyy 就是缺省的设置 400x300。[ iframe=xxx,yyy]zzzzzzzzzzzzzzz[ /iframe] 也是一样的道理。

  40. 如果你熟悉 PHP 正则表达式,按照这个方法可以添加更多的 vB Code。当然也不能太多了以免影响速度。

  41. 好了,现在已经成功为 vB2 论坛添加了几个新的 vB Code,手动输入就可以工作了。如果我们还想更方便,就像那些原来的 vB Code 的快捷按钮一样,应该怎么办呢?

  42. 当然要修改你的 vB2 模板 vbcode_buttons,其实也不难,具体怎么改就不多说了,按照原来的结构添加新的内容即可。我现在用的 vbcode_buttons 模板如下,因为加了好几个,所以按钮的布局也变了:

  43. <script language="Javascript" src="vbcode.js"></script>
  44. <script language="Javascript" src="vbcode_language.js"></script>
  45. <style>
  46. #codebuttons input { font-family: verdana, arial, helvetica; font-size: 11px; }
  47. #codebuttons select { font-family: verdana, arial, helvetica; font-size: 11px; }
  48. .smilieTable { border-width: 2px; border-style: outset; }
  49. </style>

  50. <tr id="codebuttons">
  51. <td bgcolor="#DFDFDF" valign="top">vB 代码
  52. <smallfont>
  53. [<a href="misc.php?action=bbcode#buttons" target="_blank">帮助</a>]<br>
  54. <input type="radio" name="mode" value="0" title="普通模式:(alt+n)" accesskey="n"
  55. onclick="setmode(this.value)" onmouseover="stat('norm')" $modechecked[0]> 普通模式
  56. <br>
  57. <input type="radio" name="mode" value="1" title="增强模式:(alt+e)" accesskey="e"
  58. onclick="setmode(this.value)" onmouseover="stat('enha')" $modechecked[1]> 增强模式
  59. </smallfont></td>

  60. <td bgcolor="#DFDFDF">

  61. <table cellpadding="0" cellspacing="0" border="0">
  62. <tr>
  63. <td nowrap><smallfont>

  64. <input type="button" class="bginput" value=" B " onclick="vbcode(this.form,'B','')" onmouseover="stat('b')" title="粗体(alt+b)" accesskey="b"
  65. ><input type="button" class="bginput" value=" I " onclick="vbcode(this.form,'I','')" onmouseover="stat('i')" title="斜体(alt+i)" accesskey="i"
  66. ><input type="button" class="bginput" value=" U " onclick="vbcode(this.form,'U','')" onmouseover="stat('u')" title="下划线(alt+u)" accesskey="u"
  67. >
  68.   

  69. <input type="button" class="bginput" value="网址" title="插入 URL 网址超链接" onclick="namedlink(this.form,'URL')" onmouseover="stat('url')"
  70. ><input type="button" class="bginput" value="电邮" title="插入 Email 地址" onclick="namedlink(this.form,'EMAIL')" onmouseover="stat('email')"
  71. ><input type="button" class="bginput" value="图片" title="插入图片" onclick="vbcode(this.form,'IMG','[URL]http://&acute;[/URL];)" onmouseover="stat('img')">
  72.   

  73. <input type="button" class="bginput" value="Flash" onclick="vbcode(this.form,'swf','')" onmouseover="stat('flash')" title="插入 Flash" accesskey="swf"
  74. ><input type="button" class="bginput" value="iFrame" onclick="vbcode(this.form,'iFrame','')" onmouseover="stat('iframe')" title="插入 iFrame 网页调用" accesskey="iframe"
  75. >
  76. <br>

  77. <input type="button" class="bginput" value="移动" onclick="vbcode(this.form,'Move','')" onmouseover="stat('move')" title="移动...." accesskey="move"
  78. ><input type="button" class="bginput" value="飞行" onclick="vbcode(this.form,'Fly','')" onmouseover="stat('fly')" title="飞行..." accesskey="fly"
  79. ><input type="button" class="bginput" value="阴影" onclick="vbcode(this.form,'Shadow','')" onmouseover="stat('shadow')" title="阴影...." accesskey="shadow"
  80. ><input type="button" class="bginput" value="光晕" onclick="vbcode(this.form,'Glow','')" onmouseover="stat('glow')" title="光晕...." accesskey="glow" >
  81.   

  82. <input type="button" class="bginput" value="代码" title="原始代码" onclick="vbcode(this.form,'CODE','')" onmouseover="stat('code')"
  83. ><input type="button" class="bginput" value="PHP" title="PHP 程序" onclick="vbcode(this.form,'PHP','')" onmouseover="stat('php')"
  84. ><input type="button" class="bginput" value="列表" title="顺序列表" accesskey="l" onclick="dolist(this.form)" onmouseover="stat('list')"
  85. ><input type="button" class="bginput" value="引用" title="插入引用" onclick="vbcode(this.form,'QUOTE','')" onmouseover="stat('quote')"><input type="button" class="bginput" value="隐藏" title="隐藏内容" onclick="vbcode(this.form,'HIDE','')" onmouseover="stat('hide')">

  86. </smallfont></td>
  87. <td nowrap align=right><smallfont>

  88. <input type="button" class="bginput" value=" x " accesskey="c" title="关闭当前标签(alt+c)" onclick="closetag(this.form)" style="color:red; font-weight:bold" onmouseover="stat('closecurrent')"> 关闭当前标签
  89. <br>

  90. <input type="button" class="bginput" value=" x " accesskey="x" title="关闭所有标签(alt+x)" onclick="closeall(this.form)" style="color:red; font-weight:bold" onmouseover="stat('closeall')"> 关闭所有标签

  91. <smallfont></td>
  92. </tr>
  93. <tr>
  94. <td colspan=2><smallfont>

  95. <input type="text" class="bginput" name="status" style="font-size:11px" size="35" value="使用这些控制按钮可以快速插入 vB 代码">
  96.   
  97. <select id="sizeselect" onchange="fontformat(this.form,this.options[this.selectedIndex].value,'SIZE')" onmouseover="stat('size')">
  98. <option value="0">字号</option>
  99. <option value="0">----</option>
  100. $vbcode_sizebits
  101. </select
  102. ><select id="fontselect"
  103. onchange="fontformat(this.form,this.options[this.selectedIndex].value,'FONT')" onmouseover="stat('font')">
  104. <option value="0">字体</option>$vbcode_fontbits</select>
  105.   
  106. <select id="colorselect"
  107. onchange="fontformat(this.form,this.options[this.selectedIndex].value,'COLOR')" onmouseover="stat('color')">
  108. <option value="0">颜色</option>$vbcode_colorbits</select>

  109. </smallfont></td>
  110. </tr>
  111. </table>

  112. </td>
  113. </tr>


  114. 至此新加的 vB Code 及其快捷按钮都已经可以工作了,大功告成了吗?且慢!还差一点点--还要在那个小小帮助窗口里为新的代码加上解释。。。打开你的 vB 目录下的 vbcode_language.js 文件,查找:

  115. // ERROR MESSAGES


  116. 在前面加上:

  117. flash_text = "插入 Flash 文档";
  118. iframe_text = "插入 iFrame 网页调用";
  119. hide_text = "插入隐藏内容,别人需要回复才能看到";
  120. move_text = "使输入的内容产生移动效果";
  121. fly_text = "使输入的内容产生飞行效果";
  122. shadow_text = "使输入的文字产生阴影效果";
  123. glow_text = "使输入的文字产生光晕效果";
复制代码

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-1-10 16:47:21 | 显示全部楼层
请问如何将网页显示出来?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2003-1-11 00:50:52 | 显示全部楼层
最初由 zhynt 发布
[B]请问如何将网页显示出来? [/B]


去看看“个人控制中心”里面的“论坛使用帮助教学”,详细了解下论坛强大功能的用法。

显示网页,你可以用发贴界面的“转贴网站”,把URL地址输入就可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-28 10:20 , Processed in 0.295869 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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