迅睿 CMS 插件与模板的交互:控制器如何把数据传给视图
写了插件、改了模板,但页面上的数据没变?多数时候是数据传递的环节没接上。标准的传递方式// 控制器 public function index() { $data = [ 'list' => $list,
以下是带有「模板开发」标签的全部文章
写了插件、改了模板,但页面上的数据没变?多数时候是数据传递的环节没接上。标准的传递方式// 控制器 public function index() { $data = [ 'list' => $list,
迅睿的模板语法接近原生 PHP,但又有自己的约束,写惯了 PHP 的人反而容易出错。基本 if{if $status == 1} 已发布 {else if $status == 2}
“我明明改了模板,前台还是旧的”,在迅睿里这个问题排查顺序是有讲究的。四层缓存可能都在起作用层位置清理方式模板编译缓存cache/template/后台清缓存数据查询缓存cache/data/重建内容缓存浏览器缓存本地强刷 Ctrl+F5C
头部、底部、侧栏这些每页都有的部分,迅睿给了几种复用方式,选错会让后期改版非常痛苦。方式一:模板包含标签{template "header"} ... {template "footer"}最简单直接。缺点是包含的模板不继承父级变量,需要显
迅睿的分页标签有好几种,用错会得到“数据有但页码不出来”或者“页码有但数据重复”的结果。一、列表页分页{$pages}最常用。它会自动读取当前页和每页条数,输出完整的分页 HTML。前提是控制器里已经配置了 pagesize,没配置页数永远
后台建好了字段,前台调不出来,是迅睿新手最常卡住的一步。问题多半在字段名和调用方式上。字段名不是显示名后台建字段时,“字段名称”是中文显示名,“字段别名”才是模板里用的名字。比如显示“副标题”,别名 subtitle,模板里写的是 {$su
搜索页看着简单,出问题的地方特别多。 基本结构。 search.php 里,$zbp->search 拿当前搜索词,$zbp->GetArticleList 那个搜索,或者更常见的是直接遍历 $articles。参数里的 'search
导航看着简单,是最容易出兼容问题的地方。 数据从哪来。 $zbp->modules 里 FileName 为 navbar 的那个模块,GetList() 拿到的是一串现成的 。 但多数主题不用这个。为什么?因为拿到的是一整串
评论模板是主题里最容易被忽略的。多数人抄一份 comment.php,能用就不再看了。真改起来,坑不少。 先搞清数据层。 评论不是一次全取回来的。$article->Comments 只含一级(或已展开的部分),回复靠 $comment
很多人改主题卡在侧栏。模板里写着 {foreach $sidebar as $module},但不知道这个 $sidebar 从哪来、里面装了什么。 它是 $zbp->modules 按 SidebarID 筛出来的 Module 数组。