sergiosgc / negotiated-output-components
一组用于与协商输出模板系统一起使用的HTML组件
dev-master
2023-10-26 17:18 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-09-19 02:57:13 UTC
README
一组用于与协商输出模板系统一起使用的HTML组件
list.table
list.table将行值数组转换为表格。示例输出
示例代码
\sergiosgc\output\Negotiated::$singleton->template('/_/sergiosgc/list.table/',
[ 'list' => [
'class' => 'service-list',
'columns' => [
'name' => [
'label' => _('Service'),
],
'action' => [
'label' => _('Actions'),
'links' => [
[
'href' => '/service/%<id>',
'label' => _('View')
],
[
'href' => '/service/edit/%<id>',
'label' => _('Edit')
],
[
'href' => '/service/%<id>?x-verb=DELETE',
'class' => 'delete',
'label' => _('Delete')
]
]
]
],
'rows' => $services
]]);
参数指定
list.table将对模板变量list
进行操作。此变量是一个关联数组,包含以下条目
- class(可选) 结果表格的HTML类
- columns 属性的关联数组。每个属性在表格中产生一列。每个属性是以下之一
- 值属性。键与
list/rows/*
中的键匹配,值是一个包含可选label
条目的关联数组。 - 链接集属性。键无关紧要。内容是一个包含可选
label
和必填的links
关联数组的关联数组。links
数组中的每个条目包含- href 一个格式化字符串,将被馈入
\sergiosgc\sprintf
,与当前的list/rows
数组一起使用,以生成链接href。您可以按照\sergiosgc\sprintf
文档中的说明使用命名转换说明符。 - label 链接标签
- class(可选) 链接类
- href 一个格式化字符串,将被馈入
- 值属性。键与
- rows 一个包含值关联数组(或\ArrayAccess实例)的常规数组。您必须包括在
list/columns
中定义的值属性值。您可以包含额外的值,即用于生成链接的转换说明符的消耗。
html.element
html.element生成通用HTML。
示例代码
\sergiosgc\output\Negotiated::$singleton->template('/_/sergiosgc/html.element/',
['html.element' => [
'element' => 'div',
'@class' => 'buttons',
'children' => [
[
'element' => 'a',
'@href' => '/reconfigure/
'@class' => 'button',
'children' => [
[
'text' => _('Reconfigure')
]
]
],
[
'element' => 'a',
'@href' => '/launch/
'@class' => 'button primary',
'children' => [
[
'text' => _('Launch')
]
]
]
]
]]);
参数指定
html.element将对名为html.element
的模板变量进行操作。此变量包含HTML节点(元素、HTML源或文本节点)的定义。
对于文本节点,定义一个text
条目,其中包含文本。
对于原始HTML,定义一个raw
条目,其中包含源代码。
对于元素条目,定义
- 一个
element
条目,其中包含元素的标签名称。 - 一组可选的属性条目,每个条目以属性名称前缀
@
命名。 - 一个可选的
children
条目。如果定义,它应该是一个包含关联数组的数组,其中每个关联数组是按照此参数指定中定义的HTML元素。
menu.ul
menu.ul将菜单定义转换为递归无序列表定义的菜单,适用于生成主菜单
示例代码
\sergiosgc\output\Negotiated::$singleton->template('/_/sergiosgc/menu.ul/', [
'menu' => [ 'items' => [
[
'href' => '/',
'active' => true,
'label' => _('Home')
],
[
'href' => '/hosts/',
'label' => _('Hosts'),
'submenu' => [
[
'href' => '/host/new/',
'label' => _('New')
]
]
],
[
'href' => '/host-groups/',
'label' => _('Host Groups'),
'submenu' => [
[
'href' => '/host-group/new/',
'label' => _('New')
]
]
],
[
'href' => '/services/',
'label' => _('Services'),
'submenu' => [
[
'href' => '/service/new/',
'label' => _('New')
]
]
],
]
]);
参数指定
menu.ul将对模板变量menu
进行操作。这是一个关联数组,其中有一个items
条目定义了菜单。
items
条目是一个菜单条目数组。每个菜单条目都是一个包含强制性的label
和可选的关联数组。
- href 应应用于标签的链接
- active 菜单条目是否为活动状态
- submenu 子菜单定义,作为菜单条目的数组
paginator
paginator生成分页器,类似于这个
示例代码
\sergiosgc\output\Negotiated::$singleton->template('/_/sergiosgc/paginator/',
[ 'paginator' => [
'page' => $currentPage,
'pageCount' => $pageCount,
'visible' => 3,
'queryArgumentsWhitelist' => [ 'q' ]
]]);
参数指定
paginator将对paginator
模板变量进行操作。此变量是一个包含以下必填参数的关联数组
- page 当前页面
- pageCount 总页数
此外,还可以定义以下可选参数
- class 分页器的HTML类。默认为
paginator
。 - visible 可见的页数。默认为3。
- linkHref 生成页面链接的
\sergiosgc\sprintf
转换说明符。转换说明符可以引用page
以表示链接的页面,以及定义在分页器模板变量中的任何变量。默认为%<page> - linkLabel
\sergiosgc\sprintf
转换说明符,用于生成页面链接标签。转换说明符可以引用page
表示链接页面,以及分页模板变量中定义的任何变量。默认为 %<page> - startLinkLabel 第1页链接的标签。默认为
|<
。 - endLinkLabel 最后一页链接的标签。默认为
>|
。 - skipUpLinkLabel 跳过 可见 页面向上的链接标签。默认为
>>
。 - skipDownLinkLabel 跳过 可见 页面向下的链接标签。默认为
<<
。 - preserveQueryArguments 链接是否应包含查询参数?True/False,默认为 false。
- queryArgumentsWhitelist 如果 preserveQueryArguments 为 false,则仍然将此数组中的查询参数追加到生成的链接中。默认为空数组。
- queryArgumentsBlacklist 如果 preserveQueryArguments 为 true,则仍然跳过将此数组中的查询参数追加到生成的链接中。默认为空数组。
propertylist.table
propertylist.table 将属性关联数组 [ 'property' => $value ]
转换为包含每行一个属性和每行两个列(标签和值)的表格。示例输出
示例代码
\sergiosgc\output\Negotiated::$singleton->template('/_/sergiosgc/propertylist.table/',
[ 'property-list' => [
'class' => 'hostgroup-view',
'properties' => [
'name' => [ 'label' => _('Name') ],
'parent' => [ 'label' => _('Parent') ],
'action' => [
'label' => _('Actions'),
'links' => [
[
'href' => '/host-group/edit/%<id>',
'label' => _('Edit')
],
[
'href' => '/host-group/%<id>?x-verb=DELETE',
'class' => 'delete',
'label' => _('Delete')
]
]
]
],
'value' => $hostGroup
]]);
参数指定
propertylist.table 将作用于模板变量 property-list
。该变量是包含以下条目的关联数组
- class(可选) 结果表格的HTML类
- properties 属性关联数组。每个属性在表中产生一行。每个属性是以下之一
- 值属性。键匹配
property-list/value
中的键,值是一个包含可选的label
条目的关联数组。 - 链接集属性。键无关紧要。内容是一个包含可选
label
和必填的links
关联数组的关联数组。links
数组中的每个条目包含- href 一个格式字符串,将与其
property-list/value
数组一起传递到\sergiosgc\sprintf
中,用于生成链接 href。您可以按照\sergiosgc\sprintf
文档使用命名转换说明符。 - label 链接标签
- class(可选) 链接类
- href 一个格式字符串,将与其
- 值属性。键匹配
- value 值的关联数组(或 \ArrayAccess 实例)。您必须为在
property-list/properties
中定义的值属性包含值。您可以包含额外的值,即用于生成链接时转换说明符的消耗。