3 Stimmen

Magento Layout bezogene grundlegende Fragen?

Hier ist, was ich denke, über Magento (plz korrigieren Sie mich, wenn ich falsch bin)

1) Jedes Modul hat sein eigenes layout.xml, das im Ordner /interface/theme/layouts/ gespeichert ist. 2) Magento lädt alle diese Layouts für das aktuelle Thema und erstellt eine große xml-Datei.

Was mich jetzt verwirrt ist.

a) Wenn magento lädt /default/default/ (Schnittstelle & Thema) dann warum alle Vorlagen & Layouts sind innerhalb base/default/?

b) was, wenn ich mein Modul Name "Seite" innerhalb meiner Namespace "Jason" d.h. Jason_Seite, jetzt was passieren wird, um Blöcke in Layout-Dateien, die benannt sind

c) Da alle Layouts in eine große Xml-Datei geladen und zusammengeführt werden, was passiert dann mit all den Referenzblöcken, die dasselbe Namensattribut haben und sich im Handle-Tag "Default" befinden? z.B.

d)Wozu dient das Local.xml-Layout und wie wird es verwendet? e) Welche Beziehung besteht zwischen einem Modul namens foo und seinem Layoutnamen foo.xml? Was passiert mit layout.xml, wenn zwei Module mit demselben Namen in einem anderen Namensraum existieren?

Vielen Dank im Voraus.

3voto

Joe Mastey Punkte 26494

1) Jedes Modul kann Layout-Dateien definieren, die im Ordner /interface/theme/layouts/ abgelegt werden. Sie können dies erreichen, indem Sie die Layouts in der config.xml-Datei Ihres Moduls wie folgt angeben:

<frontend>
    <layout>
        <updates>
            <jason_page>
                <file>jasonpage.xml</file>
            </jason_page>
        </updates>
    </layout>
</frontend>

2) Ja.

a) Die Schnittstelle von Magento ist nach dem Prinzip der Deszendenz aufgebaut. Vorlagen und Layouts werden zunächst aus der von Ihnen gewählten Oberfläche und dem Thema übernommen, und wenn sie dort nicht zu finden sind, werden sie aus der Basis übernommen. Auf diese Weise können Sie bei der Erstellung einer neuen Seite nur die Dinge definieren, die sich gegenüber der Basis ändern.

b) Wenn Sie ein neues Modul mit Blöcken erstellen, müssen Sie den Klassenpfad für diese Blöcke in Ihrer config.xml angeben:

<global>
    <blocks>
        <jason_page>
            <class>Jason_Page_Block</class>
        </jason_page>
    </blocks>
</global>

Damit wird das Tag jason_page um auf Ihre Blöcke zu verweisen. Wenn Sie dann ein Layout definieren, verweisen Sie auf Ihre Blöcke als:

<block type='jason_page/blockname' as='blockname' name='blockname' />

Und Ihre Blöcke werden wie folgt benannt: Jason_Page_Block_Blockname in /app/code/local/Jason/Page/Block/Blockname.php

c) Jedes Mal, wenn Sie eine <reference> Tag und fügen Sie einige untergeordnete Blöcke hinzu, sie werden dem großen Baum hinzugefügt, wie Sie sagen. Achten Sie darauf, dass Sie verschiedene name / as Tags für die Blöcke, und Sie werden gut sein. Wenn der Name identisch ist, werden Sie wahrscheinlich Fehler verursachen.

d) local.xml (in app/etc) definiert einige Konfigurationsparameter für Ihre Website, wie z.B. Datenbankverbindungsinformationen und Verschlüsselungsschlüssel. es hat nichts mit Layouts zu tun.

d Teil 2) Da Sie Ihre Layoutdateien, einschließlich ihrer Namen, selbst definieren, liegt es an Ihnen, Kollisionen zu vermeiden. Die Wahl eines Modulnamens, der eindeutiger als Page ist, würde hier viel bringen. Wenn Sie ein Modul mit demselben Namen wie ein Standardmodul (z. B. Page) haben, stellen Sie der Datei Ihren Namensraum voran, wenn Sie sie in Ihrer config.xml-Datei deklarieren.

Ich hoffe, das hilft!

Danke, Joe

0voto

Unirgy Punkte 1425

Nur um Joes Antwort zu ergänzen: Sie können die Datei interface/theme/layout/local.xml haben, und sie wird nach allen anderen Core- und Modul-Layout-XML-Dateien geladen.

Verwenden Sie diese Datei für lokale Theme-Anpassungen.

0voto

Thomas Punkte 41

Ich habe erst kürzlich einen Beitrag über die Verwendung statischer Blöcke geschrieben. Hier ist der Kern des Beitrags:

Schritt eins: Erstellen Sie einen statischen Block in Ihrem Magento Admin

Magento Admin Panel->Statische Blöcke->Neuen Block hinzufügen

1) Benennen Sie Ihren statischen Block, in diesem Fall Custom footer Links

2) Beschriften Sie den Bezeichner (dies ist der Link, mit dem Sie den Block später aufrufen werden), in diesem Fall custom-footer-links

3) Wählen Sie die Ansicht des Geschäfts aus, in der Sie es darstellen möchten

4) Status auf Aktiviert setzen

2) Jetzt kommt der lustige Teil! Fügen Sie Ihre Navigationslinks in den Block ein. Achten Sie darauf, dass sie zu Farbe und Thema Ihrer Website passen.

Schritt zwei: Einfügen von Code zum Aufrufen des statischen Blocks

Für diesen Teil müssen Sie per FTP auf Ihre Magento-Website zugreifen und footer.phtml ändern app->design->frontend-->default->(Ihr Template)->template->page->footer.phtml

Suchen Sie die Stelle in der Fußzeile, an der Ihre Navigationslinks angezeigt werden sollen, und fügen Sie sie ein:

getLayout()->createBlock('cms/block')->setBlockId('custom-footer-links')->toHtml(); ?>

In den meisten Fällen sollte der statische Block gut angezeigt werden, aber in einigen Fällen müssen Sie einige zusätzliche Schritte unternehmen, damit der Block angezeigt wird.

1) Anstelle des Einfügens:

getLayout()->createBlock('cms/block')->setBlockId('custom-footer-links')->toHtml(); ?>

Verwendung:

benutzerdefinierte Fußzeilen-Links

2) Ändern Sie catalog.xml app->Design->Frontend->Standard->f002->Layout->Katalog.xml

Hinzufügen unter

benutzerdefinierte Fußzeilen-Links

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X