basilicom / multi-domain-bundle
此包为Pimcore提供多域名功能。
dev-master
2020-11-25 16:11 UTC
Requires
- pimcore/pimcore: >=6.0 <7.0
This package is auto-updated.
Last update: 2024-08-26 00:40:17 UTC
README
为Pimcore对象添加处理多维度域名特定属性的功能。
从技术层面来看,它允许对象变体有多个父级以实现继承。这是通过动态重写变体继承父级查找,并注入特定的域变体兄弟来实现。
域选择的顺序决定了域变体的优先级。
此外,变体可以作为子项拥有域变体,这些变体可以覆盖常规变体中已指定的字段值(见下面的演示数据,“Amazon”域变体为“Size S”)。
此包包含一个AdminStyle扩展,用于将变体图标更改为“思维导图”图标,并在悬停时提供特殊快捷提示。
术语表
- 域变体 - 一个对象变体,其中
domain
字段不为空 - 域兄弟 - 与常规变体对象相邻的域变体,提供特定于域的值继承回退
- 域子项 - 作为常规变体对象子项的域变体,覆盖 常规变体值
提示:如果Pimcore调试模式已启用,则记录大量消息!
许可证
GPLv3 - see: gpl-3.0.txt
需求
- Pimcore >= 6.0.0
安装
- 使用composer安装此包
composer require basilicom/multi-domain-bundle dev-master
。 - 执行
bin/console pimcore:bundle:enable BasilicomMultiDomainBundle
配置
- 将名为
domain
的字段添加到类中,以启用多域名功能。这可以是任何字段类型,其get()方法解析为字符串。通常选择选择字段。 - 将类配置为使用Basilicom\MultiDomainBundle\Model\DataObject作为“父PHP类”。
使用
通常使用对象和变体(变体层次结构)。将变体作为子项添加到对象或变体中,并将 domain
字段设置为某个值(非空),以配置特定于域的变体。
获取特定于域的对象值,但事先选择任意数量的域
use Basilicom\MultiDomainBundle\Service\Domain; $object = \Pimcore\Model\DataObject\AbstractObject::getByPath('/my-object'); // select two domain contexts, first to contain a value override wins! Domain::select(['Country US', 'Marketplace eBay']); $fieldValue = $object->getMyFieldName(); // reset selected domain; normal pimcore behaviour: Domain::clear();
如果您检索了一个对象并想知道它是否是域变体,只需使用: $myObject->isDomainVariant()
示例
给定以下对象/变体设置
对象和/或变体设置如下
对于各种域选择,您将获得以下数据
限制
- 使用风险自负,建议进行大量测试!
- 需要更多清理