获取网站范围的配置值


21

如何获得特定网站的配置值?

没有Mage::getStoreConfig()但没有Mage::getWebsiteConfig()

编辑

我正在网站级别上导出配置数据-所以以某种方式我想要网站范围设置...

Answers:


16

通常,您不应该这样做。 Mage::getStoreConfig()会根据字段的配置自动返回商店值,网站值,全局值或默认值。

但是,如果您确实需要忽略商店的价值并获得网站的价值,则可以采用以下方式:

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

1
不要忘记添加websiteId。即<br/>Mage::app()->getWebsite($websiteId)->getConfig('web/unsecure/base_url')
Eduardo

8

这是一种罕见的情况,因为设置会继承到存储级别,并且通常会getStoreConfig()考虑网站设置。

您可以使用Mage_Core_Model_Website::getConfig()-但请注意,Mage_Core_Model_Store::getConfig()在某些地方进行的处理(例如的替换{{...}})略有不同-这种替换不在网站一级执行。

如果只能在网站级别更改该值,则另一种选择是仅获取网站的一些随机存储,然后使用getStoreConfig()


6

可以使用特定的网站代码(如果已知)得出。

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

应该将其标记为正确答案。您可以Mage::app()->getWebsites()从以下网站获得网站以及网站的代码:$website->getCode()
Michael

好东西@benmarks。我同意,这应该标记为正确答案。我知道通过网站获取配置值并不常见,但是在某些情况下是这样。例如,在cron作业任务中通过网站运行产品导出时,我需要这样做。
Eduardo

2

我可能是错的,但据我所知,配置范围始终绑定到存储。如果您在网站级别上设置值,则除非您在商店级别上设置了其他值,否则该值将在该网站的任何商店中都可用。

假设您拥有网站A,而商店A1和A2是该网站的商店。假定A对于给定属性的值为5

然后Mage::getStoreConfig()将为该属性(对于A1和A2)返回5。如果将A1的属性设置为3,则该属性将为A1 Mage::getStoreConfig()返回3,为A2返回5。


您完全正确-但是:我正在网站级别上导出配置数据-因此我想以某种方式希望网站范围设置...我知道这是一种非常罕见的情况。
亚历克斯

@Alex您可能也应该在您的问题中提到它;)
mpaepper
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.