2

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

1 回答 1

3

不可以。布局 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>

高温高压

于 2012-04-13T14:58:56.513 回答