basilicom/pimcore-advanced-custom-layout-bundle

配置和创建自定义布局,无需拖放。

v0.4.0 2023-10-11 09:42 UTC

This package is auto-updated.

Last update: 2024-09-17 14:42:36 UTC


README

配置和创建自定义布局,无需拖放。

用例

有时您可能需要为多个数据对象创建多个自定义布局。另外,您希望只调整一个字段,而其余字段保持不变。当前的Pimcore实现使得在ClassDefinition更改时,必须调整所有自定义布局。因此,我们创建了此插件。

在这里,您可以简单地调整字段的可见性和可编辑性,而无需再次拖放。

主要功能

  • 保存ClassDefinition也将重新创建自定义布局
  • 决定您是想显示所有字段并仅调整指定的字段,还是只想显示指定的字段
  • 定义角色和工作流状态,这些状态将自动应用自定义布局

注意:此插件将创建自定义布局,但会根据默认类的布局定义和调整字段属性。隐藏所有字段仍将保留布局元素。

安装

composer require basilicom/pimcore-advanced-custom-layout-bundle --dev

添加新的配置文件 config/packages/custom_layouts.yaml。示例配置可在 config/packages/example.custom_layouts.yaml 中找到。

配置

advanced_custom_layout:
    Pimcore\Model\DataObject\TestObject:
        # layouts
        custom_layout:
            label: "My custom layout"
            mode: !php/const Basilicom\AdvancedCustomLayoutBundle\Model\CustomLayoutConfig::MODE_EDIT
            auto_apply_roles: []
            auto_apply_workflow_states: []
            fields:
                title:
                    title: "Overwritten Titel"
                    editable: false
                    visible: false
            layoutElements:
                Data Quality:
                    title: "Overwritten Titel"
                    visible: false
  • Pimcore\Model\DataObject\TestObject: 是您要配置自定义布局的对象的类名。
  • custom_layout 是自定义布局的标识符。您可以为一个类定义多个自定义布局。
  • label 是自定义布局的标签,它将在对象编辑模式中显示。
  • mode 是自定义布局的模式。更多信息请见下文。
  • auto_apply_roles 是将自动应用此自定义布局的角色数组。
  • auto_apply_workflow_states 是将自动应用此自定义布局的工作流状态数组。
  • fields 是用于此自定义布局的字段数组。
  • fields.title 是字段的名称。
  • fields.title.title 是字段在对象编辑模式中显示的新标签。
  • fields.title.editable 是一个布尔值,用于定义字段是否可编辑。
  • fields.title.visible 是一个布尔值,用于定义字段是否可见。
  • layoutElements.Data Quality 将应用于所有名称为 Data Quality 的布局元素。
  • layoutElements.Data Quality.title 覆盖布局元素的可见标签。
  • layoutElements.Data Quality.visible 确定布局元素是否可见/添加到自定义布局中

自定义布局模式

编辑模式

具有此设置的自定义布局将包含布局定义中的所有字段。提供的设置将覆盖默认设置。

advanced_custom_layout:
    Pimcore\Model\DataObject\TestObject:
        # layouts
        custom_layout:
            label: "My custom layout"
            mode: !php/const Basilicom\AdvancedCustomLayoutBundle\Model\CustomLayoutConfig::MODE_EDIT
            fields:
                title:
                    title: "Overwritten Titel"
                    editable: false
                    visible: false

在此示例中,我们将保留所有布局和字段定义,但覆盖标题,锁定并隐藏字段。

显示模式

具有此设置的自定义布局将隐藏未在配置中定义的所有字段。此外,提供的设置将覆盖有关可编辑性和可见性的默认设置。

advanced_custom_layout:
    Pimcore\Model\DataObject\TestObject:
        # layouts
        custom_layout:
            label: "My custom layout"
            mode: !php/const Basilicom\AdvancedCustomLayoutBundle\Model\CustomLayoutConfig::MODE_SHOW
            fields:
                title:
                    title: "Overwritten Titel"
                    editable: false

在此示例中,我们将仅显示不可编辑的标题属性。

利用

更新自定义布局

要更新自定义布局,您必须运行以下命令

bin/console basilicom:custom-layouts:load

用于文档目的

在某些情况下,您可能想要为每个布局生成所有字段设置的概览。为了做到这一点,您可以运行以下命令:

bin/console basilicom:custom-layouts:create-excel

文件将创建在 project/var/bundles/AdvancedCustomLayouts/CustomLayouts.xlsx

待办事项

  • 新模式,用于扩展现有的自定义布局,这在用户事先创建了自定义布局时非常有用。
    • 允许通过引用设置布局引用以创建新的自定义布局,这可以轻松创建多个自定义布局。
  • ObjectBricks尚不支持。
  • 添加自定义逻辑,也允许字段集合使用自定义布局。
  • 一旦所有子字段都隐藏,立即隐藏布局元素。

作者

亚历山大·海德里希