May14Z-Blog插件:文内关键字替换
May
14
2007-5-14 8:53:59
| 分类:[我的作品] | 引用:0 | 评论:26 | 浏览:
先咒骂一下神舟再说正事儿:可恶的神舟,买了它的本子后大件几乎全换过一遍了,这次主板第二次出问题,又返厂了。
没本儿用了,熟悉的开发环境也没有了,周末在家也就没事儿干了,正好看到Z-Blog论坛上有兄弟要关键字替换的插件和文章投票的插件,周末就写这个吧。
这两个都不算难,原计划一晚上加一天就搞定的,结果一晚上倒是把关键字替换的功能写出来了,但发现只在IE中可以运行,到FireFox中测试发现根本不行,原来是DHTML中的一些属性在FireFox中不支持,没事儿,条条大路通罗马,换个方法就搞定了…… 当搞定FireFox后,发现到IE中又不行了,原来是为了在FireFox中能正常运行加的几个属性在IE中又不支持了#$%^#&#*(
发此反复了N次,最终才搞定,结果发现写代码用了一晚上,为了让IE跟FireFox中都跑通竟然又用了一天一晚上(Test跟Coding的时间比好象有点大-_-!!!)。这让我信心大减,投票的代码也就没心情写了,看哪天再有时间时再说吧。
废话说得有点多了,还是说一下插件吧:
基本实现:
因为论坛上的朋友是要插件,所以要尽量少改源码,另外,我打算写得尽可能与Z-Blog无关,这样一来以后Z-Blog升级时就不需要跟着改,二来把这个插件拿到别的Blog甚至别的CMS系统中直接就可以用,所以我用了独立的数据库+JS脚本来实现,完全不与Z-Blog的数据库发生交互。
另外用JS实现还有个好处,就是设的关键字再多也不会影响到服务器端生成时的速度,而且,新添加了关键词后也不必重建全部文件。这使插件的灵活性大大提高。
还有一个好处:就是写的时候我顺便多实现了一点功能,就是根据节点的类名(ClassName)来替换关键字,这样一来,不止文章内容可以替换,只要是在后台设置了相应的类名页面中的任意部分都可以替换——譬如用户留言等。
当然,有得必有失,降低服务器压力的同时也有缺点需要说明一下:关键字替换因为是通过脚本实现的,所以替换结果只有用户看得到,搜索引擎是看不到的,所以不能靠这个插件来做SEO。(要想让搜索引擎也看到,就只能修改代码,这样一来以上的优势就得全抛弃了)
用法:
没本儿用了,熟悉的开发环境也没有了,周末在家也就没事儿干了,正好看到Z-Blog论坛上有兄弟要关键字替换的插件和文章投票的插件,周末就写这个吧。
这两个都不算难,原计划一晚上加一天就搞定的,结果一晚上倒是把关键字替换的功能写出来了,但发现只在IE中可以运行,到FireFox中测试发现根本不行,原来是DHTML中的一些属性在FireFox中不支持,没事儿,条条大路通罗马,换个方法就搞定了…… 当搞定FireFox后,发现到IE中又不行了,原来是为了在FireFox中能正常运行加的几个属性在IE中又不支持了#$%^#&#*(
发此反复了N次,最终才搞定,结果发现写代码用了一晚上,为了让IE跟FireFox中都跑通竟然又用了一天一晚上(Test跟Coding的时间比好象有点大-_-!!!)。这让我信心大减,投票的代码也就没心情写了,看哪天再有时间时再说吧。
废话说得有点多了,还是说一下插件吧:
基本实现:
因为论坛上的朋友是要插件,所以要尽量少改源码,另外,我打算写得尽可能与Z-Blog无关,这样一来以后Z-Blog升级时就不需要跟着改,二来把这个插件拿到别的Blog甚至别的CMS系统中直接就可以用,所以我用了独立的数据库+JS脚本来实现,完全不与Z-Blog的数据库发生交互。
另外用JS实现还有个好处,就是设的关键字再多也不会影响到服务器端生成时的速度,而且,新添加了关键词后也不必重建全部文件。这使插件的灵活性大大提高。
还有一个好处:就是写的时候我顺便多实现了一点功能,就是根据节点的类名(ClassName)来替换关键字,这样一来,不止文章内容可以替换,只要是在后台设置了相应的类名页面中的任意部分都可以替换——譬如用户留言等。
当然,有得必有失,降低服务器压力的同时也有缺点需要说明一下:关键字替换因为是通过脚本实现的,所以替换结果只有用户看得到,搜索引擎是看不到的,所以不能靠这个插件来做SEO。(要想让搜索引擎也看到,就只能修改代码,这样一来以上的优势就得全抛弃了)
用法:
- 把插件下载后解压缩到Z-Blog的Plugin文件夹中。(插件需要对自己所在的目录有写权限,那些象我一样变态到一个文件夹一个文件夹(甚至是一个文件一个文件)地设权限的朋友得把KeyWords这个文件夹的写权限开了。)
- 把TEMPLATE文件夹中default.html single.html catalog.html search.html页中</body>标签前加上如下一行脚本。
<script language="javascript" type="text/javascript" src="<#ZC_BLOG_HOST#>/PLUGIN/KeyWords/KeyWords.js"></script> - 到后台重建一次文件就可以了。(不用每次加完关键字都重建)
- 对象类名是指要应用关键字替换的区块的类名称,如果想为多个不同的区块替换,可以用半角逗号隔开多个类名。
- 填写时关键字与对应URL不可为空,任一部分为空则此条记录不添加。
- 删除某条记录时只需要清空该条记录中的关键字后提交即可。
- 新窗口为空时窗口打开按所在页的默认值,为"_blank"强制新窗口打开,"_self"强制当前窗口打开,除此之外Target支持的其它值都可手动输入。
- 各条目中不可输入“>'|"<”等特殊符号,如果必需输入,请用相应的全角符号代替。
- 说明中可用“\n”进行换行。
- 替换后的链接类名是"keylink",大家可以在CSS中给这个类定义特殊效果,以区分替换的链接跟普通链接 。
支持下
第3楼
http://bbs.rainbowsoft.org/viewthread.php?tid=13187