Dapatkan Nilai Konfigurasi untuk Cakupan Situs Web

21

Bagaimana saya bisa mendapatkan nilai konfigurasi untuk situs web tertentu?

Ada Mage::getStoreConfig()tapi tidak Mage::getWebsiteConfig().

edit :

Saya mengekspor data konfigurasi pada level situs web - jadi entah bagaimana saya ingin pengaturan ruang lingkup situs ...

Alex
sumber

Jawaban:

16

Biasanya, Anda tidak seharusnya melakukan ini. Mage::getStoreConfig()akan secara otomatis mengembalikan nilai toko, nilai situs web, nilai global, atau nilai default tergantung pada konfigurasi bidang.

Namun, jika Anda benar-benar perlu mengabaikan nilai toko dan mendapatkan nilai situs web, Anda dapat melakukannya dengan cara ini:

Mage::app()->getWebsite()->getConfig('.../.../...')
Anders Thirsgaard Rasmussen
sumber
1
Jangan lupa untuk menambahkan situs webId. yaitu <br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Eduardo
8

Ini adalah kasus yang jarang, karena pengaturan diwarisi ke tingkat toko dan biasanya getStoreConfig()mempertimbangkan pengaturan situs web.

Anda dapat menggunakan Mage_Core_Model_Website::getConfig()- tetapi sadarilah bahwa ada sedikit perbedaan di Mage_Core_Model_Store::getConfig()mana juga beberapa pemrosesan sedang dilakukan (misalnya penggantian {{...}}) - penggantian semacam ini tidak dilakukan pada tingkat situs web.

Jika nilainya hanya dapat diubah pada tingkat situs web, opsi lain adalah dengan mendapatkan beberapa toko acak dari situs web dan kemudian menggunakannya getStoreConfig().

Alex
sumber
6

Ini dapat diturunkan menggunakan kode situs web tertentu jika diketahui.

$value = Mage::getConfig()->getNode('websites/[website_code]/section/group/field');
var_dump($value[0]);
tanda batas
sumber
Ini harus ditandai sebagai jawaban yang benar. Anda bisa mendapatkan situs web Mage::app()->getWebsites()dan kode dari situs web:$website->getCode()
Michael
Barang bagus @benmark. Saya setuju, ini harus ditandai sebagai jawaban yang benar. Saya tahu itu tidak umum untuk mendapatkan nilai konfigurasi dengan situs web tetapi dalam beberapa kasus itu .. misalnya, saya perlu melakukan ini ketika menjalankan ekspor produk dengan situs web dalam tugas pekerjaan cron.
Eduardo
2

Saya mungkin salah, tetapi sejauh yang saya ingat, ruang lingkup konfigurasi selalu terikat ke toko. Jika Anda menetapkan nilai pada tingkat situs web, itu akan tersedia di toko mana pun dari situs web itu kecuali jika Anda menetapkan nilai yang berbeda pada tingkat toko.

Katakanlah Anda memiliki situs web A dan toko A1 dan A2 adalah toko untuk situs web itu. Asumsikan bahwa A memiliki nilai 5 untuk properti yang diberikan

Kemudian Mage::getStoreConfig()akan mengembalikan 5 untuk properti itu untuk A1 dan A2. Jika Anda menetapkan properti ke 3 untuk A1, maka Mage::getStoreConfig()akan mengembalikan 3 untuk A1 dan 5 untuk A2 untuk properti itu.

mpaepper
sumber
Anda benar - tetapi: Saya mengekspor data konfigurasi di tingkat situs web - jadi, entah bagaimana saya ingin pengaturan cakupan situs web ... Saya tahu ini adalah kasus yang sangat jarang.
Alex
@ Alex Anda mungkin harus menyebutkan itu dalam pertanyaan Anda juga;)
mpaepper