Отримайте значення налаштування для веб-сайту


21

Як я можу отримати значення конфігурації для певного веб-сайту?

Є, Mage::getStoreConfig()але немає Mage::getWebsiteConfig().

редагувати :

Я експортую дані конфігурації на рівні веб-сайту - тому я якось хочу налаштувати область веб-сайту ...

Відповіді:


16

Зазвичай вам цього не слід робити. Mage::getStoreConfig()автоматично поверне значення магазину, значення веб-сайту, глобальне значення або значення за замовчуванням залежно від конфігурації поля.

Однак якщо вам дійсно потрібно ігнорувати вартість магазину та отримати значення веб-сайту, ви можете зробити це так:

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

1
Не забудьте додати веб-сайтId. тобто <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Едуардо

8

Це рідкісний випадок, оскільки налаштування успадковуються для зберігання рівня та зазвичай getStoreConfig()враховують налаштування веб-сайту.

Ви можете використовувати Mage_Core_Model_Website::getConfig()- але майте на увазі, що є незначна різниця в тому, Mage_Core_Model_Store::getConfig()де також проводиться деяка обробка (наприклад, підміна {{...}}) - такий вид заміни не робиться на рівні веб-сайту.

Якщо значення можна змінити лише на рівні веб-сайту, іншим варіантом було б отримати лише якийсь випадковий магазин веб-сайту, а потім використовувати getStoreConfig().


6

Це можна отримати за допомогою конкретного коду веб-сайту, якщо він відомий.

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

Це слід позначити як правильну відповідь. Ви можете отримати веб-сайти Mage::app()->getWebsites()та код з веб-сайту:$website->getCode()
Майкл

Хороший матеріал @benmarks. Я згоден, це слід позначити як правильну відповідь. Я знаю, що не часто отримувати значення конфігурації веб-сайтом, але в деяких випадках це .. наприклад, мені потрібно було це зробити під час запуску експорту продуктів на веб-сайті у завданні cron.
Едуардо

2

Я можу помилятися, але, наскільки я пам’ятаю, область конфігурації завжди прив’язана до магазинів. Якщо ви встановите значення на рівні веб-сайту, воно буде доступне в будь-якому магазині цього веб-сайту, якщо ви не встановите інше значення на рівні магазину.

Скажімо, у вас є веб-сайт A, а магазини A1 і A2 - це магазини для цього веб-сайту. Припустимо, що A має значення 5 для даної властивості

Тоді Mage::getStoreConfig()поверне 5 для цього властивості як для A1, так і для A2. Якщо ви встановите для властивості 3 для A1, то Mage::getStoreConfig()повернете 3 для A1 та 5 для A2 для цього властивості.


Ви абсолютно праві - але: я експортую дані конфігурації на рівні веб-сайту - тож я якось хочу налаштувати область веб-сайту ... Я знаю, що це досить рідкісний випадок.
Олексій

@Alex Ви, напевно, повинні також згадати це у своєму запитанні;)
mpaepper
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.