Ottieni valore di configurazione per l'ambito del sito Web


21

Come posso ottenere un valore di configurazione per un sito Web specifico?

Non c'è Mage::getStoreConfig()ma no Mage::getWebsiteConfig().

modifica :

Sto esportando i dati di configurazione a livello di sito Web, quindi in qualche modo voglio l'impostazione dell'ambito del sito Web ...

Risposte:


16

Di solito, non dovresti farlo. Mage::getStoreConfig()restituirà automaticamente il valore del negozio, il valore del sito Web, il valore globale o il valore predefinito in base alla configurazione del campo.

Tuttavia, se hai davvero bisogno di ignorare il valore del negozio e ottenere il valore del sito Web, puoi farlo in questo modo:

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

1
Non dimenticare di aggiungere l'Id del sito Web. cioè <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Eduardo,

8

Questo è un caso raro, poiché le impostazioni sono ereditate a livello di negozio e di solito getStoreConfig()tengono conto delle impostazioni del sito Web.

Puoi utilizzare Mage_Core_Model_Website::getConfig()- ma tieni presente che esiste una leggera differenza rispetto a Mage_Core_Model_Store::getConfig()dove viene eseguita anche l'elaborazione (ad esempio la sostituzione di {{...}}) - questo tipo di sostituzione non viene eseguita a livello di sito Web.

Se il valore può essere modificato solo a livello di sito Web, un'altra opzione sarebbe quella di ottenere solo qualche negozio casuale del sito Web e quindi utilizzare getStoreConfig().


6

Questo può essere derivato utilizzando il codice specifico del sito Web, se noto.

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

Questo dovrebbe essere contrassegnato come la risposta corretta. È possibile ottenere siti Web da Mage::app()->getWebsites()e il codice dal sito Web:$website->getCode()
Michael

Roba buona @benmarks. Sono d'accordo, questa dovrebbe essere contrassegnata come la risposta giusta. So che non è comune ottenere un valore di configurazione per sito Web, ma in alcuni casi lo è ... per esempio, dovevo farlo quando eseguivo un'esportazione di prodotti per sito Web in un'attività cron.
Eduardo,

2

Potrei sbagliarmi, ma per quanto ricordo, l'ambito della configurazione è sempre legato ai negozi. Se imposti un valore a livello di sito Web, sarà disponibile in qualsiasi negozio di quel sito Web a meno che non imposti un valore diverso a livello di negozio.

Supponi di avere il sito Web A e il negozio A1 e A2 sono negozi per quel sito Web. Supponiamo che A abbia il valore 5 per una determinata proprietà

Quindi Mage::getStoreConfig()restituirà 5 per quella proprietà sia per A1 che per A2. Se si imposta la proprietà su 3 per A1, Mage::getStoreConfig()verrà restituito 3 per A1 e 5 per A2 per quella proprietà.


Hai perfettamente ragione, ma: sto esportando i dati di configurazione a livello di sito Web, quindi in qualche modo voglio l'impostazione dell'ambito del sito Web ... So che questo è un caso abbastanza raro.
Alex,

@Alex Probabilmente dovresti menzionarlo anche nella tua domanda;)
mpaepper,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.