回答
你应该覆盖类Mage_Adminhtml_Block_Customer_Grid(应用程序/代码/核心/法师/ Adminhtml /座/客户/ Grid.php),并应用以下更改:
1 - 添加新的属性在_prepareCollection显示()函数
2 - 添加新列在_prepareColumns显示()函数
信用:http://www.leonhostetler.com/blog/magento-add-attribute-columns-in-manage-products-grid-201205/
的Magento不为我们提供了选择哪个属性的能力作为管理产品网格中的列包含在内,但对代码进行必要的更改非常简单。
生成管理产品网格的代码位于/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php。你需要做的第一件事是将Grid.php复制到本地目录结构中。换句话说,您将Grid.php复制到以下位置; /应用程序/代码/本地/法师/ Adminhtml /座/目录/产品/。如果没有这样的位置,那么你必须创建必要的目录。文件的最终位置必须是; /app/code/local/Mage/Adminhtml/Block/Catalog/Product/Grid.php
现在,打开Grid.php(本地目录结构中的一个)并开始编辑。找到下面的代码;
$这 - > addColumn( 'SKU', 阵列( '标题'=>法师::助手( '目录') - > __( 'SKU'), '宽度'=>' 80px', 'index'=>'sku', ));
这是将SKU列添加到产品网格中的代码。现在,假设您有一个名为供应商ID(supplier_ID)的自定义属性,并且您希望这些属性也出现在管理产品网格中。将以下代码放置在上述代码块之前或之后,只要它位于_prepareColumns()内部即可。
$this->addColumn('supplier_id', array( 'header'=> Mage::helper('catalog')->__('Supplier ID'), 'width' => '150px', 'index' => 'supplier_id', ));
然后添加以下行到其他属性中列出这样_prepareCollection();
- > addAttributeToSelect( 'supplier_id')
这应该是所有你需要做的。您可能需要重新编译,刷新缓存,注销并重新登录才能查看产品网格中的更改。
以上示例用于为文本字段的存储所有者添加具有目录输入类型的属性。如果你的属性使用下拉列表呢?上面的代码将不得不被修改。
比方说,您有一个属性称为供应商(供应商),它在产品编辑器中提供可供选择的供应商下拉列表。要做到这一点,我们可以将下面的代码添加到_prepareColumns():
$ supplier_items = 法师:: getModel( 'EAV/entity_attribute_option') - > getCollection() - > setStoreFilter() - >连接( 'attribute','attribute.attribute_id = main_table.attribute_id', 'attribute_code'); foreach($ supplier_items as $ supplier_item): if($ supplier_item-> getAttributeCode()=='supplier') $ supplier_options [$ supplier_item-> getOptionId()] = $ supplier_item-> getValue(); endforeach; $ this-> addColumn('supplier', array( 'header'=> Mage :: helper('catalog') - > __('supplier'), 'width'=>'150px', 'type '=>'options', 'index'=>'supplier', 'options'=> $ supplier_options,));
并且我们不要忘记将以下行添加到_prepareCollection()其中列出其他属性,
- > addAttributeToSelect( '供应商')
这应该为你做它。重新编译,刷新缓存,然后注销,如果需要的话重新登录。
这是一个很好的答案,但是我给它一个反对票,因为它完全没有意识到所问的问题是关于向客户网格添加一列,而不是产品网格。当然,这个过程几乎是一样的,这个答案甚至没有试图至少提到客户网格是在app/code/core/Mage/Adminhtml/Block/Customer/Grid.php下找到的。 唉,我现在没有声望投票。所以我建议至少修改答案。 – Meogi 2013-11-20 19:48:47
我已经发布here真实的例子。
如果您需要添加custome属性,您可能需要谨慎处理join语句。
->joinAttribute('billing_postcode', 'customer_address/postcode', 'default_billing', null, 'left')
用您的自定义模块重写客户网格块。
应用程序/代码/ [地方或社区] /YourCompany/YourModule/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<yourcompany_yourmodule>
<version>0.1.0</version>
</yourcompany_yourmodule>
</modules>
<global>
<blocks>
<adminhtml>
<rewrite>
<customer_grid>YourCompany_YourModule_Block_Customer_Grid</customer_grid>
</rewrite>
</adminhtml>
</blocks>
</global>
</config>
应用程序/代码/ [地方或社区]/YourCompany/YourModule /块/客户/Grid.php
<?php
class YourCompany_YourModule_Block_Customer_Grid extends Mage_Adminhtml_Block_Customer_Grid
{
public function setCollection($collection)
{
$collection->addAttributeToSelect('confirmation');
parent::setCollection($collection);
}
protected function _prepareColumns()
{
parent::_prepareColumns();
$this->addColumn('confirmation', array(
'header'=> Mage::helper('sales')->__('Confirmed'),
'index' => 'confirmation',
'type' => 'text',
'width' => '100px',
));
return parent::_prepareColumns();
}
}
详细解释可以在这里找到:
http://tipsmagento.blogspot.com/2011/03/add-new-column-on-customers-grid.html
@kleopatra谢谢。我已经更新了答案。 – 2013-10-17 10:50:56
请务必查看TigerMin for Magento。这是一个工具,您可以轻松地将列添加到productsgrid中,甚至可以立即内联编辑值。这里现场演示:http://demo.emvee-solutions.com/tigermin/
- 1. Magento:在管理客户网格中添加自定义列
- 2. Magento添加公司名称来订购和客户网格
- 3. Magento:将店铺积分添加到客户网格
- 4. magento添加上次登录到客户网格
- 5. 添加新的客户行动,Magento的客户网
- 6. 致命错误:Magento的添加列管理员客户电网
- 7. Magento 2:列出客户或添加新客户时出错
- 8. 的Magento - Magento中添加客户名称,以便电网1.7.0.2
- 9. Magento - 向销售订单网格添加新列不工作
- 10. Magento - 为客户实体添加属性
- 11. 如何添加客户电子邮件订购网格在magento 1.4
- 12. 更新:Magento添加客户属性过滤器来订购网格
- 13. 如何添加订单客户电网的总人数在Magento
- 14. Magento - 将帐单传真号码添加到客户电网
- 15. 向现有网站添加magento
- 16. Magento,网格,添加列链接到一个网站
- 17. Magento客户相关网站
- 18. 向网格添加圆角
- 19. 添加客户属性Magento2
- 20. Magento无法列出客户
- 21. 在管理网格中:将隐藏列添加到magento adim产品网格
- 22. Jersey客户端:向请求添加Cookie
- 23. 向SignalR客户端添加角色
- 24. 向现有客户添加订单
- 25. 如何向客户添加新字段
- 26. 如何在magento订单网格中正确添加shipping_description列?
- 27. 在订单网格中添加自定义列(Magento 1.7.0.0)
- 28. Magento在销售网格中的后端添加一列
- 29. Magento - 将列添加到销售订单网格不工作
- 30. Magento添加额外的字段/客户/帐户/创建/页
可能的重复[添加栏到Magento管理员目录>管理产品](http://stackoverflow.com/questions/5990910/add-column-to-magento-admin-catolog-manage - 产品)(不同的网格,但方法相同)。 – clockworkgeek 2011-05-18 15:38:37
谢谢,如果我想在新模块中复制客户网格。 – Bizboss 2011-05-19 08:06:07
只需像其他任何PHP类一样扩展即可。 – clockworkgeek 2011-05-19 10:41:54