Я пытаюсь создать собственный отчет в бэкэнде Magento; Моя стратегия состоит в том, чтобы сначала заставить мой новый модуль имитировать существующие функции отчетов / продаж / заказов в административной панели, а затем внести необходимые изменения, как только я увижу, как эти части сочетаются друг с другом. Я добавил свой новый пункт меню, и модуль загружает базовый макет администратора и несколько хлебных крошек, поэтому конфигурация модуля и конфигурация контроллера настроены достаточно правильно. Однако блоки макетов не загружаются. Вот код проблемы. Предположим, у меня есть копия файла соответствующего блока в app / code / local / BULX / Reports / Block / Report / Sales / Sales / Grid.php:
class BULX_Reports_IndexController extends Mage_Adminhtml_Report_SalesController {
public function salesAction {
//...otherwise identical to parent class
//should load reference to Grid block
$gridBlock = $this->getLayout()->getBlock('report_sales_sales.grid');
/* in original Mage module, will output Mage_Adminhtml_Block_Report_Sales_Sales_Grid
in BULX_Report, outputs nothing. */
echo get_class($gridBlock)."<br>";
Мой файл конфигурации имеет
<global>
<blocks>
<bulx_reports>
<class>BULX_Reports_Block</class>
</bulx_reports>
</blocks>
...
</global>
Если я изменю код на
$gridBlock = $this->getLayout()->getBlock('bulx_reports/test');
со следующим файлом в app / code / local / BULX / Reports / Block / Test.php
class BULX_Reports_Block_Test extends Mage_Core_Block_Abstract
{
protected function _toHtml() {
echo 'to html';
}
}
Я получаю тот же результат: нет вывода в HTML, нет вывода из вызова get_class
Я добавил записи журнала, как предложено здесь:
http://www.fontis.com.au/blog/magento/magento-debugging-loading-blocks-layouts-and-config-files
и из этого ясно, что Magento не находит никаких блоков компоновки в моем новом модуле. Уроки Alan Storm, как правило, невероятно полезны, но я не могу найти то, что мне нужно, в alanstorm.com/magento_admin_controllers (извините, недостаточно репутации, чтобы иметь две гиперссылки); насколько я могу судить, я настроил свою конфигурацию идентично. Сложность в том, что строка report_sales_sales.grid нигде не появляется - эти сетки появляются во многих местах администратора, и они создаются динамически с помощью структуры, которую я не нашел.
Чего мне не хватает? Это Enterprise Edition, 1.8. Спасибо!