Magento-Layout - Inhalt wird nicht gerendert / angezeigt

7

Ich habe verschiedene Magento-Tutorials sowie ein Magento-Buch im Layout durchgelesen, aber ich stehe mit dem folgenden Problem fest.

Ich habe ein benutzerdefiniertes Modul erstellt, das sich in der App / code / local / Company / Module / befindet. Ich habe einen Block Company_Module_Block_Ablock erstellt, der sich in Firma / Module / Block / Ablock.php befindet. Ich habe <config> ... <frontend><layout><updates><module><file>module.xml in Firma / Module / etc / config.xml

definiert

config.xml hat auch

%Vor%

Innerhalb dieser modul.xml habe ich:

%Vor%

Ich habe eine Firma / Module / controllers / IndexController.php erstellt und habe dort eine indexAction definiert, die

tut %Vor%

Aber was auch immer ich versuche, ich kann meine ablock.phtml nicht anzeigen lassen. ablock.phtml befindet sich in app / design / frontend / unternehmen / default / template / module / ablock.phtml. Das Thema wurde aktiviert und funktioniert im Allgemeinen auf der Website.

Ich habe sogar versucht, module.xml im Layout so zu ändern, dass es nicht einmal eine Vorlage verwendet und selbst das zeigt nichts an. So -

%Vor%

Übrigens funktioniert das benutzerdefinierte Thema gut, anderen Seiten wird Inhalt an der richtigen Stelle angezeigt.

Ich habe SetEnv MAGE IS DEVELOPER MODE 1 in .htaccess, was helfen soll, auch Warnungen und Dinge anzuzeigen. Aber meine systems.log und exceptions.log haben keine Fehler in ihnen. (Ja Protokollierung ist eingeschaltet)

Hat jemand Ratschläge zur Fehlerbehebung oder kann er einen Fehler in der Konfiguration oder im Code entdecken?

Meine nächste Option scheint zu sein, den Kernmodulcode zu hacken und zu protokollieren, wo meine module.xml geladen und geparst wird, um zu sehen, was dort vor sich geht.

Danke.

    
arunkumar 13.08.2011, 03:19
quelle

3 Antworten

31

Schritte zum Debuggen von Layoutaktualisierungs-XML-Problemen:

  1. Wird Ihre XML-Datei ( local.xml oder module.xml ) in das System

  2. geladen?
  3. Entspricht das Handle-Tag, das Sie in Ihrer Layoutdatei verwendet haben, einem Handle, der für Ihre Anfrage generiert wurde?

Der schnellste Weg zum Debuggen von Schritt 1 ist, während Sie sich im Entwicklermodus mit Fehlern zeigen, führen Sie absichtlich einen nicht wohlgeformten Fehler in Ihre Layoutaktualisierungs-XML-Datei ein.

%Vor%

Wenn der Entwicklermodus aktiviert ist und Sie Ihren Cache gelöscht haben, verursacht das Laden einer Seite mit den oben genannten Informationen einen Fehler. Dadurch wissen Sie, dass Magento versucht, Ihre XML-Datei zu laden. Wenn die Seite ohne Probleme geladen wird, heißt das, dass sich Ihre XML-Datei am falschen Ort befindet oder Sie Ihre XML-Datei in config.xml falsch konfiguriert haben.

Als nächstes prüfen Sie Ihr Layout-Handle. Sie sollten sicherstellen, dass Sie die richtige verwenden. Sie können die Layout-Handles anzeigen, die für eine bestimmte Anfrage verwendet wurden, indem Sie die folgenden nach Ihre loadLayout und renderLayout -Anfrage

aufrufen %Vor%

Ich habe festgestellt, dass die oben genannten Punkte normalerweise für 90% der Layoutprobleme sorgen. Stellen Sie sicher, dass Sie den Prozess ein paar Mal durchlaufen, da es leicht ist, einen Schritt zu verpassen und anzunehmen, dass etwas in Ordnung ist, wenn es nicht stimmt. Mein übliches Risiko, ein Shill zu sein, war ein Teil dessen, warum ich Commerce Bug (kommerzielle Debug-Erweiterung) erstellt habe diese Informationen schnell und auf einen Blick, um bei der Fehlersuche zu helfen.

Aufgrund Ihrer unten stehenden Kommentare scheint das Problem das Layout-Handle zu sein, das Sie verwenden. Das Handle, das vom System generiert wird, ist

%Vor%

Das Handle, das Sie in Ihrer layout.xml definieren, ist jedoch

%Vor%

Dies ist der Handle "Full Action Name". Die typische Syntax dafür ist

%Vor%

Ändern Sie das Handle in module_module_test und Sie sollten eingestellt werden.

    
Alan Storm 13.08.2011, 17:52
quelle
1
  • Haben Sie den Magento-Cache deaktiviert oder aktualisiert?
  • ist Ihr Modul aktiviert? Wird es in System, Konfiguration, Erweitert, Erweitert aufgeführt?
  • Welche Klasse erweitert Ihr Block?

Grüße, Alessandro

    
Alessandro Ronchi 13.08.2011 05:42
quelle
0

Ich kann nicht sagen, ohne all Ihre config.xml zu sehen, vielleicht fehlt Ihnen ein Abschnitt wie folgt:

%Vor%

Um die indexAction oder Ihre indexController zu erreichen, benötigen Sie die Adresse www.example.com/module . Das bedeutet, dass das Layouthandle company_module_index_index verwendet wird, wenn Sie das Layout laden. Übrigens ist das Layout des geposteten Layouts fehlerhaft, das schließende Tag stimmt nicht mit dem öffnenden Tag überein.

    
clockworkgeek 13.08.2011 11:04
quelle

Tags und Links