sebaks/view

该软件包最新版本(0.1.2)没有可用的许可证信息。

0.1.2 2016-12-05 13:56 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:09:23 UTC


README

ZF2 模块。通过配置构建模板。用于重复使用模板块和代码的解决方案。

简介

在我们看来,视图包含3个部分

  • 布局(为多个URI设置的一般视图样式)
  • 内容(单页模板 - 用于显示一个URI)
  • 块(视图的一些功能部分 - 一个URI可以有多个块)

每个 包含

'admin-show-list' => [
  'extend' => 'admin-list',
  'layout' => 'admin-layout',
  'template' => 't4web-admin/content/list',
  'viewModel' => 'Shows\Action\Admin\Show\CreateAction\ListViewModel',
  'childrenDynamicLists' => [/*...*/],
  'data' => [/*...*/],
  'children' => [/*...*/],
],

如果存在键 extend - 不需要其他键,将继承自父视图。每个键将与父视图合并。您可以一次描述一些块并在任何地方重复使用它们。

块选项

  • extend - 描述父视图,所有配置键将继承并与当前配置合并

  • layout - 定义页面布局名称,它只对 contents 有意义,不对 blocks 有意义(因为 layout 可以影响整个路由\URI)

  • template - 当前块的模板名称

  • viewModel - 当前块的特定 ViewModel(它可以隐藏当前块的复杂视图逻辑)

  • childrenDynamicLists -

  • data - 视图中的变量数组。 data 可以是 data['static']data['fromGlobal']

    • data['static'] - 静态变量,例如标签、图标、一些文本等。
    • data['fromGlobal'] - 可由控制器获取的动态数据。
  • children - 描述子块,这些子块以块的形式描述,并可以像模板中的属性一样访问

    <div class="box">
        <div class="box-body no-padding">
            <?= $this->table ?>
        </div>
        <div class="box-footer">
            <?= $this->paginator ?>
        </div>
    </div>

    在这种情况下,tablepaginator 将被渲染为子块。

配置必须在键 sebaks-view 中。

contents 中的每个键 - 路由名称。

配置示例

在您的 module.config.php 中某处

'sebaks-view' => [
    'layouts' => [
        'admin' => [
            'template' => 'layout/admin',
            'children' => [
                'top-panel' => 't4web-admin-top-panel',
                'sidebar-menu' => 't4web-admin-sidebar-menu',
            ],
        ]
    ],
    'contents' => [
        'admin-user-list' => [  // you project must contain route name admin-user-list
            'template' => 't4web-admin/index/index',
            'layout' => 'admin',
            'children' => [
                'filter' => 't4web-admin-list-filter',
                'table' => 't4web-admin-list-table',
                'paginator' => 't4web-admin-list-paginator',
            ],
            'variables' => [
                'title' => 'List of users',
            ],
        ]
    ],
    'blocks' => [
        't4web-admin-top-panel' => [
            'template' => 't4web-admin/top-panel',
        ],
        't4web-admin-sidebar-menu' => [
            'template' => 't4web-admin/sidebar-menu',
        ],
        't4web-admin-list-filter' => [
            'template' => 't4web-admin/list-filter',
        ],
        't4web-admin-list-table' => [
            'template' => 't4web-admin/list-table',
            'children' => [
                'table-head' => 't4web-admin-list-table-head',
                'table-row' => 't4web-admin-list-table-row',
            ],
        ],
        't4web-admin-list-table-head' => [
            'template' => 't4web-admin/list-table-head',
        ],
        't4web-admin-list-table-row' => [
            'template' => 't4web-admin/list-table-row',
        ],
        't4web-admin-list-paginator' => [
            'template' => 't4web-paginator/paginator',
        ],
    ],
],