Obtenez la valeur de configuration pour la portée du site Web

21

Comment puis-je obtenir une valeur de configuration pour un site Web spécifique?

Il n'y en a Mage::getStoreConfig()pas Mage::getWebsiteConfig().

modifier :

J'exporte les données de configuration au niveau du site Web - donc je veux en quelque sorte le paramètre de portée du site Web ...

Alex
la source

Réponses:

16

Habituellement, vous n'êtes pas censé faire cela. Mage::getStoreConfig()renvoie automatiquement la valeur du magasin, la valeur du site Web, la valeur globale ou la valeur par défaut en fonction de la configuration du champ.

Cependant, si vous devez vraiment ignorer la valeur de la boutique et obtenir la valeur du site Web, vous pouvez le faire de cette façon:

Mage::app()->getWebsite()->getConfig('.../.../...')
Anders Thirsgaard Rasmussen
la source
1
N'oubliez pas d'ajouter le websiteId. ie <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Eduardo
8

C'est un cas rare, car les paramètres sont hérités au niveau du magasin et getStoreConfig()prennent généralement en compte les paramètres du site Web.

Vous pouvez utiliser Mage_Core_Model_Website::getConfig()- mais sachez qu'il existe une légère différence sur le Mage_Core_Model_Store::getConfig()lieu de traitement (par exemple, substitution de {{...}}) - ce type de substitution n'est pas effectué au niveau du site Web.

Si la valeur ne peut être modifiée qu'au niveau du site Web, une autre option consisterait à obtenir uniquement un magasin aléatoire du site Web, puis à l'utiliser getStoreConfig().

Alex
la source
6

Cela peut être dérivé en utilisant le code spécifique du site Web s'il est connu.

$value = Mage::getConfig()->getNode('websites/[website_code]/section/group/field');
var_dump($value[0]);
Benmarks
la source
Cela devrait être marqué comme la bonne réponse. Vous pouvez obtenir des sites Web Mage::app()->getWebsites()et le code du site Web:$website->getCode()
Michael
Bonnes choses @benmarks. Je suis d'accord, cela devrait être marqué comme la bonne réponse. Je sais qu'il n'est pas courant d'obtenir une valeur de configuration par site Web, mais dans certains cas, c'est .. par exemple, je devais le faire lors de l'exécution d'une exportation de produits par site Web dans une tâche cron.
Eduardo
2

Je me trompe peut-être, mais pour autant que je m'en souvienne, la portée de la configuration est toujours liée aux magasins. Si vous définissez une valeur au niveau du site Web, elle sera disponible dans n'importe quel magasin de ce site Web, sauf si vous définissez une valeur différente au niveau du magasin.

Supposons que vous ayez le site Web A et que les magasins A1 et A2 soient des magasins pour ce site Web. Supposons que A a la valeur 5 pour une propriété donnée

Renvoie ensuite Mage::getStoreConfig()5 pour cette propriété pour A1 et A2. Si vous définissez la propriété sur 3 pour A1, puis Mage::getStoreConfig()renverra 3 pour A1 et 5 pour A2 pour cette propriété.

mpaepper
la source
Vous avez parfaitement raison - mais: j'exporte les données de configuration au niveau du site Web - donc je veux en quelque sorte le paramètre de portée du site Web ... Je sais que c'est un cas assez rare.
Alex
@Alex Vous devriez probablement mentionner cela aussi dans votre question;)
mpaepper