我试图覆盖Pdf类来更改发票/发货/ Creditmemo pdf,但它似乎没有反映出来。
我在Mymodule / etc / config.xml
中创建了一个带有以下内容的模块<config>
<modules>
<Mymodule_Printtemplates>
<version>0.1.0</version>
</Mymodule_Printtemplates>
</modules>
<global>
<models>
<sales>
<rewrite>
<order_pdf_abstract>Mymodule_Printtemplates_Model_Order_Pdf_Abstract</order_pdf_abstract>
<order_pdf_invoice>Mymodule_Printtemplates_Model_Order_Pdf_Invoice</order_pdf_invoice>
<order_pdf_creditmemo>Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo</order_pdf_Creditmemo>
<order_pdf_shipment>Mymodule_Printtemplates_Model_Order_Pdf_Shipment</order_pdf_shipment>
</rewrite>
</sales>
</models>
</global>
然后我在Mymodule / models /中创建了以下Model类 如Abstract.php,Invoice.php,Shipment.php,Creditmemo.php
abstract class Mymodule_Printtemplates_Model_Order_Pdf_Abstract extends Mage_Sales_Model_Order_Pdf_Abstract
class Mymodule_Printtemplates_Model_Order_Pdf_Invoice extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract { ... functions here ...}
class Mymodule_Printtemplates_Model_Order_Pdf_Shipment extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract{ ... functions here ...}
class Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract{ ... functions here ...}
模块已启用 - 我已通过系统&gt;配置&gt;管理&gt;高级检查了它,但它似乎没有反映更改
另一方面,如果我将Mage / Sales / Model / Order / Pdf / *。php粘贴到本地并进行更改,则会反映出更改。我知道这不是推荐的方法,但通过重写类的方法似乎不起作用。
通过类重写对第一种方法的任何帮助都将不胜感激。
谢谢, Loveleen
真正的问题是etc / config.xml中出现错误的语法[参见结束标记中的Capital C]
Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo
我使用以下方法调试问题:将它放在index.php的底部,类似于Alans模块列表,但是快速代码复制/粘贴方法。请记住,Magento的所有XML都被合并到一个XML树中。
header(“Content-Type:text / xml”);模具(法师::应用程序() - &GT; getConfig() - &GT; getNode() - &GT; asXML());
取自How do I know whether my Config.xml file is working in Magento?
的答案答案 0 :(得分:2)
以下是我看到的一些事情。
Mymodule/Printtemplates/Model/Order/Pdf/Invoice.php
,例如。类名应与文件名匹配。 Mage::getModel('')
)。使用工厂方法允许Magento查看系统以查看是否需要使用另一个类。但是,当一个类被硬引用(e.x。Mage_Sales_Model_Order_Pdf_Abstract
)时,它不会通过工厂方法,因此不会发生重写。Mage_Sales_Model_Order_Pdf_Invoice
等)。如果你有额外的常用功能,你可以将它们放入Helper。答案 1 :(得分:2)
我使用以下方法调试问题: 将它放在index.php的底部,类似于Alans模块列表,但是快速代码复制/粘贴方法。请记住,Magento的所有XML都被合并到一个XML树中。
header(“Content-Type:text / xml”); 模具(法师::应用程序() - &GT; getConfig() - &GT; getNode() - &GT; asXML());
取自How do I know whether my Config.xml file is working in Magento?
的答案