东方星雨

简单网络

一个爱好网络的80后男站长。

关注我东方星雨个人微信号:476847113

您现在的位置是:首页 > 站长日志

帝国CMS使用附加SQL条件灵动标签调用栏目导航

2018-07-13 站长 站长日志

   首页先列出灵动标签的变量说明(出自官方说明文档):
    $bqr: 调用对应的字段内容,表示方法为$bqr[字段名],如标题字段$bqr[title]等;
    $bqsr:调用特殊字段变量,$bqsr[titleurl]:标题链接;$bqsr[classname]:栏目名称;$bqsr[classurl]:栏目链接。
    $bqno:调用序号。
    $public_r[newsurl]:调用网站地址 。
    这里我们是主要用到$bqr和$bqsr 这两个变量。
    OK进入本次正题。最近是在建立一个叫工业紧固件方面的产品专题,当建立栏目的模板使用“页面内容式”(且另绑定了二级域名)如下图:
<a href=http://www.zongk.com/ target=_blank class=infotextkey>帝国CMS</a>使用附加SQL条件灵动标签调用栏目导航
    这里使用《循环栏目导航标签 (listshowclass)》与《带模板的栏目导航标签(showclasstemp)》,这两个标签无论怎么调都是调用不起来新建的这几个栏目导航,而且栏目也是设置了导航显示的,标签的写法也是反复验证确保没有出现错误,但是不论怎么样检查就是发现不了问题所在,索性就不再这里浪费时间了直接使用SQL条件来调用。好吧,这里就说下SQL调用的思路:
    首页我们应该先找到存放栏目信息数据表,这里我们查看帝国CMS数据字典,如下图:
帝国CMS使用附加SQL条件灵动标签调用栏目导航
    这里我们可以看到我们改表中每个字段的解释,OK,现在在打开我们网站后台的该数据表查使用PHPmyadmin看表内具体数据(一般虚拟机或者云主机都有)如下图:
帝国CMS使用附加SQL条件灵动标签调用栏目导航
    我是另外设置的二级域名所以在“classurl”字段有新设的URL路径,所以我们直接可以调用栏目路径:$bqsr[classname];
    然后我们再看“classid”与"bclassid"这两个变量,“bclassid” 是父栏目的ID,"classid"是当前栏目的id,这里由于是要作为栏目导航,所以我想父栏目和其子栏目是一起调用的。
    所以在写SQL条件判断时应该是:classid = '182' or bclassid = '182 ' 这样判断意思就是"classid"值是182时调用或者,bclassid值是182时调用信息,这样就保证了主栏目和其下面的子栏目都可以一起调用:
    所以最终的灵动标签的完整语句为:
    <ul>
    [e:loop={"select * from dongluo_enewsclass where classid like '%182%' or bclassid like '%182%'",10,24,0}]
    <li><a href="<?=$bqsr[classurl]?>" target="_blank" title="<?=$bqr[classname]?>"><?=$bqr[classname]?></a></li>
    [/e:loop]
    </ul>
    这里MYSQL查询判断符号"=" 和"like" 可以自己百度判断一下,一个是可以理解绝对等于,一个是模糊匹配(注意%,个人是这样理解), 还是就是注意MYSQL中建立帝国CMS数据表前缀统一的问题

文章评论