Получить значение конфигурации для области сайта

21

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

Есть, Mage::getStoreConfig()но нет Mage::getWebsiteConfig().

редактировать :

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

Alex
источник

Ответы:

16

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

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

Mage::app()->getWebsite()->getConfig('.../.../...')
Андерс Тирсгаард Расмуссен
источник
1
Не забудьте добавить идентификатор сайта. т.е. <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Эдуардо,
8

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

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

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

Alex
источник
6

Это может быть получено с использованием определенного кода сайта, если он известен.

$value = Mage::getConfig()->getNode('websites/[website_code]/section/group/field');
var_dump($value[0]);
benmarks
источник
Это должно быть помечено как правильный ответ. Вы можете получить сайты 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 для этого свойства.

mpaepper
источник
Вы совершенно правы - но: я экспортирую данные конфигурации на уровне веб-сайта - так что я каким-то образом хочу настроить область видимости веб-сайта ... Я знаю, что это довольно редкий случай.
Алекс
@Alex Вероятно, вы также должны упомянуть об этом в своем вопросе;)
mpaepper