Auf der Admin-Seite wird meine Vorlage nicht angezeigt
-
13-12-2019 - |
Frage
Ich habe ein benutzerdefiniertes Modul mit Folgendem:
magento-project/app/code/local/Hunique/Customs/etc/config.xml
<?xml version="1.0" ?>
<config>
<modules>
<Hunique_Customs>
<version>1.0.1</version>
</Hunique_Customs>
</modules>
<global>
<models>
<custommodule>
<class>Hunique_Customs_Model</class>
<resourceModel>custommodule_resource</resourceModel>
</custommodule>
<custommodule_resource>
<class>Hunique_Customs_Model_Resource</class>
<entities>
<custommodule>
<table>custommodule</table>
</custommodule>
<questions>
<table>questions</table>
</questions>
<answers>
<table>answers</table>
</answers>
</entities>
</custommodule_resource>
</models>
<resources>
<custommodule_setup>
<setup>
<module>Hunique_Customs</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</custommodule_setup>
<custommodule_read>
<connection>
<use>core_read</use>
</connection>
</custommodule_read>
<custommodule_write>
<connection>
<use>core_write</use>
</connection>
</custommodule_write>
</resources>
<blocks>
<custommodule>
<class>Hunique_Customs_Block</class>
</custommodule>
</blocks>
<helpers>
<hunique_customs>
<class>Hunique_Customs_Helper</class>
</hunique_customs>
</helpers>
</global>
<frontend>
<routers>
<custommodule>
<use>standard</use>
<args>
<module>Hunique_Customs</module>
<frontName>custommodule</frontName>
</args>
</custommodule>
</routers>
<layout>
<updates>
<custommodule>
<file>custommodule.xml</file>
</custommodule>
</updates>
</layout>
</frontend>
<admin>
<routers>
<adminhtml>
<use>admin</use>
<args>
<modules>
<Hunique_Customs before="Mage_Adminhtml">Hunique_Customs</Hunique_Customs>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<adminhtml>
<layout>
<updates>
<custommodule>
<file>custommodule.xml</file>
</custommodule>
</updates>
</layout>
</adminhtml>
Dann habe ich die /magento-project/app/code/local/Hunique/Customs/etc/adminhtml.xml im selben Ordner
<config>
<menu>
<hunique>
<title>Hunique</title>
<sort_order>1</sort_order>
<children>
<customs_qa module="hunique_customs">
<title>Questions And Answers</title>
<sort_order>1</sort_order>
<action>adminhtml/custommodule</action>
</customs_qa>
</children>
</hunique>
</menu>
Dann habe ich im Design:/magento-project/app/design/adminhtml/default/default/layout/custommodule.xml
<?xml version="1.0"?>
<layout>
<adminhtml_custommodule_index>
<reference name="content">
<block type="core/template" output="toHtml" name="templateBlock" template="custommodule/questions-and-answers.phtml" />
</reference>
</adminhtml_custommodule_index>
</layout>
Und ich habe die Datei/Magento- Project/App/Design/adminHtml/Standard/Standard/templates/customModule/Fragen-und-Answers.phtml, aber das enthält nur ein H1-Tag mit dem Test jetzt.
Ich habe auch den Controller:/magento-project/app/code/local/Hunique/Customs/controllers/CustommoduleController.php
<?php
class Hunique_Customs_CustommoduleController extends Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
var_dump(Mage::getSingleton('core/layout')->getUpdate()->getHandles());
$this->loadLayout();
$this->renderLayout();
}
}
Ich habe den Var-Dump, um zu sehen, ob ich irgendwelche Handles habe, aber das ist ein leeres Array.Meine Seite wird über das Admin-Menü geladen.Meine Routen und mein Admin-Menü funktionieren einwandfrei, ich bekomme mein HTML einfach nicht angezeigt ...Kann mir jemand den richtigen Weg weisen?
Lösung
Der von Ihnen bereitgestellte Code sollte so funktionieren, wie er ist.Obwohl beide deine config.xml
Und adminhtml.xml
Dateien haben ihre nicht <config>
Tags geschlossen, ich vermute, Sie haben gerade diesen Fehler gemacht, als Sie den Code hier eingefügt haben, denn sonst würden Sie einen Fehler anstelle einer Seite mit leerem Inhaltsbereich sehen.
Mein Rat ist, dass Sie nach Tippfehlern in Dateinamen oder falschen Verzeichnisverschachtelungen suchen sollten.Auch dein var_dump
ist leer, da Sie versuchen, Layout-Handles anzuzeigen, bevor das Layout tatsächlich geladen wird.Sie müssen die ersten beiden Zeilen in Ihrer Aktion vertauschen:
public function indexAction() {
$this->loadLayout();
var_dump(Mage::getSingleton('core/layout')->getUpdate()->getHandles());
$this->renderLayout();
}
Außerdem können Sie sicherstellen, dass Ihr Admin-Panel das verwendet default/default
Paket/Thema oder dass es sich in der Fallback-Kette befindet.Wenn ein anderes Paket verwendet wird (z. B. custompackage/default
), wird es nicht reinschauen default/default
.Wenn Sie sich nicht sicher sind, können Sie jederzeit Ihre Layout-Update-XML und Ihre Vorlage einfügen base/default
stattdessen.Es existiert nicht im Admin-Panel, aber Sie können es erstellen und es wird als letztes Fallback verwendet.
Lassen Sie mich wissen, ob es hilft.