1

我想创建我的自定义模块多商店兼容。我想根据配置范围从我的自定义数据库表中获取值。在将值添加到数据库表时,我已经指定了 scope_id 和范围,就像 Magento 在 core_config_data 表中所做的那样。现在我如何根据前端选定的网站从表中获取那些插入的值。

我有以下数据库值片段。

ID 值 scope_id 范围

1 测试 0 默认
2 测试 1 4 商店
3 测试 12 5 网站

有人可以帮我吗?谢谢

4

1 回答 1

2

为自己的需要重用 Magento 的配置加载并不容易。

您想要的是从默认 -> 网站 -> 商店(如果没有在那里覆盖)继承您的值。

Magento 将数据库配置转换为内部 XML 表示,Mage_Core_Model_Resource_Config::loadToXml并在其中执行合并和继承逻辑。

继承逻辑都在loadToXml()函数中 - 因此,如果您想采用相同的方法并为每个商店范围构建您的值,您可以实现类似的东西。

如果您只需要获取特定范围的一个值,则只需读取该商店的数据库行,如果在该商店所在的网站上找不到,如果没有找到默认值。

于 2013-03-18T13:07:36.457 回答