【发布时间】:2012-03-29 17:29:33
【问题描述】:
编辑 4/4/12
我还有一个问题:
我解决了我的问题,但它在列表顶部添加了我的选项。如何将其排序到列表底部的我的选项?
请查看我的工作config.xml文件内容的答案...
我在这里寻求深入的帮助,因为我已经在这方面工作了很长一段时间,但似乎一无所获。
背景
我希望为我们的客户制作可打印的 RMA 表格,以便他们更轻松地退货/换货。
我在此扩展程序的帮助下做到了这一点:http://www.magentocommerce.com/magento-connect/admin-order-printing-extension.html
(如果需要,请下载此文件以查看目录结构)
它在订单中添加了一个按钮,然后我进入并编辑了表单/表单布局,使其成为 RMA(或具有 RMA 内容)。
一切都很好,但是,我们必须进入每个订单并按下按钮才能打印。
我们确实需要Mass Action 以使其更高效和有用。
问题
我尝试了不同的方法来让它工作,但我真的需要帮助。最近我尝试使用events 的第二种方法来遵循本教程(http://www.blog.magepsycho.com/adding-new-mass-action-to-admin-grid-in-magento/)但我似乎无法让它工作。
有人可以更深入地解释一下(我尝试过的最后一种方法),以便我可以让它与这个模块一起工作???
我已经在config.xml中添加了这个(根据教程)
<events>
<core_block_abstract_prepare_layout_before>
<observers>
<orderprint_core_block_abstract_prepare_layout_before>
<class>orderprint/observer</class>
<method>addRmaAction</method>
</orderprint_core_block_abstract_prepare_layout_before>
</observers>
</core_block_abstract_prepare_layout_before>
</events>
在Nastnet/OrderPrint/Model/Observer.php 我已经添加了这个(根据教程)
<?php class Nastnet_OrderPrint_Model_Observer {
public function addRmaAction($observer) {
$block = $observer->getEvent()->getBlock();
if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction'
&& $block->getRequest()->getControllerName() == 'sales_order')
{
$block->addItem('pdfrma_order', array(
'label' => 'Print RMA',
'url' => Mage::app()->getStore()->getUrl('nastnet/controller/action'),
));
}
} }
(抱歉上面的代码乱七八糟 - 我可以让它突出显示的唯一方法)
编辑 1(2012 年 4 月 2 日) 这是我模块的 config.xml 文件。到目前为止,我不得不使用重写/覆盖方法(删除我使用事件的尝试)。如果你看到任何东西,包括它需要的确切结构,请告诉我......
减去<config> 标签:
<modules>
<Nastnet_OrderPrint>
<version>0.1.3</version>
</Nastnet_OrderPrint>
</modules>
<global>
<blocks>
<adminhtml>
<rewrite>
<sales_order_grid>Nastnet_OrderPrint_Block_Sales_Order_Grid</sales_order_grid> <!-- WORKIING METHOD -->
<sales_order_view>Nastnet_OrderPrint_Block_Sales_Order_View</sales_order_view>
</rewrite>
</adminhtml>
</blocks>
<rewrite>
<Nastnet_OrderPrint_OrderController>
<from><![CDATA[#/\w+/sales_order/print/#]]></from>
<to>/orderprint/order/print/</to>
</Nastnet_OrderPrint_OrderController>
</rewrite>
<models>
<Nastnet_OrderPrint>
<class>Nastnet_OrderPrint_Model</class>
</Nastnet_OrderPrint>
</models>
<pdf>
<order>
<default>Nastnet_OrderPrint/order_pdf_items_order_default</default>
<grouped>Nastnet_OrderPrint/order_pdf_items_order_grouped</grouped>
</order>
</pdf>
</global>
<admin>
<routers>
<Nastnet_OrderPrint>
<use>admin</use>
<args>
<module>Nastnet_OrderPrint</module>
<!-- This is used when "catching" the rewrite above -->
<frontName>orderprint</frontName>
</args>
</Nastnet_OrderPrint>
</routers>
【问题讨论】:
-
确认你的模块是否被加载,同时检查你的模块是否有错误。
-
你的类在 config.xml 中定义好了吗?将其粘贴在这里,以便我们检查是否有任何拼写错误
-
OSdave - 我在上面粘贴了我的 config.xml。到目前为止,我已经删除了对“事件”方法的尝试。我已经尝试了多种方法使用这个 (blog.magepsycho.com/…) 方法 2 和这个 (stackoverflow.com/questions/9034843/…)。没有人像我扩展它时那样在下拉列表中获得新标签(如上所述)......
标签: magento magento-1.5