我试图在Magento后端创建一个自定义报告;我的策略是首先让我的新模块在管理面板中模拟现有的Reports/Sales/Orders功能,然后在看到这些部分如何组合在一起后进行所需的更改。我添加了我的新菜单项,并且该模块加载了基本的管理布局和一些面包屑,因此模块配置和控制器配置设置得当。但是,布局块未加载。这是问题代码。假设我有相关的块文件的副本,在应用程序/代码/本地/ BULX /报告/座/报告/销售/销售/ Grid.php:为新的管理模块配置Magento布局
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');
与应用程序/代码以下文件/本地/ BULX /报告/座/ 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'字符串不会出现在任何地方 - 这些网格出现在管理员的很多地方,并且它们是通过我没有找到的结构动态构建的。
我错过了什么?这是企业版1.8。谢谢!
管理员布局手柄是否始终必须以adminhtml开头?也许这是我的问题:我的句柄执行bulxreport_index_sales,但也许它应该是adminhtml_bulxreport_index_sales。但是,这似乎也不起作用。不幸的是,我不得不把它搁置几天,并且不能再补充几次 – kevinpaulconnor 2010-10-26 12:57:48