複選框的狀態取決於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(選中)。
範圍配置基於您在「當前配置範圍」下在admin中設置的內容。因此,如果您選擇了商店視圖,則會查找stores/my_store_code
下的general/store_information/phone
值。根據您的配置,這可能會返回商店值,網站值,默認值或任何內容;商店值覆蓋網站值,網站值覆蓋默認值。
這意味着,在配置中,沒有辦法明確說「從網站繼承」。相反,當您更改「使用網站/默認」複選框的值時,Magento通過添加/刪除數據庫中的值來模擬此操作。當您取消選中該框並輸入自定義值時,Magento會在core_config_data中添加一行。同樣,如果您選擇使用「網站/默認」值,Magento將刪除該行並查看範圍配置。
例如,您可以選中「使用網站」,但如果在config.xml文件中指定了它,則Magento將使用該存儲值。有點混亂,但這就是它的工作原理。因此,如果您希望商店使用網站價值,則需要爲該值移除商店配置xml。
來源
2012-05-14 16:24:14
Joe