2012-04-25 5 views
0

Я пытаюсь редактировать отчеты, созданные здесь, example.com/index.php/admin/sales_order/index/. Мне нужно добавить новый отчет в раскрывающийся список справа.Контроллер не загружается?

Я проследил эту страницу до своего контроллера через URL-адрес и сбросил класс. app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php indexAction() и получил этот класс Ext4mage_Html2pdf_Sales_OrderController, поэтому я знаю, что он переопределяется модулем. В этом случае модуль Ext4mage Html2pdf.

Этот контроллер просто перезаписывает методики Pdf с использованием,

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

Так что я создал свой новый модуль в местном, надеясь перезаписать это как она в сообществе. app/code/local/Daves/OrderModule/controllers/Sales/OrderController.php и размещены в следующем.

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(); 
    } 

} 

Моя ожидается функциональность будет то, что при перезагрузке страницы продаж/заказов в администратора, я получаю пустую страницу, и я не знаю. Это означает, что мой контроллер не загружается.

В моей среде IDE показано, что классы расширяются, а установка die() в метод indexAction() в контроллере Ext4mage_Html2pdf работает должным образом. По какой-то причине он просто пропускает мой контроллер.

Попытка ударить контроллер непосредственно в браузере, используя example.com/admin/daves_ordermodule/sales_order/index также бросает 404.

Должен ли я пытаться перезаписать блоки вместо этого?

Я не создал фанки <rewrite> ручками обновления в моей конфигурации, главным образом потому, что я не уверен, нужны ли они мне или куда они будут идти. Поскольку я знаю, что Magento берет у Zend, это ужасное использование xml, я буду вставлять здесь свои конфиги.


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 В частности узлы

<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

Вы сделали waaay больше, чем вам нужно: -) ... Пожалуйста, добавьте соответствующий '' config из модуля 'Ext4mage_Html2pdf', и вы получите ответ от меня или кого-то еще. – benmarks

+0

Привет @benmarks Теперь я включил узлы маршрутизаторов из etc/config для Html2pdf –

+0

Привет, Читайте ниже, статья - лучшее решение для контроля над контроллером http://www.forum2tech.com/discussion/38/controller-file-was -loaded-but-class-does-not-exist # Item_1 –

ответ

2

Предполагая, что у вас нет контроллеров фронтэнда, настроить конфигурации следующим образом:

<!-- 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> 

Что это делает добавить каталог контроллеров под frontname модуля Mage_Adminhtml в. Значение от <Daves_Om> по существу отображается на текстовый узел + «контроллеры», поэтому app/code/(configured codepool)/Daves/OrderModule/controllers/ - и тогда применяется типичное сопоставление маршрутов.

+1

Блестящий, спасибо! Я отдам это, когда вернусь к нему. Я отложил его на несколько дней, чтобы он стал зрелым! ;П –

Смежные вопросы