Obtener el valor de configuración para el alcance del sitio web

21

¿Cómo puedo obtener un valor de configuración para un sitio web específico?

Hay Mage::getStoreConfig()pero no Mage::getWebsiteConfig().

editar :

Estoy exportando datos de configuración a nivel de sitio web, así que de alguna manera quiero la configuración del alcance del sitio web ...

Alex
fuente

Respuestas:

16

Por lo general, no se supone que hagas esto. Mage::getStoreConfig()devolverá automáticamente el valor de la tienda, el valor del sitio web, el valor global o el valor predeterminado según la configuración del campo.

Sin embargo, si realmente necesita ignorar el valor de la tienda y obtener el valor del sitio web, puede hacerlo de esta manera:

Mage::app()->getWebsite()->getConfig('.../.../...')
Anders Thirsgaard Rasmussen
fuente
1
No olvides agregar el ID del sitio web. es decir, <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Eduardo
8

Este es un caso raro, ya que la configuración se hereda a nivel de tienda y generalmente getStoreConfig()tiene en cuenta la configuración del sitio web.

Puede usar Mage_Core_Model_Website::getConfig(), pero tenga en cuenta que existe una ligera diferencia en el lugar Mage_Core_Model_Store::getConfig()donde también se está realizando algún procesamiento (por ejemplo, la sustitución de {{...}}), este tipo de sustitución no se realiza a nivel del sitio web.

Si el valor solo se puede cambiar a nivel del sitio web, otra opción sería obtener solo un almacén aleatorio del sitio web y luego usarlo getStoreConfig().

Alex
fuente
6

Esto puede derivarse usando el código específico del sitio web si se conoce.

$value = Mage::getConfig()->getNode('websites/[website_code]/section/group/field');
var_dump($value[0]);
puntos de referencia
fuente
Esto debe marcarse como la respuesta correcta. Puede obtener sitios web Mage::app()->getWebsites()y el código del sitio web:$website->getCode()
Michael
Buenas cosas @benmarks. Estoy de acuerdo, esto debería marcarse como la respuesta correcta. Sé que no es común obtener un valor de configuración por sitio web, pero en algunos casos lo es ... por ejemplo, necesitaba hacer esto al ejecutar una exportación de productos por sitio web en una tarea de trabajo cron.
Eduardo
2

Podría estar equivocado, pero por lo que recuerdo, el alcance de la configuración siempre está vinculado a las tiendas. Si establece un valor en el nivel de un sitio web, estará disponible en cualquier tienda de ese sitio web a menos que establezca un valor diferente en el nivel de la tienda.

Digamos que tiene el sitio web A y la tienda A1 y A2 son tiendas para ese sitio web. Suponga que A tiene el valor 5 para una propiedad dada

Luego Mage::getStoreConfig()devolverá 5 para esa propiedad tanto para A1 como para A2. Si establece la propiedad en 3 para A1, Mage::getStoreConfig()devolverá 3 para A1 y 5 para A2 para esa propiedad.

mpaepper
fuente
Tiene toda la razón, pero: estoy exportando datos de configuración a nivel de sitio web, así que de alguna manera quiero la configuración del alcance del sitio web ... Sé que este es un caso bastante raro.
Alex
@Alex Probablemente también deberías mencionar eso en tu pregunta;)
mpaepper