手机微信:13704813968

修改KingCMS 3.0的论坛模型支持内链

晨怡热管 2019/2/26 12:57:05

KingCMS 3.0是一款十分经典的ASP CMS程序。由于KingCMS程序以小巧、高效著称,同时它是对SEO支持得最完美的程序之一。从模板机制的每个细节,都充分考虑到SEO所需要的调用和应用。

KingCMS现在已经全面转向PHP平台了,但是ASP版本仍然有大量的用户群。特别是企业用户,一般企业网站不会有太大的信息量,对于这种企业网站的应用KingCMS绰绰有余。因为KingCMS的SEO口碑不错,很多建站公司首选这款小巧的程序进行建站。同时,笔者也发现不少企业网站用某个系统做了主站,同时在根目录下面新建一个目录,比如blog,然后就架设一个z-blog程序,每天在z-blog更新。因为z-blog是生成纯静态页面的,配置和更新也简单,很受欢迎。

这种更新是有一定的技巧,也有一定的效果,但是不方便。第一、整个企业网站有两个后台;第二、z-blog更新的内容不能调用到主站,也就是首页上面,至少不能立即自动生成。类似z-blog这种结构,KingCMS完全可以构建出来,除了类似z-blog。KingCMS 3.0有一个论坛模型,这个论坛模型支持前台发帖,不用登录网站后台也能发帖,很是方便。

因为是KingCMS集成自带的模型,所以调用之类的非常方便,在论坛发帖,首页即时能生成静态。这些优点当然是非集成系统无法比拟的。优点是很多,但是KingCMS的论坛也有一点缺点,就是论坛的编辑器自动生成的链接是带跳转的,这种设计是合理的,对于论坛公开给所有人使用就是合理的,毕竟可以防止垃圾链接,但是自用就有点多余了。

具体而言,比如在论坛的编辑器增加一个链接:http://www.kingcms.com/,那么论坛的编辑器会自动替换地址的:http://www.abc.com/page/link.asp?url=http://www.kingcms.com/,这样就通过link.asp来跳转到目的地址了。如果想做内链,这样跳转是没有任何作用的,所以我们需要修改一下,让它支持内链,比如内部连接/kingcms.html,如果还是http://www.abc.com/page/link.asp?url=/kingcms.html,无法产生内链/kingcms.html的作用。

以下修改方法CiBill提供。

修改的地方

找到admin/inc/fun.asp,找到第2261行:
I1=I2.replace(I1,"<a href="""&king.inst&king.path&"/link.asp?url=$2"" target=""_blank"">$10</a>")

在后面加上

I2.pattern="([url=)(.+?)]+(.+?)([/url])"
I1=I2.replace(I1,"<a href=""$2"" target=""_blank"">$3</a>")

这两句就是加上了一个判断,如果是内链,就不加link.asp再跳转的,如果是外链,就不变,按照原来的输出。如果区分外链和内链呢?就是有人为加上http和不加http的就行了。

责任编辑: banye 参与评论