Uzyskaj wartość konfiguracji dla zakresu witryny


21

Jak mogę uzyskać wartość konfiguracji dla konkretnej witryny?

Jest Mage::getStoreConfig()ale nie Mage::getWebsiteConfig().

edycja :

Eksportuję dane konfiguracyjne na poziomie witryny - więc w jakiś sposób chcę ustawienia zakresu witryny ...

Odpowiedzi:


16

Zwykle nie powinieneś tego robić. Mage::getStoreConfig()automatycznie zwróci wartość sklepu, wartość strony internetowej, wartość globalną lub wartość domyślną w zależności od konfiguracji pola.

Jeśli jednak naprawdę chcesz zignorować wartość sklepu i uzyskać wartość strony internetowej, możesz to zrobić w ten sposób:

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

1
Nie zapomnij dodać strony internetowej. tj. <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Eduardo,

8

Jest to rzadki przypadek, ponieważ ustawienia są dziedziczone do poziomu sklepu i zwykle getStoreConfig()uwzględniają ustawienia witryny.

Możesz użyć Mage_Core_Model_Website::getConfig()- ale pamiętaj, że istnieje niewielka różnica w tym, Mage_Core_Model_Store::getConfig()gdzie odbywa się również przetwarzanie (na przykład podstawienie {{...}}) - ten rodzaj podstawienia nie jest wykonywany na poziomie witryny.

Jeśli wartość można zmienić tylko na poziomie witryny, inną opcją byłoby uzyskanie tylko losowego sklepu na stronie, a następnie użycie getStoreConfig().


6

Można to uzyskać za pomocą określonego kodu witryny, jeśli jest znany.

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

To powinno być oznaczone jako poprawna odpowiedź. Możesz pobrać strony internetowe Mage::app()->getWebsites()i kod ze strony:$website->getCode()
Michael,

Dobre rzeczy @benmarks. Zgadzam się, należy to zaznaczyć jako właściwą odpowiedź. Wiem, że uzyskiwanie wartości konfiguracji przez witrynę internetową nie jest powszechne, ale w niektórych przypadkach jest to… na przykład musiałem to zrobić, uruchamiając eksport produktów według strony internetowej w zadaniu zadania cron.
Eduardo,

2

Mogę się mylić, ale o ile pamiętam, zakres konfiguracji jest zawsze związany ze sklepami. Jeśli ustawisz wartość na poziomie witryny, będzie ona dostępna w dowolnym sklepie tej witryny, chyba że ustawisz inną wartość na poziomie sklepu.

Załóżmy, że masz witrynę A, a sklep A1 i A2 to sklepy tej witryny. Załóżmy, że A ma wartość 5 dla danej właściwości

Następnie Mage::getStoreConfig()zwróci 5 dla tej właściwości zarówno dla A1, jak i A2. Jeśli ustawisz właściwość na 3 dla A1, wówczas Mage::getStoreConfig()zwróci 3 dla A1 i 5 dla A2 dla tej właściwości.


Masz całkowitą rację - ale: eksportuję dane konfiguracyjne na poziomie witryny - więc jakoś chcę ustawienia zakresu witryny ... Wiem, że to dość rzadki przypadek.
Alex

@Alex Prawdopodobnie powinieneś również wspomnieć o tym w swoim pytaniu;)
mpaepper
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.