管理グリッドコンテナが読み込まれない


7

まず、グリッドコンテナーを読み込んで、コンテナーの見出しを表示しようとしています。ブロックファイルは正常に動作しています。コンテナーのパスはSuper-> Awesome-> Block-> Adminhtml-> Awesome.phpで、以下が含まれています

<?php
class Super_Awesome_Block_Adminhtml_Awesome extends Mage_Adminhtml_Block_Widget_Grid_Container
{
    public function __construct()
    {
        $this->_blockGroup = 'super_awesome';
        $this->_controller = 'adminhtml_awesome';
        $this->_headerText = Mage::helper('super_awesome')->__('Manage');
        parent::__construct();
    }

}

レイアウトファイルsuper_awesome.xml

<?xml version="1.0"?>
<layout>
    <adminhtml_example_index>
        <reference name="content">
            <block type="super_awesome/adminhtml_awesome" name="super_awesome"></block>
        </reference>
    </adminhtml_example_index>
</layout>

内部public function __construct()で何かをエコーすると、コンテンツが表示されますが__contruct()、上記のように適切なメソッドを追加すると、空白のページが表示されます。内部ブロック(Grid.php)も追加する必要がありますか?そうすると、私のコンテナテキストが表示されますか?コンテナブロックAwesome.phpをGrid.phpに変更する必要がありますか?

Config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Super_Awesome>
            <version>0.1.0</version>
        </Super_Awesome>
    </modules>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <super_awesome before="Mage_Adminhtml">Super_Awesome</super_awesome>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    <adminhtml>
        <layout>
            <updates>
                <super_awesome>
                    <file>super_awesome.xml</file>
                </super_awesome>
            </updates>
        </layout>
    </adminhtml>
    <global>
        <blocks>
            <super_awesome>
                <class>Super_Awesome_Block</class>
            </super_awesome>
        </blocks>
        <helpers>
            <super_awesome>
                <class>Super_Awesome_Helper</class>
            </super_awesome>
        </helpers>
    </global>
</config>

お持ちSuper_Awesome_Block_Adminhtml_Awesome_Grid.phpですか?
Adarsh Khatri 2015年

回答:


3

__constructメソッドに追加するコードは、不足していると思われる内部ブロックの詳細を設定します。

public function __construct()
    {
        $this->_blockGroup = 'super_awesome';
        $this->_controller = 'adminhtml_awesome';
        $this->_headerText = Mage::helper('super_awesome')->__('Manage');
        parent::__construct();
    }

これらの設定は、以下のようにparents _prepareLayout()メソッドで使用されます。

protected function _prepareLayout()
{
    $this->setChild( 'grid',
        $this->getLayout()->createBlock( $this->_blockGroup.'/' . $this->_controller . '_grid',
        $this->_controller . '.grid')->setSaveParametersInSession(true) );
    return parent::_prepareLayout();
}

あなたにとってこのコードのビットは最終的に

  $this->getLayout()->createBlock('super_awesome/adminhtml_awesome_grid');

つまり、Super_Awesome_Block_Adminhtml_Awesome_Grid拡張するブロックを作成する必要がありますMage_Adminhtml_Block_Widget_Grid

Mage_Adminhtml_Block_Poll_Grid この欠けているグリッドブロックの例として使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.