新手的困惑——一个栏目两个名称?
中元节放假来临,在做网站后台时,却遇到要调用双语导航的问题,让我困惑了好一阵。就是在首页导航中出现一个栏目标题后面还有一个隐藏的英文名称的情况:也即静态时网页上只显示一个中文标题,鼠标移过时又会出现一个英文名称,如下图所示:
这种中英双语的栏目导航很是好看,给人一种高大上的感觉,适合于一些外贸或外资企业网站。那它是怎样做到的?
新手析疑——导航同一栏目有两名称的原因。
上面一个栏目出现的两个名称其实一个就是栏目名称,而另一个则是栏目别名,就是在后台新增栏目时添加上去的。
而标题别名隐藏的动作实现比较简单,在CSS上设置定义一个鼠标动作类a:hover{···}就可以了。但回到我们最初的问题,我们要怎样同时调用这种双语的栏目标题?
高手指导——帝国cms后台一招搞掂调用双语栏目标题的办法。
第一步,先说说对于一个只有一个标题的栏目导航的情况,如下图所示。
一般格式用灵动标签变量代替原来变量就可以,其函数代码如下:
[e:loop={'select classid,classname,classpath,bname from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder',0,24,0}]/" _href="/">[/e:loop]
这样导出的结果就是只有一个栏目名称的情况。
第二步,说说对于要同时调用栏目名称和栏目别名的情况,如下图源代码:
直接用上面的函数就不能处理了,但其实调用原理是一样的,关键问题在于要用代码识别这两个栏目名称。
1.栏目名称用:classname 表示;
2.栏目别名用:bname表示。
这样标识后台就能识别了,再同样使用一个上面的调用函数调整一下就可以调用了。
第三步,代入灵动函数变量及控调用条件,调用代码如下:
[e:loop={'select classid,classname,classpath,bname from [!db.pre!]enewsclass where classid in(1,2,3,4,5,6,7) and showclass=0 order by myorder',0,24,0}]/" _href="/">/" _href="/">[/e:loop]
其中:classid in(1,2,3,4,5,6,7)表示分别调用栏目ID号为1至7的栏目名称。
第四步,用写好的函数替换到首页导航源代码的中对应的部分。代码替换结果如下:
第五步,保存代码,然后刷新首页,既可以查看到首页双语栏目导航正常被调用出来了。
看!就是一招搞掂了双语导航的调用,厉害了吧。
本文完。(十分感谢王晰师傅的技术指导,助我解开疑惑!)