字段标签在循环内部渲染数据字段,形态共有三种:基础字段、带格式参数的字段与三元条件字段。与之配套的参数映射、排序白名单、时间格式与文字属性四组对照表,是模板编写时查询频率最高的速查内容。
基础字段写作方括号加前缀加字段名,输出当前行的原始值;格式参数写在字段名之后,用于时间格式化与文本截取;三元条件用问号与冒号分隔真值与假值,假值可以省略,省略时条件不成立输出空字符串。三种形态可以组合,例如时间字段先加格式再做三元判断。
每个字段前缀都对应一种循环标签:内容前缀用于内容列表与相关内容,栏目前缀用于栏目列表,导航前缀用于导航列表与子分类,数据前缀用于数据列表,SQL 前缀用于 SQL标签。前缀与循环不匹配时字段不会被替换,这是排查字段不生效问题的第一检查项。
| 前缀 | 配合循环 | 示例字段 |
|---|---|---|
| 内容 | 内容列表 | [内容:标题] |
| 栏目 | 栏目列表 | [栏目:名称] |
| 导航与导航子分类 | 导航列表 | [导航子分类:名称] |
| 数据 | 数据列表 | [数据:值] |
循环标签的参数支持中英文双语,映射关系集中于四组:通用参数、分页参数、面包屑参数与页面分类参数。中英文混合的参数名(如父级编号与分类编号的混合命名)同样被解析层支持,参数名不区分大小写。
这四组对照在实际使用中很少需要全部记住:模板作者通常从示例开始改写,遇到不认识的参数时再回查对照表。把中英文两种写法视为等价形式,团队内部再统一一种风格,可以显著降低维护时的阅读成本。
排序字段使用白名单机制防止注入:内容列表的排列方式只允许编号、发布时间、更新时间与各类计数以及随机,标签列表只允许标签表真实存在的字段。非法值不会导致报错,而是回退为默认排序,仅顺序发生变化,页面渲染不受影响。
字段截取作用于纯文本结果,标题截取不会破坏标签结构;摘要截取同样按字符数计算,中文与英文字符按同一口径统计。列表页对标题长度有硬性要求时,优先用截取参数而不是让前端用样式裁剪,输出层的长度控制更可靠。
格式参数与三元条件可以叠加使用:先按格式输出再判断真假,或者先判断再格式化,两种顺序在语义上有细微差别,按模板的实际意图选择即可。不确定效果时在页面临时输出一次中间结果,比反复推测更快。
时间格式分为预设与自定义两类,预设值涵盖日期、日期时间、中文日期等常用形态,自定义格式沿用 PHP 风格的格式字符。优先级为字段级高于列表级高于默认值,三层配置各管一段,互不冲突。
文字属性用于按置顶、推荐与精选过滤内容,支持数字与中文两种写法并可以逗号组合,多个属性之间按或的关系匹配。属性过滤与列表排序叠加可以组成常见首页版块:顶部公告位取置顶内容,侧栏精选取推荐内容,底部推荐条取精选内容。
参数映射把双语的参数名与白名单字段集中在一处,查询与对照都可以在一页内完成,写模板前过一遍这几张表就能避开绝大多数参数错误。
评论
加载中...