文章目录
- views & partials
-
- Partials and hints
-
- Hint partials
- 检查hint是否被隐藏
- 布局与子布局
-
- Form with sidebar
views & partials
Partials and hints
后端partials是在控制器的views目录中的扩展名为htm的文件。
partials文件名应以下划线开头:_partial.htm。
partials可以从一个后端page或者另一个partials中渲染出来
用controller的makePartial方法渲染
该方法具有两个参数-partials名称和要传递给部分的变量的可选数组。
例:
<?= $this->makePartial('sidebar', ['showHeader' => true]) ?>
Hint partials
你可以渲染出一个用户可以隐藏的后端信息面板 我们叫做提示hints
为了记住提示是否已隐藏,第一个参数应该是唯一键。
第二个参数是对partial视图的引用。
除了某些提示属性外,第三个参数可以是一些传递给partial视图的额外视图变量。
<?= $this->makeHintPartial('my_hint_key', 'my_hint_partial', ['foo' => 'bar']) ?>
您还可以通过将键值设置为空值来禁用隐藏提示的功能。此提示将始终显示:
<?= $this->makeHintPartial(null, 'my_hint_partial') ?>
可以使用以下属性:
属性 | 描述 |
---|---|
type | 设置提示hint的颜色,支持的类型:danger, info, success, warning. 默认值:info。 |
title | 在提示中添加标题部分。 |
subtitle | 除了标题,在标题部分添加第二行 |
icon | 除标题外,还向标题栏添加图标 |
检查hint是否被隐藏
用isBackendHintHidden方法
它只有一个参数,这是您在对makeHintPartial的原始调用中指定的唯一键。
如果隐藏了提示,则该方法将返回true,否则返回false:
<?php if ($this->isBackendHintHidden('my_hint_key')): ?><!-- Do something when the hint is hidden -->
<?php endif ?>
布局与子布局
后端布局位于插件的可选layouts /目录中。使用控制器对象的$ layout属性设置自定义布局。默认为default。
/*** @var string Layout to use for the view.*/
public $layout = 'mycustomlayout';
布局还提供了将自定义CSS类附加到BODY标签的选项。可以使用控制器的$ bodyClass属性设置。
/*** @var string Body CSS class to add to the layout.*/
public $bodyClass = 'compact-container';
这些body类可用于默认布局:
- compact-container - 紧凑布局 所有侧面无padding
- slim-container - 窄布局 左右侧无padding
- breadcrumb-flush - 告诉页面面包屑与下面的元素齐平放置。
Form with sidebar
布局也可以与partials相同地使用,其作用类似于全局partials。
系统提供了一个称为“带边栏的表单(form-with-sidebar)”的示例,并演示了一种实现子布局结构的新颖方法。
在使用此布局样式之前,请通过在controller的action方法或构造函数中对其进行设置,确保您的controller使用body class:compact-container。
$this->bodyClass = 'compact-container';
此布局使用两个占位符,一个主要内容区域称为form-contents,另一个免费边栏称为form-sidebar。这是一个例子
<!-- Primary content -->
<?php Block::put('form-contents') ?>Main content
<?php Block::endPut() ?><!-- Complimentary sidebar -->
<?php Block::put('form-sidebar') ?>Side content
<?php Block::endPut() ?><!-- Layout execution -->
<?php Block::put('body') ?><?= Form::open(['class'=>'layout stretch']) ?><?= $this->makeLayout('form-with-sidebar') ?><?= Form::close() ?>
<?php Block::endPut() ?>
通过执行最后一节的布局,覆盖body占位符,这被应用于每一个后端布局
它使用 HTML标签包装所有内容,并呈现称为form-with-sidebar的子布局。
该文件位于modules\backend\layouts\form-with-sidebar.htm中。