迅睿的 module 标签,catid 传错就白屏一片

· 迅睿CMS · 阅读 5
摘要

第一次用迅睿写列表,我在首页模板里敲了 {module module=news catid=3 num=8},前台什么都没有。不是报错,是空白,也不提示。 先确认 module 和 catid 是不是同一个模块 迅睿的 module 参数写

第一次用迅睿写列表,我在首页模板里敲了 {module module=news catid=3 num=8},前台什么都没有。不是报错,是空白,也不提示。

先确认 module 和 catid 是不是同一个模块

迅睿的 module 参数写的是模块目录名,不是分类名。而 catid 只在同一个模块内部有效。我那次的问题就是:module 写的是 news,catid 填的却是指向另一个模块的分类 ID,结果一条都查不到。

这个设计挺反直觉的——标签不报错,静默返回空。模板又不会告诉你。

能跑通的最小写法

{module module=news catid=3 num=8 order=updatetime}
  <a href="{$t.url}">{$t.title}</a>
{/module}

里面 $t 就是循环里的每一条,title、url、updatetime 都是自带的。自定义字段也直接挂在上面,字段名是什么就写什么,{$t.seo_title} 这种。

如果这篇带了缩略图,{$t.thumb} 有值,没传就是空字符串。要判断就自己外面套一层。

调试时先让它输出 ID

怀疑查不到数据的时候,我习惯先在外面打一行 {$t.id}。有 ID 出来,说明循环是通的,问题在字段名或者 HTML 结构;一个 ID 都没有,就是 module 或 catid 传错了。

模板文件放在 template/pc/默认皮肤/home/ 下面,改完记得清一下后台的模板缓存,不然你看到的是上一版。

至于 order 支持哪些值,官方文档里列了几个,我常用的就是 updatetime 和 id,别的没逐个试过。