在config xml中使用stores节点 - 是否可以操作继承值(即确定网站范围或商店价值的复选框)
因此,例如,一般电话的配置路径是:General>商店信息>电话
所以在xml中我将其定位为:
<stores>
<my_store_code>
<general>
<store_information>
<phone>111 222 333</phone>
</store_information>
</general>
</my_store_code>
</stores>
但是我如何确保在网站上使用此值。该路径似乎是phone_inherit,虽然我无法直接通过xml
进行定位答案 0 :(得分:3)
复选框的状态取决于是否在core_config_data表中设置了值。
你可以在Mage_Adminhtml_Block_System_Config :: initFields()中看到这个: 第295行(Magento 1.7.0.0):
if (isset($this->_configData[$path])) {
$data = $this->_configData[$path];
$inherit = false;
} else {
$data = $this->_configRoot->descend($path);
$inherit = true;
}
_configData
是从core_config_data表加载的路径/值数组。如果设置了路径(在数据库中),它将使用该值并将$ inherit设置为false(未选中);否则,它会在范围配置(_configRoot
)中查找值,并将$ inherit设置为true(已选中)。
范围配置基于您在“当前配置范围”下在管理中设置的内容。因此,如果您选择了商店视图,它会在general/store_information/phone
下查找stores/my_store_code
值。根据您的配置,这可能会返回商店价值,网站价值,默认值或什么都没有;商店值覆盖网站值,网站值覆盖默认值。
这意味着,在配置中,没有办法明确说“从网站继承”。相反,Magento通过在更改“使用网站/默认”复选框的值时添加/删除数据库中的值来模仿这一点。取消选中该框并输入自定义值时,Magento会在core_config_data中添加一行。同样,如果您选择使用“网站/默认”值,Magento将删除该行并查看范围配置。
例如,您可以选中“使用网站”,但如果您在config.xml文件中指定了商店值,Magento将使用商店值。有点混乱,但它是如何工作的。因此,如果您希望商店使用网站价值,则需要删除商店配置xml以获取该值。