basilicom/multi-domain-bundle

此包为Pimcore提供多域名功能。

安装: 5

依赖: 0

建议者: 0

安全性: 0

星标: 9

关注者: 2

分支: 1

开放问题: 0

类型:pimcore-bundle

dev-master 2020-11-25 16:11 UTC

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

安装

  1. 使用composer安装此包 composer require basilicom/multi-domain-bundle dev-master
  2. 执行 bin/console pimcore:bundle:enable BasilicomMultiDomainBundle

配置

  • 将名为 domain 的字段添加到类中,以启用多域名功能。这可以是任何字段类型,其get()方法解析为字符串。通常选择选择字段。
  • 将类配置为使用Basilicom\MultiDomainBundle\Model\DataObject作为“父PHP类”。

示例: alt text

使用

通常使用对象和变体(变体层次结构)。将变体作为子项添加到对象或变体中,并将 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()

示例

给定以下对象/变体设置

alt text

对象和/或变体设置如下

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

对于各种域选择,您将获得以下数据

限制

  • 使用风险自负,建议进行大量测试!
  • 需要更多清理