我可以从布局 XML 文件中调用单例方法作为 '' 中参数的值吗?<action>



正如标题所说。我可以从布局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>

相关内容

  • 没有找到相关文章

最新更新