复选框的状态取决于是否在 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(未选中);否则,它会在范围 config ( ) 中查找值_configRoot
并将 $inherit 设置为 true(选中)。
范围配置基于您在“当前配置范围”下的管理员中设置的内容。因此,如果您选择了商店视图,它将general/store_information/phone
在stores/my_store_code
. 根据您的配置,这可能会返回商店值、网站值、默认值或什么都不返回;商店值覆盖网站值,网站值覆盖默认值。
这意味着,在配置中,没有办法明确地说“从网站继承”。相反,当您更改“使用网站/默认”复选框的值时,Magento 通过添加/删除数据库中的值来模仿这一点。当您取消选中该框并输入自定义值时,Magento 会在 core_config_data 中添加一行。同样,如果您选择使用“网站/默认”值,Magento 将删除该行并查看范围配置。
例如,您可以选中“使用网站”,但如果您在 config.xml 文件中指定了存储值,Magento 将使用它。有点混乱,但这就是它的工作原理。因此,如果您希望您的商店使用网站值,则需要删除该值的商店配置 xml。