2012-04-25 6 views
0

J'essaie de modifier les rapports générés à partir d'ici, example.com/index.php/admin/sales_order/index/. Je dois ajouter un nouveau rapport à la liste déroulante à droite.Le contrôleur n'est pas chargé?

J'ai tracé cette page à son contrôleur à travers l'url et jeté la classe. app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php indexAction() et j'ai obtenu cette classe Ext4mage_Html2pdf_Sales_OrderController, donc je sais qu'elle est surchargée par un module. Dans ce cas, le module Ext4mage Html2pdf.

Ce contrôleur remplace simplement les méthodes PDF à l'aide,

require_once BP.'/app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php'; 
class Ext4mage_Html2pdf_Sales_OrderController extends Mage_Adminhtml_Sales_OrderController{ 
//etc } 

J'ai donc créé mon nouveau module local, espérant écraser ce qu'il est dans la communauté. app/code/local/Daves/OrderModule/controllers/Sales/OrderController.php et placé dans ce qui suit.

require_once 'Mage'.DS.'Adminhtml'.DS.'controllers'.DS.'Sales'.DS.'OrderController.php'; 
require_once BP.'/app/code/community/Ext4mage/Html2pdf/controllers/Sales/OrderController.php'; 

class Daves_OrderModule_Sales_OrderController extends Ext4mage_Html2pdf_Sales_OrderController{ 

    public function indexAction(){ 

     die(); 

     return parent::indexAction(); 
    } 

} 

Ma fonctionnalité attendue serait que sur la page de vente rechargeant/Commander admin, je reçois une page blanche, et je ne sais pas. Ce qui signifierait que mon contrôleur n'est pas chargé.

Mon IDE montre que les classes sont en cours d'extension, et que die() dans une méthode indexAction() dans le contrôleur Ext4mage_Html2pdf fonctionne comme prévu. Il manque juste mon contrôleur pour une raison quelconque.

Essayer de frapper le contrôleur directement dans un navigateur en utilisant example.com/admin/daves_ordermodule/sales_order/index jette également un 404.

Dois-je essayer de remplacer les blocs à la place?

Je n'ai pas créé de poignées de mise à jour <rewrite> funky dans ma configuration, principalement parce que je ne suis pas sûr si j'ai besoin d'eux, ou où ils iraient. Comme je sais que Magento prend de Zend dans son utilisation horrible de xml, je vais coller dans mes configs ici.


app/etc/modules/Daves_OrderModule.xml

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Daves_OrderModule> 
      <active>true</active> 
      <codePool>local</codePool> 
      <depends> <!-- same as in the /app/etc/Mage_All.xml --> 
       <Mage_Reports/> 
       <Mage_Adminhtml/> 
       <Ext4mage_Html2pdf/> 
      </depends> 
     </Daves_OrderModule> 
    </modules> 
</config> 

app/code/local/Daves/OrderModule/etc/config.xml 0,1


app/code/community/Ext4mage/Html2pdf/etc/config.xml noeuds Plus précisément

<admin> 
    <routers> 
     <html2pdf> 
      <use>admin</use> 
      <args> 
       <module>Ext4mage_Html2pdf</module> 
       <frontName>html2pdf</frontName> 
      </args> 
     </html2pdf> 
     <emailattachments> 
      <args> 
       <modules> 
        <Ext4mage_Html2pdf before="Fooman_EmailAttachments">Ext4mage_Html2pdf</Ext4mage_Html2pdf> 
       </modules> 
      </args> 
     </emailattachments> 
     <adminhtml> 
      <args> 
       <modules> 
        <Ext4mage_Html2pdf before="Mage_Adminhtml">Ext4mage_Html2pdf</Ext4mage_Html2pdf> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 
+0

Vous avez fait waaay plus que nécessaire: -) ... Veuillez ajouter la configuration '' du module 'Ext4mage_Html2pdf' et vous obtiendrez une réponse de moi ou de quelqu'un d'autre. – benmarks

+0

Hey @benmarks J'ai maintenant inclus les noeuds routeurs de la etc/config pour Html2pdf –

+0

Salut Lire l'article ci-dessous est la meilleure solution pour le contrôleur overriden http://www.forum2tech.com/discussion/38/controller-file-was -loaded-but-class-does-not-exists # Item_1 –

Répondre

2

En supposant que vous n'avez pas les contrôleurs de frontend, ajustez votre config comme suit:

<!-- How to get to the module from the browser --> 
<admin> 
    <routers> 
     <adminhtml> <!-- My unique class group --> 
      <args> 
       <modules> 
        <Daves_Om before="Ext4mage_Html2pdf">Daves_OrderModule</Daves_Om> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 

Ce que cela fait est d'ajouter un autre répertoire des contrôleurs sous la frontname du module Mage_Adminhtml. La valeur de <Daves_Om> est essentiellement mappée au nœud de texte + "contrôleurs", donc app/code/(configured codepool)/Daves/OrderModule/controllers/ - et ensuite la correspondance de routage typique s'applique.

+1

Génial, merci! Je vais essayer quand je serai de retour. Je l'ai mis de côté pendant quelques jours pour le laisser mûrir! P –

Questions connexes