使用addText在布局xml文件中创建Magento动态文本
我目前有:使用addText在布局xml文件中创建Magento动态文本,magento,Magento,我目前有: <block type="core/text" name="top.address" as="topAddress"> <action method="addText"><text>PO BOX 1124, Rockdale, Sydney, NSW 2216, Australia</text></action> </block> 澳大利亚新南威尔士州悉尼Rockdale邮政信
<block type="core/text" name="top.address" as="topAddress">
<action method="addText"><text>PO BOX 1124, Rockdale, Sydney, NSW 2216, Australia</text></action>
</block>
澳大利亚新南威尔士州悉尼Rockdale邮政信箱1124号,邮编2216
但是,当我需要更新地址时,我必须在布局文件中手动进行更新。我想从商店配置中提取地址(常规/store\u信息/address),这样我就可以轻松地从一个位置更新网站上的任何地方
我想可以直接在模板上完成,如下所示:
<?php echo Mage::getStoreConfig('general/store_information/address') ?>
但我想尝试一下布局,可能吗
谢谢。简短回答-否。它没有任何功能。这并不是说它不可能做到。您可以在操作标记上使用一个属性-
ifconfig
。它查看是否设置了系统配置标志,如果返回true,则将继续操作。您可以覆盖或扩展Mage/Core/Model/Layout.php
以添加该功能
不过,对于这个问题有很多选择
Mage\u Core\u block\u Text
的块,并使用提供的代码指定\u toHtml
方法李>
\u toHtml
中查找我的答案可能有点过时,但我刚才面对这样的问题,我找到了另一种解决方法:
core/text
块,并通过helper设置其文本。你可以使用任何合适的参考资料
<reference name="before_body_end">
<block type="core/text" name="some.config">
<action method="addText">
<text helper="module_name/data/getSomeConfig" />
</action>
</block>
</reference>
通过这种方式,您甚至可以将一些动态数据传递到javascript代码中。此外,使用静态块也可以轻松地完成此操作,因此可以从管理面板编辑此地址,然后从模板或LayoutHanks@JMax调用它,我只是想看看这是否可行,因为我找不到任何人这样做。我决定使用#1,因为我的想法和第二选择也是一样的。@SergeiGuk我真的不想使用静态块,因为地址已经可以从存储配置中获得,但也感谢您的输入。
public function getSomeConfig()
{
return Mage::getStoreConfig('your_config_path');
}