[英]Magento - custom admin grid issue
我一直在为magento后端编写自定义的脱销模块,我有大规模行动,导出等工作。 但是,当我执行任何类型的搜索功能(例如在产品名称字段中放入一些内容)并确实尝试切换到下一页(或在该字段中输入特定页面)或页面上出现多少产品时。 它立即将我重定向到仪表板。
谁能向我指出处理此功能的代码的正确方向? 我将假设它是控制器的一部分,但是我一直在搜索最后一个小时,现在该该寻求帮助了!!
感谢您的任何帮助,您可以提供!
准备列功能:
protected function _prepareColumns()
{
$this->addColumn('sku',
array(
'header'=> Mage::helper('catalog')->__('SKU'),
'width' => '80px',
'index' => 'sku',
));
$sets = Mage::getResourceModel('eav/entity_attribute_set_collection')
->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId())
->load()
->toOptionHash();
$this->addColumn('set_name',
array(
'header'=> Mage::helper('catalog')->__('Attrib. Set Name'),
'width' => '60px',
'index' => 'attribute_set_id',
'type' => 'options',
'options' => $sets,
));
$store = $this->_getStore();
if ($store->getId()) {
$this->addColumn('custom_name',
array(
'header'=> Mage::helper('catalog')->__('Name in %s', $store->getName()),
'index' => 'custom_name',
));
}
$this->addColumn('name',
array(
'header'=> Mage::helper('catalog')->__('Name'),
'index' => 'name',
));
$this->addColumn('stock_status',
array(
'header'=> 'Availability',
'width' => '60px',
'index' => 'stock_status',
'type' => 'options',
'options' => array('1'=>'In stock','0'=>'Out of stock'),
));
$this->addColumn('custom_stock_status',
array(
'header' => 'Custom Stock Status',
'width' => '60px',
'index' => 'custom_stock_status',
'type' => 'options',
'editable' => 'true',));
$this->addColumn('eol',
array(
'header'=> Mage::helper('catalog')->__('EoL'),
'width' => '20px',
'type' => 'checkbox',
'index' => 'eol',
'onclick' => 'this.value = this.checked ? 1 : 0;',
'values' => array('1','2'),
'editable' => 'true',
));
$store = $this->_getStore();
$this->addColumn('qty',
array(
'header'=> Mage::helper('catalog')->__('Qty'),
'width' => '25px',
'type' => 'number',
'index' => 'qty',
));
$this->addColumn('status',
array(
'header'=> Mage::helper('catalog')->__('Status'),
'width' => '70px',
'index' => 'status',
'type' => 'options',
'options' => Mage::getSingleton('catalog/product_status')->getOptionArray(),
));
$this->addColumn('action',
array(
'header' => Mage::helper('catalog')->__('Action'),
'width' => '90px',
'type' => 'action',
'getter' => 'getId',
'actions' => array(
array(
'caption' => Mage::helper('catalog')->__('Edit Product'),
'url' => array(
'base'=>'store_admin/catalog_product/edit',
'params'=>array('store'=>$this->getRequest()->getParam('store'))
),
'field' => 'id'
)
),
'filter' => false,
'sortable' => false,
'index' => 'stores',
));
$this->addRssList('rss/catalog/notifystock', Mage::helper('catalog')->__('Notify Low Stock RSS'));
return parent::_prepareColumns();
}
此外,我试图按属性进行筛选,我需要对同一属性进行两次筛选,以便同时输出null和no属性,但不是。 反正有这样做吗?
->addAttributeToFilter('eol', array('null' => true), 'left')
->addAttributeToFilter('eol', array('No' => true));
这是我目前正在尝试做的事情,但是,它丝毫不起作用。 两者都可以单独工作!
Mage_Adminhtml_Block_Widget_Grid
有一种方法
_addColumnFilterToCollection($column)
您可以覆盖它以为您的自定义网格实现过滤逻辑。
对于CE 1.6.2,这对我有用:
1)复制到app/code/local/Mage/Adminhtml/Block/Catalog/Product/Grid.php
上的app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php
app/code/local/Mage/Adminhtml/Block/Catalog/Product/Grid.php
2)在_prepareCollection()
内/下从app/code/local/Mage/Adminhtml/Block/Catalog/Product/Grid.php
添加以下app/code/local/Mage/Adminhtml/Block/Catalog/Product/Grid.php
之后->addAttributeToSelect('type_id');
之前if (Mage::helper('catalog')->isModuleEnabled('Mage_CatalogInventory')) {
码:
$collection->joinTable( 'cataloginventory/stock_item',
'product_id=entity_id', array("stock_status" => "is_in_stock") )
->addAttributeToSelect('stock_status');
3)在'index' => 'price', ));
之后在180行附近添加以下内容'index' => 'price', ));
码:
$this->addColumn('stock_status',
array(
'header'=> 'Stock Status', // this is the title of the column
'width' => '60px', // this is the width of the column
'index' => 'stock_status',
'type' => 'options',
'options' => array('1'=>'In Stock','0'=>'Out Of Stock'),
)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.