チェックボックスの状態は、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は「ウェブサイト/デフォルト」値を使用することを選択した場合、行を削除してスコープの設定を調べます。
たとえば、「ウェブサイトを使用する」チェックボックスをオンにすることはできますが、Magentoはconfig.xmlファイルで指定されている場合はストア値を使用します。ちょっと混乱しますが、それがうまくいく方法です。したがって、ストアでWebサイトの値を使用する場合は、その値のストア構成XMLを削除する必要があります。
出典
2012-05-14 16:24:14
Joe