wieni / wmsettings
提供管理自定义设置的编辑器UI和开发者API
0.8.0
2023-09-12 15:22 UTC
Requires
- php: >=7.1
- drupal/core: ^9.2 || ^10.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.0
- wieni/wmcodestyle: ^1.0
This package is auto-updated.
Last update: 2024-09-12 17:42:39 UTC
README
提供管理自定义设置的编辑器UI和开发者API
为什么使用它?
提供编辑器UI和开发者API,用于设置/获取需要分散到各个地方但又不完全属于配置和实体的内容。
它是如何工作的?
技术上,您创建配置键(例如 global
或 site-settings
)。此键直接链接到settings
实体类型中的一个特定包。
开发人员可以自由地在实体类型settings
中创建包/字段,并创建键来引用它们。
添加配置
在/admin/config/wmsettings
上可以添加设置。设置实际上将机器名链接到特定的实体ID。实体将自动创建。
您也可以通过直接编写配置文件来添加配置,我想对那些敢于尝试的人。只需遵循wmsettings.schema.yml即可。
编辑器UI
编辑器的管理界面位于admin/content/wmsettings
。注意
- 编辑设置需要
administer wmsettings content
权限和settings
实体类型的编辑权限 - 编辑器应该只能编辑这些自动创建的实体。不要提供对设置实体创建/删除的直接访问。
开发者API
有多种方式可以访问键的实体。
1. 服务。
$entity = Drupal::service('wmsettings.settings') ->read('my_key');
2. 模块函数。
wmsettings_get('my_key');
3. 填充函数。
返回设置中所有值的快速扁平数组,给定字段名和字段类型。目前支持的字段类型不多。
$variables['copy'] = Drupal::service('wmsettings.settings') ->fill($global_copy, ['field_name' => 'textarea']);
为自定义路由的设置添加选项卡(本地任务)
Drupal至少需要两个任务才能显示它们,所以为了完整性,此示例也加载了两个任务
wmcustom.home_controller_home.home: title: 'View' route_name: wmcustom.home_controller_home base_route: wmcustom.home_controller_home wmcustom.home_controller_home.edit: title: 'Edit' route_name: wmsettings.settings.redirect route_parameters: key: 'homepage' anchor: 'edit-group-hero-image' destination: 'wmcustom.home_controller_home' base_route: wmcustom.home_controller_home
变更日志
本项目的所有显著更改都将记录在CHANGELOG文件中。
安全
如果您发现任何与安全相关的问题,请通过电子邮件security@wieni.be报告,而不是使用问题跟踪器。
许可证
在MIT许可证下分发。有关更多信息,请参阅LICENSE文件。