当前位置: 代码迷 >> 综合 >> October cms-Backend (后端-views-partials)
  详细解决方案

October cms-Backend (后端-views-partials)

热度:5   发布时间:2023-12-06 17:39:04.0

文章目录

  • 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中。

  相关解决方案