向magento adminhtml模块添加块

时间:2012-05-01 17:25:10

标签: php magento adminhtml

我目前正在尝试简单地将一个块添加到自定义Adminhtml模块中。我可以显示块的内容,但它在页面顶部呈现灰色背景,然后标准的magento布局与设计和菜单直接呈现在它下面。

我正在尝试以正确的方式做事,以便学习最佳实践并遵循书籍和教程以及magento核心,但到目前为止还无法正确添加内容。

到目前为止,我有:

public function indexAction()
{
    $this->loadLayout();
    $this->_setTitle();
    $main_block = new Invent_General_Block_Info();
    echo $main_block->toHtml();
    //$this->_addContent($main_block);
    $this->renderLayout();

我可以看到在Mage Core中这样做的一般方法就像是

/**
  * Append customers block to content
  */
    $this->_addContent(
        $this->getLayout()->createBlock('adminhtml/customer', 'customer')
    );

因为我已经创建了块$ main_block,所以对我来说没有意义 - > gt; createBlock,所以我不知道该怎么做。

任何协助都像往常一样受到赞赏。谢谢!

2 个答案:

答案 0 :(得分:5)

我找到了解决这个问题的答案。

当然它会来自艾伦风暴。谢谢艾伦。线程被找到here

所以要解决这个问题,我所做的就是:

在app / design / adminhtml / mythemename / info.phtml中创建一个文件夹

然后在我的控制器动作中我只是做了:

$this->loadLayout();
    $this->_setTitle();
 $this->_addContent($this->getLayout()->createBlock('adminhtml/template')->setTemplate('shipment/info.phtml'));
    $this->renderLayout();

并且效果很好。

答案 1 :(得分:0)

如果是通过CMS创建的静态块

,请使用此选项
/**
  * Append customers block to content
  */

$this->_addContent(
  $this->getLayout()
    ->createBlock('cms/block')
    ->setBlockId('{block_name}')
    ->toHtml() 
);