科讯SQL栏目样式上正在访问的栏目(高亮显示)区别与别的栏目显示

2013-04-11 浏览:1284
科讯SQL栏目样式上正在访问的栏目(高亮显示)区别与别的栏目显示
评论:(0)复制地址

在使用科讯CMS的时候,发现一个让人很头疼的问题,那就是如何去实现当前访问的栏目和其他的栏目不一样,比如有四个栏目:西安网站建设西安网站制作西安网站优化西安SOE,我现在访问的是西安网站优化,那么西安网站优化栏目就要和其他几个栏目的显示方式不一样,怎么实现呢,现在我就把方法分享给大家:

如果你的网站是动态输出的话,可以结合{ReqNum(ID)}来取得当前栏目ID

sql语句:

select ClassID,ID,FolderName from KS_Class where tj=1 order by folderorder

循环体:

[loop=10]
{$IF({ReqNum(ID)}={$Field(ClassID,GetInfoUrl,100,2)}||<li class="curr">{$Field(FolderName,Text,0,...,0,)}</li>||<LI>{$Field(FolderName,Text,0,...,0,)}</li>)}
[/loop]

原理就是判断url传递的ID是不是等于循环体的当前栏目ID

如果是启用生成静态的话,循环体改用以下即可

[loop=10]
{$IF(Fcls.RefreshFolderID={$Field(ID,GetInfoUrl,100,2)}||<li class="curr">{$Field(FolderName,Text,0,...,0,)}</li>||<LI>{$Field(FolderName,Text,0,...,0,)}</li>)}
[/loop]

以上动态及静态方式均测试通过.

百翔网络网站建设提醒您注意几点区别:{$Field(ID,GetInfoUrl,100,2)}   记住这里是ID哦,不是CLASSID,两种方法这里一个用的是ID,一个是CLASSID.

另外补充一点,关于科讯SQL标签IF语句的使用方法:

{$IF(condition||out1||out2)}

标签说明:当满足 condition 条件,输出out1,否则输出 out2,类似c,c#等语言里的三元运算符a?b:c,需要注意的时每个条件对都必须包含两个||
condition可以是任何支持asp的条件运行符(如=,〉,〈,〉=,〈=,〈〉等)和函数(如datediff,isdate,isarray等)


注意点说明:

1.如我们希望字段intro(varchar类型)为空时,输出"---",不为空时,原文输出.

正确写法1:
          "{$Field(intro,Text,0,...,0,空)}"="空"
   正确写法2:
          "{$Field(intro,Text,0,...,0,)}"=""

   错误写法1:
         {$Field(intro,Text,0,...,0,空)}="空"
   错误写法2:
      {$Field(intro,Text,0,...,0,)}="空"

关键在于上面加色的双引号是必须的,不能少
比如intro字段为 "kesioncms",那么我们可以将上面理解为:
正确写法1:
          "kesioncms"="空"
   正确写法2:
          "kesioncms"=""

   错误写法1:
         kesioncms="空"
   错误写法2:
       kesioncms="空"
这样就可以清楚看出,1,2种是正确写法,后面的都是错误的,少了双引号
再比如intro字段为空时,即没有内容.那么我们可以将上面理解为:

正确写法1:
          "空"="空"
   正确写法2:
          ""=""

   错误写法1:
         空="空"
   错误写法2:
       ="空"


2.如我们希望最最近三天内发布的文章,输出new标签,日期字段为AddDate(datetime类型).
正确:datediff("d","2009-3-10",now)<3     ---符合asp语法
错误:datediff("d",2009-3-10,now)<3        ---不符合asp语法

评论:(0)复制地址
发布:苗景云 | 分类:IT技术&设计 | Tags:科讯 CMS

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。