Я хочу разместить новый блок в представлении продаж -> транзакции ->. Поэтому я создал новый блок и добавил этот блок в шаблон.
Веб / приложение / дизайн / adminhtml / по умолчанию / компания / макет / local.xml
<adminhtml_sales_transactions_view>
<reference name="content">
<block type="company_module/adminhtml_sales_transactions_error_grid" name="sales_transactions.error.grid" as="error_grid"/>
</reference>
</adminhtml_sales_transactions_view>
Веб / приложение / код / местные / компания / модуль / блок / Adminhtml / Продажи / Операции / ошибка / Grid.php
class Comapny_Module_Block_Adminhtml_Sales_Transactions_Error_Grid extends Mage_Adminhtml_Block_Sales_Transactions_Grid
{
public function __construct()
{
parent::__construct();
$this->setId('transactionErrorGrid');
$this->setPagerVisibility(false);
$this->setFilterVisibility(false);
}
....
Класс выглядит как web / app / code / core / Mage / Adminhtml / Block / Sales / Transactions / Detail / Grid.php.
/web/app/design/adminhtml/default/company/template/sales/transactions/detail.phtml
<?php echo $this->getChildHtml('error_grid') ?>
Почему новый блок не отображается?
редактировать:
ОК, я проверил exeption.log и нашел это:
exception 'Mage_Core_Exception' with message 'Invalid block type: Mage_Company_Module_Block_Adminhtml_Sales_Transactions_Error_Grid' in /var/www/html/web/app/Mage.php:595
Stack trace:
#0 /var/www/html/web/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block t...')
#1 /var/www/html/web/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('company_module...', Array)
#2 /var/www/html/web/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('company_module...', 'error_grid')
#3 /var/www/html/web/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('company_module...', 'error_grid')
Я отладил это и обнаружил, что что-то не так в web / app / code / core / Mage / Core / Model / Config.php в функции getGroupedClassName. Там magento загружает groupType из конфига, и это ноль. Так что эта функция добавляет Mage_ перед моим именем класса, и этот Mage-Class не существует.
Любые идеи, как это исправить?
Проблема была в неправильном имени группы в файле config.xml с расширением. После изменения этого проблема решена.
Других решений пока нет …