Zunächst versuche ich, einen Gittercontainer zu laden und die Containerüberschrift anzuzeigen. Meine Blockdatei funktioniert einwandfrei. Der Containerpfad lautet 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();
}
}
Layoutdatei 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>
Wenn ich etwas im Inneren wiedergebe public function __construct()
, wird der Inhalt angezeigt __contruct()
, aber wenn Sie die oben beschriebene Methode hinzufügen , wird eine leere Seite angezeigt. Muss ich auch einen internen Block (Grid.php) hinzufügen, damit mein Containertext angezeigt wird? Containerblock Awesome.php sollte in Grid.php geändert werden?
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
?Antworten:
Der Code, den Sie in Ihrer __construct-Methode hinzufügen, legt die Details für den internen Block fest, den Sie meiner Meinung nach vermissen.
Diese Einstellungen werden in der übergeordneten Methode _prepareLayout () wie folgt verwendet.
Für Sie wird dieses Codebit als enden
Das heißt, Sie müssen den Block erstellen, der
Super_Awesome_Block_Adminhtml_Awesome_Grid
erweitert werden sollMage_Adminhtml_Block_Widget_Grid
.Mage_Adminhtml_Block_Poll_Grid
könnte als Beispiel für diesen fehlenden Gitterblock verwendet werden.quelle