Quản trị container không tải


7

Trước hết tôi đang cố gắng tải container lưới và hiển thị tiêu đề container. Tập tin khối của tôi đang hoạt động tốt. Đường dẫn container là Super-> Awesome-> Block-> adminhtml-> Awesome.php chứa

<?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();
    }

}

tập tin bố cục super_awgie.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>

Nếu tôi lặp lại một cái gì đó bên trong public function __construct(), nó sẽ hiển thị nội dung nhưng khi thêm __contruct()phương thức thích hợp như ở trên thì nó sẽ hiển thị một trang trống. Tôi có cần thêm khối nội bộ (Grid.php) không, sau đó văn bản chứa của tôi sẽ xuất hiện? Khối container Awesome.php nên được thay đổi thành Grid.php?

Cấu hình

<?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>

Bạn có của bạn Super_Awesome_Block_Adminhtml_Awesome_Grid.phpkhông
Adarsh ​​Khatri

Câu trả lời:


3

Mã bạn đang thêm trong phương thức __construct của bạn sẽ đặt chi tiết cho khối bên trong mà tôi nghĩ bạn đang thiếu.

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

Các cài đặt này được sử dụng trong phương thức _prepareLayout () của cha mẹ như dưới đây.

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

Đối với bạn, đoạn mã này sẽ kết thúc như

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

Có nghĩa là bạn cần tạo khối Super_Awesome_Block_Adminhtml_Awesome_Gridnên mở rộng Mage_Adminhtml_Block_Widget_Grid.

Mage_Adminhtml_Block_Poll_Grid có thể được sử dụng làm ví dụ cho khối lưới bị thiếu này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.