正如标题所说。我可以从布局XML文件中调用单例方法作为<action>
中参数的值吗?
例如,我可以在Magento的布局文件中将下面的PHP代码表示为XML吗?
.PHP
$this->addColumn('status', array(
'header' => Mage::helper('sales')->__('Status'),
'index' => 'status',
'type' => 'options',
'width' => '70px',
'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
));
布局 XML
<action method="addColumn">
<columnId>status</columnId>
<column translate="header">
<header>Status</header>
<index>status</index>
<type>options</type>
<width>70px</width>
<options>What should I put here?</options>
</column>
</action>
No.布局 XML 操作参数可用于传递文本、数组结构或帮助程序的返回值 (grin)。对于最后一点,您可以创建一个帮助程序方法,该方法可以执行所需的操作:
Some_Module_Helper_Class extends Mage_Core_Helper_Abstract
{
public function getSalesOrderConfigOptions()
{
return Mage::getSingleton('sales/order_config')->getStatuses();
}
}
在您的布局 XML 中:
<action method="addColumn">
<columnId>status</columnId>
<column translate="header">
<header>Status</header>
<index>status</index>
<type>options</type>
<width>70px</width>
<!-- read as Mage::helper('some_module/class')->getSalesOrderConfig() -->
<options helper="some_module/class/getSalesOrderConfig" />
<!-- the return value of the method will be passed as the parameter in this position -->
</column>
</action>
呵呵