是否可以在布局文件中使用Custom Variables
?我可以在这样的模板文件中使用它们:
Mage::getModel('core/variable')->loadByCode('variableCode')->getData('store_plain_value')
但不确定xml文件。
我知道我可以使用上面的内容,但这对于未来的用途也是有用的。
更新:最不清楚我害怕。我特意想要访问管理面板“自定义变量”部分,而不仅仅是将我自己的变量传递给一个块。我为缺乏明确性而道歉。
答案 0 :(得分:5)
Mage_Core_Block_Abstract
扩展Varien_Object
并继承其__call()
重载。除了布局XML调用块方法中的块操作,以下是可能的:
传递一个字符串(可以翻译!):
<action method="setSomeVal" translate="arg" module="some/helper">
<arg>Some String</arg>
</action>
传递数组:
<action method="setSomeVal">
<arg>
<key1>Some String</key1>
<key2>Some String</key2>
<key3>
<multikey1>Some String</multikey1>
</key3>
</arg>
</action>
传递你想要的任何东西:
<action method="setSomeVal">
<arg helper="some/helper/method">
<param_for_the_helper_method>
<getting_crazy>Oh Boy.</getting_crazy>
</param_for_the_helper_method>
</action>
使用$this->getSomeVal();
检索块/模板中的值。
好玩,呵呵?
答案 1 :(得分:4)
您是否尝试过以下操作:
<!-- in layout xml file -->
<action method="setData"><name>color_id</name><value>5</value></action>
然后,您可以在下面的块文件中使用:
$colors = $this->getColorId();
# or
$colors = $this->getData('color_id');
答案 2 :(得分:2)
根据更新的问题:
创建一个包装core/variable
功能的辅助类,例如:
class Some_Module_Helper_Variable
{
public function getVariableData($code,$param)
{
return Mage::getModel('core/variable')->loadByCode($code)->getData($param);
}
}
然后,在您的块的布局XML中,您可以执行此操作(我相信):
<action method="setSomeVal">
<arg helper="class_group/variable/getVariableData">
<arg1>variableCode</arg1>
<arg2>store_plain_value</arg2>
</arg>
</action>