Magento管理员自定义销售报告
我必须开发一个模块来导出产品,订单,客户组合属性的集合。所以我认为而不是为此目的修改核心销售报告,以便更好地进行自定义功能。这些是我做的步骤,但我无法生产它。使用magento 1.4.1版本。
下
/var/www/magento141/app/code/core/Mage/Reports/etc/adminhtml.xml
为菜单添加了这些行。
<ereaders translate="title" module="reports">
<title>Sales Report</title>
<children>
<ereaders translate="title" module="reports">
<title>Sales Report</title>
<action>adminhtml/report_sales/ereaders</action>
</ereaders>
</children>
</ereaders>
下
/var/www/magento141/app/design/adminhtml/default/default/layout/sales.xml
为过滤条件添加了这些行。
<adminhtml_report_sales_ereaders>
<update handle="report_sales"/>
<reference name="content">
<block type="adminhtml/report_sales_sales" template="report/grid/container.phtml" name="sales.report.grid.container">
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
</block>
<block type="sales/adminhtml_report_filter_form_order" name="grid.filter.form">
----
</block>
</block>
</reference>
</adminhtml_report_sales_ereaders>
然后从销售中复制所需的块,模型文件,并将所有这些文件重命名为/ var / www / magento141 / app / code / core / Mage / Adminhtml /中的ereaders。
然后在/var/www/magento141/app/code/core/Mage/Adminhtml/controllers/Report/SalesController.php下放置电子阅读器的动作
public function ereadersAction()
{
$this->_title($this->__('Reports'))->_title($this->__('Sales'))->_title($this->__('EReaders Sales'));
$this->_showLastExecutionTime(Mage_Reports_Model_Flag::REPORT_ORDER_FLAG_CODE, 'ereaders');
$this->_initAction()
->_setActiveMenu('report/sales/ereaders')
->_addBreadcrumb(Mage::helper('adminhtml')->__('EReaders Sales Report'), Mage::helper('adminhtml')->__('EReaders Sales Report'));
$gridBlock = $this->getLayout()->getBlock('report_sales_ereaders.grid');
$filterFormBlock = $this->getLayout()->getBlock('grid.filter.form');
$this->_initReportAction(array(
$gridBlock,
$filterFormBlock
));
$this->renderLayout();
}
这里当我使用var_dump ==> //var_dump($this->getLayout()->getBlock('report_sales_ereaders.grid'));我只得到bool(假)。它不会调用ereaders网格,而是仅调用Sales中的仍然加载块和网格。
我搜索了大部分与报告相关的文件,但仍然无法找到问题所在。
希望你们中的许多人经历过这些问题,请有人能告诉我哪里弄错了或遗失了什么。
没有找到相关结果
已邀请:
2 个回复
室邢
脾萌
$ this - > _ controller是关键。 然后在块中定义它,看看你的sales.xml是“adminhtml / report_sales_sales”。 该块应该从Mage_Adminhtml_Block_Widget_Grid_Container扩展,你应该在该块的控制器中定义:: _ controller:
另请注意上面的第一个代码(_prepareLayout),Mage_Adminhtml_Block_Widget_Grid_Container将尝试使用名为(uri)的块: '东西/ report_sales_ereaders_grid' 所以你也需要那个类,因此你可能想用
下的yout config.xml中使用的节点改变“某事” 该块将具有名称(在布局中):“report_sales_ereaders.grid” 所以,根据你想要做的,你有两个选择: 1)在sales.xml布局中更改块的类型,因此它指向您自己的块(并在那里定义您的“_controller”我上面显示的内容等)。 2)改变
至
因为“report_sales_sales”是块“adminhtml / report_sales_sales”(
)中“_controller”的值。