后端视图和Partials
Partials
后端Partials是扩展名为htm的文件,它们位于控制器视图目录中。 部分文件名应以下划线开头:_partial.htm。 可以从后端页面或其他部分呈现部分。 使用控制器的makePartial方法渲染部分。 该方法有两个参数 - 部分名称和可选的变量数组传递给partial。 例:
<?= $this->makePartial('sidebar', ['showHeader' => true]) ?>
提示部分
您可以在后端呈现信息面板,称为提示,用户可以隐藏。 第一个参数应该是唯一键,用于记住提示是否已隐藏。 第二个参数是对局部视图的引用。 除了一些提示属性之外,第三个参数可以是一些传递给partial的额外视图变量。
<?= $this->makeHintPartial('my_hint_key', 'my_hint_partial', ['foo' => 'bar']) ?>
您还可以通过将键值设置为空值来禁用隐藏提示的功能。 此提示将始终显示:
<?= $this->makeHintPartial(null, 'my_hint_partial') ?>
可以使用以下属性:
| 属性 | 描述 |
|---|---|
| type | 设置提示的颜色,支持的类型:危险(danger),信息(info),成功(success),警告(warning)。 默认值:信息(info)。 |
| title | 在提示中添加标题部分。 |
| subtitle | 除标题外,还在标题部分添加第二行。 |
| icon | 除标题外,还会在标题部分添加一个图标。 |
检查提示是否隐藏
如果您正在使用提示,您可能会发现检查用户是否隐藏它们很有用。 这可以使用isBackendHintHidden方法轻松完成。 它需要一个参数,这是您在对makeHintPartial的原始调用中指定的唯一键。 如果提示被隐藏,则该方法将返回true,否则返回false:
<?php if ($this->isBackendHintHidden('my_hint_key')): ?><!-- 隐藏提示时执行某些操作 --><?php endif ?>
布局和子布局
后端布局驻留在插件的可选 layouts/ 目录中。 使用控制器对象的$layout属性设置自定义布局。 它默认为名为default的系统布局。
/*** @var string 用于视图的布局*/public $layout = 'mycustomlayout';
布局还提供了将自定义CSS类附加到BODY标记的选项。 这可以使用控制器的$bodyClass属性设置。
/*** @var string Body CSS类添加到布局中*/public $bodyClass = 'compact-container';
这些正文类可用于默认布局:
- compact-container - 这些正文类可用于默认布局:
- slim-container - 左右不使用填充。
- breadcrumb-flush - 告诉页面面包屑与下面的元素齐平。
带侧边栏的表格
布局也可以与局部相同的方式使用,更像是全局局部。 系统提供了一个名为form-with-sidebar的例子,并演示了一种实现子布局结构的新方法。
在使用此布局样式之前,请确保控制器通过在控制器的操作方法或构造函数中设置它来使用body类compact-container。
$this->bodyClass = 'compact-container';
在使用此布局样式之前,请确保控制器通过在控制器的操作方法或构造函数中设置它来使用body类compact-container。
<!-- 主要内容 --><?php Block::put('form-contents') ?>Main content<?php Block::endPut() ?><!-- 侧边栏 --><?php Block::put('form-sidebar') ?>Side content<?php Block::endPut() ?><!-- 布局 --><?php Block::put('body') ?><?= Form::open(['class'=>'layout stretch']) ?><?= $this->makeLayout('form-with-sidebar') ?><?= Form::close() ?><?php Block::endPut() ?>
通过覆盖每个后端布局使用的body占位符,在最后一节中执行布局。 它用<form />HTML标签包装所有内容,并呈现名为 form-with-sidebar的子布局。 该文件位于modules\backend\layouts\form-with-sidebar.htm中。
