Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento,使用XML标记方法扩展订单网格,选择选项问题_Magento - Fatal编程技术网

Magento,使用XML标记方法扩展订单网格,选择选项问题

Magento,使用XML标记方法扩展订单网格,选择选项问题,magento,Magento,我正在寻找一些如何在Magento order网格中填充选择选项标题的示例。下面是创建新列以呈现数据,并在列标题中输出选择菜单。问题是没有在选择菜单中创建选项 <layout> <!-- main layout definition that adds the column --> <add_order_grid_column_handle> <reference name="sales_order.grid">

我正在寻找一些如何在Magento order网格中填充选择选项标题的示例。下面是创建新列以呈现数据,并在列标题中输出选择菜单。问题是没有在选择菜单中创建选项

<layout>
    <!-- main layout definition that adds the column -->
    <add_order_grid_column_handle>
        <reference name="sales_order.grid">
            <action method="addColumnAfter">
                <columnId>customer_country_id</columnId>
                <arguments module="ordermanager" translate="header">
                    <header>Shipping Country</header>
                    <index>customer_country_id</index>
                    <type>options</type>
                    <sortable>true</sortable>
                    <options>Flipmedia_AddShippingCountryColumn_Adminhtml_Block_Widget_Grid_Column_Renderer_Country</options>
                    <renderer>Flipmedia_AddShippingCountryColumn_Adminhtml_Block_Widget_Grid_Column_Renderer_Country</renderer>
                </arguments>
                <after>status</after>
            </action>
        </reference>
    </add_order_grid_column_handle>

    <!-- order grid action -->
    <adminhtml_sales_order_grid>
        <!-- apply the layout handle defined above -->
        <update handle="add_order_grid_column_handle" />
    </adminhtml_sales_order_grid>

    <!-- order grid view action -->
    <adminhtml_sales_order_index>
        <!-- apply the layout handle defined above -->
        <update handle="add_order_grid_column_handle" />
    </adminhtml_sales_order_index>
</layout>



class Flipmedia_AddShippingCountryColumn_Adminhtml_Block_Widget_Grid_Column_Renderer_Country extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {

    private static $_countryList = array();

    public function options(Varien_Object $row) {
         if (count(self::$_countryList) == 0) {          
            $countries =        Mage::getResourceModel('directory/country_collection')
                                    ->loadData()
                                    ->toOptionArray(false);
            foreach ($countries as $country) {
                self::$_countryList[$country['value']] = $country['label'];
            }
         }

         return self::$_countryList;
     }

    public function render(Varien_Object $row){
           $value = $this->_getValue($row);        
           $_countryList = $this->options();           
           return isset($_countryList[$value]) ? $_countryList[$value] : false;
        }
}

客户\国家\ id
航运国
客户\国家\ id
选择权
真的
Flipmedia\u AddShippingCountryColumn\u Adminhtml\u Block\u Widget\u Grid\u Column\u Renderer\u Country
Flipmedia\u AddShippingCountryColumn\u Adminhtml\u Block\u Widget\u Grid\u Column\u Renderer\u Country
地位
类Flipmedia\u AddShippingCountryColumn\u Adminhtml\u Block\u Widget\u Grid\u Column\u Renderer\u Country扩展Mage\u Adminhtml\u Block\u Widget\u Grid\u Column\u Renderer\u Abstract{
私有静态$_countryList=array();
公共功能选项(Varien_对象$row){
如果(count(self::$_countryList)==0){
$countries=Mage::getResourceModel('directory/country\u collection')
->loadData()
->toOptionArray(假);
foreach($国家作为$国家){
self::$_countryList[$country['value']]=$country['label'];
}
}
返回自我::$\u countryList;
}
公共函数渲染(Varien_对象$row){
$value=$this->\u getValue($row);
$\u countryList=$this->options();
返回isset($\u countryList[$value])?$\u countryList[$value]:false;
}
}

我认为问题在于您的
元素,如果您通过重写来覆盖销售订单网格,则必须为选项指定一个静态函数。我环顾了一下四周,看起来你需要改变调用它的方式

不使用
元素,您可以尝试使用类似的
元素吗

<filter>Flipmedia_AddShippingCountryColumn_Adminhtml_Block_Widget_Grid_Column_Filter_Country</filter>

customer\u country\u id
不是
sales\u flat\u order\u grid
的一列:您添加了它吗?另外,粘贴>Flipmedia\u AddShippingCountryColumn\u Adminhtml\u Block\u Widget\u Grid\u Column\u Renderer\u Country`的代码,这样我们就可以检查它是否有问题。上面只是整个扩展的一个片段,有一个添加列并从现有数据填充的安装脚本,以及一个在创建订单时填充此新列的观察者。我的问题特别与标题过滤器方面有关,这一点由CCBlackburn完美回答。谢谢你的意见。太棒了!我没有机会尝试,很高兴你成功了
class Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Config_Grid_Filter_Inventory extends Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Select
{

    protected function _getOptions()
    {
        // return an array of options
        return array(
                array(
                'value' =>  '',
                'label' =>  ''
        ));
    }
}