再谈科讯CMS{$IF 条件}标签无效的解决办法-让模板支持IF标签

  好久没有更新博客了,今天更新一篇文章!

  最近突然想起来用科讯加载另外一个页面做淘宝客的思想。文章系统中不想再增加标签了,于是就用一个不常用的作者来做判断,根据这个关键词加载淘宝相关产品,这个方法用于那些自身流量比较高的站,做好了效果还是很不错的!废话不多说,直奔主题。在使用过程中,发现当我在模板页面使用

标签的时候如:  {$IF ("{$GetArticleAuthor}"="")}{我是正确的内容 佚名}{不成立执行d}{/$IF}。模板解析出来的结果就变成了【"="")}{我是正确的内容 佚名}{不成立执行d}{/$IF}】很是奇怪,以为我的$IF标签使用错误了,在论坛上搜索了半天,发现很多朋友都有这样的问题,算了还是自己来找具体原因吧!

  第一反应时IF标签函数可能有问题了,于是找到函数“Function ParseIF(sTemplate)”并没有发现问题,用最笨的办法继续查找,想看看解析前是什么样子,于是查找模板解析的地方,发现文件 ks_cls/Kesion.Label.CommonCls.asp 搜索标签的时候就出现了问题 public Sub Scan(ByVal sTemplate) 此Scan 将{$IF ("{$GetArticleAuthor}算做一个了 导致IF标签无法实现,包括最基本的 {$GetArticleAuthor}都没能解析而直接忽略了。查看源文件 ks_cls/Kesion.StaticCls.asp 发现很大的问题,居然没有见到调用的ParseIF的地方,于是果断修改文件:

在代码(大概位置在285行;)

前面增加一句即为:

最后在 (大概在263行)

FileContent = .KSLabelReplaceAll(FileContent)
End With中间插入两句,最终结果为:

这样就是最终的结果了,在文章模板页面可以正常使用科讯的{$IF}标签了,不过这样还是有弊端的,朋友们可以继续研究,也希望官方能尽快解决这个低端的问题。

不知道是不是免费版的原因,代码里面好多无用的代码,要不就是有前句没后句的代码,重复的执行某些命令等!不知道商业版本是不是就没有这样的问题了呢?真是穷人伤不起啊!

参与评论