チェックボックスの状態は、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テーブルからロードされたパス/値の配列です。パスが(データベースで)設定されている場合、パスは値を使用し、$ internalをfalse(チェックされていない)に設定します。それ以外の場合は、スコープconfig()で値を検索し、_configRoot
$ internalをtrue(チェック済み)に設定します。
スコープ構成は、「現在の構成スコープ」で管理者に設定したものに基づいています。したがって、ストアビューを選択している場合は、のgeneral/store_information/phone
下の値を検索しますstores/my_store_code
。構成によっては、ストア値、Webサイト値、デフォルト値、または何も返さない場合があります。ストア値はWebサイト値をオーバーライドし、Webサイト値はデフォルト値をオーバーライドします。
これは、構成では、「Webサイトから継承する」と明示的に言う方法がないことを意味します。代わりに、Magentoは、[ウェブサイト/デフォルトを使用]チェックボックスの値を変更したときにデータベースに値を追加/削除することでこれを模倣します。チェックボックスをオフにしてカスタム値を入力すると、Magentoはcore_config_dataに行を追加します。同様に、「website / default」値を使用することを選択した場合、Magentoは行を削除し、スコープ構成を調べます。
たとえば、「ウェブサイトを使用する」をオンにすることができますが、config.xmlファイルで指定されている場合、Magentoはストア値を使用します。少し紛らわしいですが、それがどのように機能するかです。したがって、ストアでWebサイトの値を使用する場合は、その値のストア構成xmlを削除する必要があります。