论坛默认签名,试试名人名言

技术与开发

浏览论坛,同时还可以学到名人名言,这可能吗?如果你问阿雷,他一定会告诉你:能。最近他就给自己的论坛设计了一个名人名言插件,论坛会员无签名时就自动且随机显示名人名言。想知道这个功能是怎么设计的吗?

40-f12-1-1.jpg

我们要制作名人名言插件(插件下载地址:http://www.shudoo.com/bzsoft,本文以Discuz!6.1论坛为例),先要设计名人名言数组,所有的名人名言全部来自数组。然后设计随机函数,随机抽取数组中的任意一条名人名言,最后把名人名言显示在签名区中即可。根据相似原理,我们还可以制作论坛的一些广告或者日常英语的一些小短句。

第一步 设计名人名言数组

我们先要设计一个数组,用来装收集到的名人名言,并给这些名人名言设置颜色,例如红色。新建一个记事本,另存为mingyan.js文件,在文件中输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

tips[0] = '〈font color="#ff0000"〉春蚕到死丝方尽,人至期颐亦不休。一息尚存须努力,留作青年好范畴。 —— 吴玉章〈/font〉'; /*第一条名人名言,可自行修改,下同*/

tips[1] = '〈font color="#ff0000"〉但愿每次回忆,对生活都不感到负疚。 —— 郭小川〈/font〉';

tips[2] = '〈font color="#ff0000"〉人的一生可能燃烧也可能腐朽,我不能腐朽,我愿意燃烧起来! —— 奥斯特洛夫斯基〈/font〉';

tips[3] = '〈font color="#ff0000"〉你若要喜爱你自己的价值,你就得给世界创造价值。 —— 歌德〈/font〉';

tips[4] = '〈font color="#ff0000"〉社会犹如一条船,每个人都要有掌舵的准备。 —— 易卜生〈/font〉';

tips[5] = '〈font color="#ff0000"〉人生不是一种享乐,而是一桩十分沉重的工作。 —— 列夫·托尔斯泰〈/font〉';

tips[6] = '〈font color="#ff0000"〉人生的价值,并不是用时间,而是用深度去衡量的。 —— 列夫·托尔斯泰〈/font〉';

tips[7] = '〈font color="#ff0000"〉生活只有在平淡无味的人看来才是空虚而平淡无味的。 —— 车尔尼雪夫斯基〈/font〉';

tips[8] = '〈font color="#ff0000"〉一个人的价值,应该看他贡献什么,而不应当看他取得什么。 —— 爱因斯坦〈/font〉';

tips[9] = '〈font color="#ff0000"〉人只有献身于社会,才能找出那短暂而有风险的生命的意义。 —— 爱因斯坦

tips[10] = '〈font color="#ff0000"〉芸芸众生,孰不爱生?爱生之极,进而爱群。 —— 秋瑾〈/font〉';

tips[11] = '〈font color="#ff0000"〉生活真象这杯浓酒,不经三番五次的提炼,就不会这样可口! —— 郭小川〈/font〉';

tips[12] = '〈font color="#ff0000"〉充满着欢乐与斗争精神的人们,永远带着欢乐,欢迎雷霆与阳光。 —— 赫胥黎〈/font〉';

tips[13] = '〈font color="#ff0000"〉人生应该如蜡烛一样,从顶燃到底,一直都是光明的。 —— 萧楚女〈/font〉';

tips[14] = '〈font color="#ff0000"〉人生的价值,即以其人对于当代所做的工作为尺度。 —— 徐玮〈/font〉';

tips[15] = '〈font color="#ff0000"〉路是脚踏出来的,历史是人写出来的。人的每一步行动都在书写自己的历史。 —— 吉鸿昌〈/font〉';

tips[16] = '〈font color="#ff0000"〉为了生活中努力发挥自己的作用,热爱人生吧。 —— 罗丹〈/font〉';

tips[17] = '〈font color="#ff0000"〉希望是附丽于存在的,有存在,便有希望,有希望,便是光明。 —— 鲁迅〈/font〉';

tips[18] = '〈font color="#ff0000"〉沉沉的黑夜都是白天的前奏。 —— 郭小川〈/font〉';

tips[19] = '〈font color="#ff0000"〉当一个人用工作去迎接光明,光明很快就会来照耀着他。 —— 冯学峰〈/font〉';

tips[20] = '〈font color="#ff0000"〉冬天已经到来,春天还会远吗? —— 雪莱〈/font〉';

index = Math.floor(Math.random() * tips.length);

document.write(tips[index]);

最后,将mingyan.js上传至论坛根目录下,以便调用。

小知识:math是Javascript内置对象,math.random()产生0至1之间的随机数,math.floor()返回值为小于或等于其数值参数的最大整数值。例如index = math.floor(Math.random())表示生成随机数index。

第二步 会员无签名就显示名人名言

如果会员有签名了,我们就不管;如果会员无签名,就自动随机显示我们提供的名人名言。用记事本打开Discuz!论坛中的/templates/default/viewthread.htm文件,修改代码中签名代码,增加一段没有签名的判断:

〈!——{if $post['signature'] && !$post['anonymous'] && $showsignatures}——〉

〈div class="signatures" style="maxHeightIE: {$maxsigrows}px;"〉

$post[signature]

〈/div〉

〈!——{/if}——〉

将上面部分替换为如下代码:

〈!——{if $showsignatures}——〉

〈!——{if $post['signature']}——〉

〈div class="signatures" style="maxHeightIE: {MAXSIGROWS}px;"〉

$post[signature] /*显示会员签名*/

〈/div〉

〈!——{else}——〉

〈div class="signatures" style="maxHeightIE: {MAXSIGROWS}px;"〉

〈script type="text/javascript" src='mingyan.js'〉〈/script〉/*调用名言js文件*/

〈/div〉

〈!——{/if}——〉

〈!——{/if}——〉

第三步 将签名显示出来

以管理员的身份登录后台,找到“界面与显示”中“贴子内容页”里的“是否显示作者签名”,打开会员签名即可。

40-f12-1-2.jpg

编后

本文的名人名言插件只是抛砖引玉,还有许多功能需要完善,比如当名人名言较多时最好利用数据库来存取,这样访问速度会更快。另外还可以利用相同方法制作英语小贴士之类的插件。