Z-Blog插件:文内关键字替换
先咒骂一下神舟再说正事儿:可恶的神舟,买了它的本子后大件几乎全换过一遍了,这次主板第二次出问题,又返厂了。
没本儿用了,熟悉的开发环境也没有了,周末在家也就没事儿干了,正好看到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中给这个类定义特殊效果,以区分替换的链接跟普通链接 。
下载地址: KeyWords.rar
支持下
第3楼
http://bbs.rainbowsoft.org/viewthread.php?tid=13187
可以实现,但是IE有错误提示
没有gravatar头像的页面提示是 参数无效。 具体链接:http://www.likk.com/blog/post/979.html
有gravatar的页面提示是….为空或不是对象 具体链接:http://www.likk.com/blog/post/976.html
看过你的代码了,似乎不是关键字替换脚本有问题,报错的行数是第182行,而关键字替换的这个脚本一共才57行
另外 http://www.likk.com/blog/post/980.html 这个页面中所有"教育"也都替换了, 如果是替换脚本有问题的话, 出错后就停了, 不可能全部替换的.
估计是跟其它某个脚本(例如为链接显示图标的脚本)有冲突, 如果可能的话上下调整一下各个脚本的先后顺序也许能行
后来发现是和 Referer 的代码冲突了。调换顺序也不行,删除Referer就没事了。
谢谢兔子的提醒。。
还是不行,提示说和 var intMaxLen="1000";冲突
我全部都是按步骤来的,为什么我的页面没有显示关键字呢?
至少留个Blog的地址,我才能过去看看是什么地方出了问题呀.
很好 非常好
我也是啊,跟着来也不行
超级支持,希望能够再加以改进,使搜索引擎也能看得到.
支持一下!
有所收获,谢谢!
我的对象类名是就是默认的post-body,为什么添加关键字以后,在模板里也加上了<script>代码。但是就是不起作用。请高手指点
我的BLOG地址:
http://www.nier2414.cn/z-blog17/post/xuanze-seo-gongsi.html
用上了,谢谢
为什么不能只替换一个关键字啊,把替换参数"igm"删掉,页面就会变得超慢。
我的意思是说只替换一个“插件”,毕竟满屏幕的的链接也不好看
不错!
博主,我安了这个插件了,后台看了后,就害怕了,这个插件倒是挺好的,但是一旦页面里出现多个字的话,那他们就全被加上链接了呢,能不能做成设置每个文章里单个关键词出现的次数,如果不能设置也希望能设置成出现一次,这样比较保险!不知道博客能不能解决这个问题的?解决了给个请回复我这个评论,我会经常来你这看你的答复的!
插件
1.8不能用了,有没有新版的啊
怎么写权限啊??我不会,教教可以么?谢谢
怎么写权限啊??我不会,教教可以么?谢谢
http://www.shilianren.org.cn
我是新手,怎么加MSN?谢谢帮忙
我在我的博客里面加了这个插件,然后怎么弄?
您一定要帮帮我啊,谢谢了
请问你有QQ么?如果有,请加我好么?243707383
小兔子,我实在不会弄,要不这样吧,你能不能直接在我网站上改?是需要进入后台么?我可以告诉你密码,我头都大了…麻烦你了~~
这个必须顶。。。。