Obter valor de configuração para o escopo do site

21

Como posso obter um valor de configuração para um site específico?

Existe Mage::getStoreConfig()mas não Mage::getWebsiteConfig().

editar :

Estou exportando dados de configuração no nível do site - então, de alguma forma, quero a configuração do escopo do site ...

Alex
fonte

Respostas:

16

Normalmente, você não deve fazer isso. Mage::getStoreConfig()retornará automaticamente o valor da loja, o valor do site, o valor global ou o valor padrão, dependendo da configuração do campo.

No entanto, se você realmente precisar desconsiderar o valor da loja e obter o valor do site, poderá fazer o seguinte:

Mage::app()->getWebsite()->getConfig('.../.../...')
Anders Thirsgaard Rasmussen
fonte
1
Não se esqueça de adicionar o websiteId. ou seja <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Eduardo
8

Esse é um caso raro, pois as configurações são herdadas para o nível da loja e geralmente getStoreConfig()levam em consideração as configurações do site.

Você pode usar Mage_Core_Model_Website::getConfig()- mas esteja ciente de que há uma pequena diferença para Mage_Core_Model_Store::getConfig()onde também está sendo feito algum processamento (por exemplo, substituição de {{...}}) - esse tipo de substituição não é feito no nível do site.

Se o valor puder ser alterado apenas no nível do site, outra opção seria obter apenas uma loja aleatória do site e usá-lo getStoreConfig().

Alex
fonte
6

Isso pode ser obtido usando o código específico do site, se conhecido.

$value = Mage::getConfig()->getNode('websites/[website_code]/section/group/field');
var_dump($value[0]);
benmarks
fonte
Isso deve ser marcado como a resposta correta. Você pode obter sites Mage::app()->getWebsites()e o código do site:$website->getCode()
Michael
Coisas boas @benmarks. Eu concordo, isso deve ser marcado como a resposta certa. Eu sei que não é comum obter um valor de configuração por site, mas em alguns casos é .. por exemplo, eu precisava fazer isso ao executar uma exportação de produtos por site em uma tarefa de trabalho cron.
Eduardo
2

Posso estar errado, mas, tanto quanto me lembro, o escopo da configuração está sempre vinculado às lojas. Se você definir um valor no nível do site, ele estará disponível em qualquer loja desse site, a menos que você defina um valor diferente no nível da loja.

Digamos que você tenha o site A e as lojas A1 e A2 são lojas desse site. Suponha que A tenha o valor 5 para uma determinada propriedade

Em seguida Mage::getStoreConfig(), retornará 5 para essa propriedade para A1 e A2. Se você definir a propriedade como 3 para A1, Mage::getStoreConfig()retornará 3 para A1 e 5 para A2 para essa propriedade.

mpaepper
fonte
Você está perfeitamente certo - mas: estou exportando dados de configuração no nível do site - então, de alguma forma, quero a configuração do escopo do site ... Sei que esse é um caso bastante raro.
21413 Alex
@Alex Você provavelmente deve mencionar que na sua pergunta, também;)
mpaepper