Webサイトスコープの構成値を取得する


21

特定のWebサイトの構成値を取得するにはどうすればよいですか?

ありますMage::getStoreConfig()が、はありませんMage::getWebsiteConfig()

編集

私はウェブサイトレベルで構成データをエクスポートしています-どういうわけか私はウェブサイトのスコープ設定が欲しい...

回答:


16

通常、これを行うことは想定されていません。 Mage::getStoreConfig()は、フィールドの構成に応じて、ストア値、ウェブサイト値、グローバル値、またはデフォルト値を自動的に返します。

ただし、ストア値を無視してWebサイト値を取得する必要がある場合は、次の方法で実行できます。

Mage::app()->getWebsite()->getConfig('.../.../...')

1
websiteIdを追加することを忘れないでください。すなわち<br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
エドゥアルド

8

設定はストアレベルに継承され、通常getStoreConfig()はWebサイトの設定が考慮されるため、これはまれなケースです。

使用できますMage_Core_Model_Website::getConfig()が、Mage_Core_Model_Store::getConfig()一部の処理が行われている場所(の置換など{{...}})にわずかな違いがあることに注意してください-この種の置換はWebサイトレベルでは行われません。

値をWebサイトレベルでのみ変更できる場合、別のオプションは、Webサイトのランダムストアを取得してからを使用することgetStoreConfig()です。


6

これは、既知の場合、特定のWebサイトコードを使用して導出できます。

$value = Mage::getConfig()->getNode('websites/[website_code]/section/group/field');
var_dump($value[0]);

これは正解としてマークする必要があります。WebサイトからWebサイトMage::app()->getWebsites()およびコードを取得できます$website->getCode()
Michael

良いもの@ベンチマーク。私は同意します、これは正しい答えとしてマークされるべきです。ウェブサイトごとに設定値を取得することは一般的ではないことは知っていますが、場合によっては..たとえば、cronジョブタスクでウェブサイトごとに製品のエクスポートを実行するときにこれを行う必要がありました。
エドゥアルド

2

私は間違っているかもしれませんが、覚えている限りでは、構成スコープは常にストアにバインドされています。Webサイトレベルで値を設定した場合、ストアレベルで別の値を設定しない限り、そのWebサイトのすべてのストアで使用できます。

WebサイトAがあり、ストアA1とA2がそのWebサイトのストアであるとします。Aが特定のプロパティに対して値5を持っていると仮定します

次にMage::getStoreConfig()、A1とA2の両方について、そのプロパティに対して5を返します。プロパティをA1に3に設定すると、A1に3を Mage::getStoreConfig()返し、そのプロパティにA2に5を返します。


あなたは完全に正しい-しかし:私はウェブサイトレベルで設定データをエクスポートしています-だからどういうわけか私はウェブサイトのスコープ設定が欲しい...私はこれが非常にまれなケースであることを知っています。
アレックス

@アレックスあなたもおそらくあなたの質問でそれを言及する必要があります;)
mpaepper
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.