owl/hasmany

此包已被废弃且不再维护。未建议替代包。

多对一/从属关系子表单。

dev-master / 1.0.x-dev 2015-04-09 16:09 UTC

This package is auto-updated.

Last update: 2021-09-27 11:45:17 UTC


README

OctoberCMS 提供的 has-many/belongs-to 弹出小部件。

Packagist

安装

要安装 Hasmany 小部件,请在您的插件 composer.json 文件中添加以下内容。

"require": {
    "owl/hasmany": "~1.0@dev"
}

接下来,在您的 Plugin.php 文件中注册该小部件。

public function registerFormWidgets()
{
    return [
        'Owl\FormWidgets\HasMany\Widget' => [
            'label' => 'Hasmany',
            'code'  => 'owl-hasmany'
        ],
    ];
}

用法

首先,您需要有一对通过 has-many / belongs-to 关系关联的模型。从那里开始,在父模型的 fields.yaml 文件中使用关系名称作为字段名称,并使用 owl-hasmany 作为类型。

relationship:
    type: owl-hasmany

接下来,您需要定义默认参数或自定义部分。默认参数将创建一个非常类似于 Sitemap 插件 UI 的列表。您可以在这些字段中使用基本 twig 标记,变量名称将引用模型属性。icon 选项应是一个有效的 Font-Autumn 图标类,或 false

relationship:
    type: owl-hasmany
    default:
        icon: icon-file-o
        label: "{{ name }}"
        comment: "{{ description }}"

要自定义小部件外观,您还可以定义自定义部分而不是默认部分。

relationship:
    type: owl-hasmany
    partial: @/plugins/author/plugin/models/relationship/_partial.htm

有一些额外的参数可用于自定义小部件外观。定义一个 sortColumn 启用拖放重新排序。此值应引用模型的 "排序" 列名称。定义一个 formHeader 将更改弹出窗口的默认标题。定义一个 addLabeladdIcon 将自定义添加按钮的外观。

当弹出窗口打开或关闭时,将触发 JavaScript 事件。监听这些事件在您希望根据表单值显示/隐藏字段时非常有用。

$(document).bind("owl.hasmany.opened", function(e, data) {
    // popup was opened
});
$(document).bind("owl.hasmany.closed", function(e, data) {
    // popup was closed
});

data 数组将包含 3 个键。 data.alias 指的是小部件别名,data.item 指的是弹出窗口对应的 li 元素,而 data.form 引用了弹出窗口表单元素。