Magentoのは、構成オブジェクトのツリー構造から直接実行時にその設定値を読み取り、あなたが値を変更する構成オブジェクトのネイティブsetNode
メソッドを使用する必要があります。しかし、方法Magento loads in scoped configuration(自己リンク)のために、それはそれほどまっすぐではないようです。
現在のバージョンのMagentoでは、現在のstore
のノードの設定値を設定する必要があります。
ステップ1で現在設定されているストアのコードが取得されています。その後、次
$store = Mage::app()->getStore();
$code = $store->getCode();
でプログラムでこれを行うには、次の呼び出し
$config = Mage::getConfig();
$config->setNode("stores/$code/web/unsecure/base_skin_url", 'value_to_set');
で設定値を設定することができ、すべてのMagentoの設定をブートストラップしている後に発生する必要があり、この点に注意してくださいすることができますオブジェクト。 Magentoにはロードされた設定がありますが、ストアオブジェクトはロードされないことに注意してください。この場合、ストアオブジェクトからストアコードをロードすることはできません。
私はPulse Storm Chaos moduleで同様のことをしました。作業コードに興味があればGithubにあります。
素敵な説明をありがとうアラン!私はこれが店舗ごとの設定でうまくいくことは理解できますが、すべての店舗(およびウェブサイト)にカスタム設定オプションを使用させたい場合はどうすればいいでしょうか?本質的に、私は自分のカスタム設定オプションをグローバルにしたいと思っています。 –
@ChuckDショートバージョン:システム内の各ストアに複数のコールを追加する必要があります。 Magentoがstores/store_codeノードを作成すると、デフォルト値とウェブサイトの値が考慮されます。こうすることで、getStoreConfigメソッドは常にstore/store_codeを調べて適切な値を見つけることができます。 –
チャック、 '$ config-> setNode(" global/web/unsecure/base_skin_url "、 'value_to_set');'を試してみましたか?ただのアイデア、未テスト。 – Jongosi