Magento Theme-Entwicklung Vorlagendateien

In diesem Artikel werden die Grundlagen der Magento-Vorlagendateien behandelt. Wir werden ihre Einführung durchgehen und einige grundlegende Änderungen vornehmen. 

Dazu gehören das Anzeigen von vorgestellten Produkten auf der Startseite und das Laden von JavaScript in der Fußzeile.

Im Anschluss an unseren vorherigen Artikel haben wir gesehen, dass die Layoutdateien jeden Block in einem Design steuern und entscheiden, was angezeigt wird und nicht angezeigt wird. Was in diesem Block gerendert wird, ist der Ort, an dem die Vorlagendateien zum Einsatz kommen.

In diesem Artikel konzentrieren wir uns auf die folgenden Verzeichnisse:

  • Vorlage - App / Design / Frontend ///Vorlage/
  • Gebietsschema - App / Design / Frontend /// locale /

Wenn Sie gerade bei uns sind, schauen Sie sich bitte die vorherigen Artikel dieser Serie an.

Als Referenz haben wir behandelt:

  1. Eine Einleitung
  2. Layoutdateien

Ohne weiteres zu tun, lass uns anfangen.

Vorlage

Magento-Vorlagendateien sind PHTML-Dateien, die aus einer Mischung aus HTML und PHP bestehen, von denen einige eine Seite wie rendern 1 column.phtml während andere bestimmte Blöcke innerhalb einer Seite wie z header.phtml

Während der Entwicklung einer Website sind dies die Dateien, mit denen wir hauptsächlich arbeiten werden, also für Front-End-Entwickler. Sobald das XML vorhanden ist und eine Vorlage aufgerufen wird, wird erwartet, dass die Datei analysiert und entsprechend angezeigt wird.

Es gibt Hunderte von Vorlagendateien. Wenn Sie wissen, welche der Dateien in der Hierarchie bearbeitet und anschließend nachverfolgt werden muss, kann dies beim ersten Start schwierig sein. 

Alles ist gut, es gibt ein paar nette Admin-Bereichseinstellungen, die uns helfen können, sie werden uns Stunden von Kopfschmerzen ersparen!

Es ist wichtig zu beachten, dass wir die folgenden Einstellungen nur im Bereich "Website" oder "Store View" verwenden können. Die Einstellungen sind für den Bereich "Standardkonfiguration" nicht verfügbar. Daher müssen Sie den Bereich nach der Anmeldung ändern Dies ist jedoch nützlich, da wir die Einstellungen nur für eine bestimmte Website oder Store-Ansicht und nicht global umschalten können.

Vorlagenhinweise

Diese erkennen schnell, welche Dateien für eine bestimmte Seite geladen werden, indem sie uns den Pfad zur Datei anzeigen. Das Ein- und Ausschalten ist eine schnelle Einstellungsänderung im Admin-Bereich. 

Gehe rüber zu System> Konfiguration. Blättern Sie dann im linken Menü ganz nach unten und klicken Sie unter "Erweitert" auf "Entwickler". Nachdem wir den Bereich in "Main Website" geändert haben, steht uns die Einstellung unter "Debug" zur Verfügung..

Es scheint, dass nichts passiert ist, wenn Sie auf config speichern geklickt haben. Wenn Sie jedoch zum Front-End der Website gehen, z. B. zur Startseite, und die Seite aktualisieren, werden die Hinweise angezeigt. 

Damit wissen wir jetzt, wo sich die Dateien befinden. Wenn Änderungen erforderlich sind, kopieren Sie die Datei einfach von der Basis zu unserem Design und ändern Sie sie nach Bedarf.

Wir können "Add Block Name to Hints" auch auf "Yes" setzen, wenn wir weitere Informationen wünschen. Diese Informationen werden im Allgemeinen für die Back-End-Entwicklung verwendet, sodass ich mich nicht zu sehr um diese Einstellung kümmern muss.

Nun zum Code. Ich werde ein paar Modifikationen durchlaufen, die oft in der Themenentwicklung verwendet werden, aber auch hier werde ich nur die Oberfläche berühren, die möglich ist.

  1. Vorgestellte Produkte auf der Startseite anzeigen
  2. JavaScript wird in die Fußzeile geladen

Lass uns anfangen…

1. Vorgestellte Produkte auf der Homepage anzeigen

Dieser Punkt muss die häufigste Anfrage auf einer Website sein. Jeder möchte eine Handvoll Produkte auf der Landing Page seiner Website vorzeigen?

Es ist tatsächlich viel einfacher als Sie denken, mit einer Kombination aus XML und PHP können wir dies in kürzester Zeit erreichen. Wie bei vielen Dingen in Magento gibt es mehr als einen Weg, dies zu tun. Ich werde Ihnen zeigen, was ich für die einfachste Methode halte.

Zuerst müssen wir unsere Kategorie im Admin-Bereich erstellen, in der unsere Produkte gespeichert werden. Einmal eingeloggt, vorbei an Katalog> Kategorien verwalten. In diesem Beispiel erstellen wir eine Unterkategorie unter root. Daher müssen wir auf "Stammkatalog" und dann auf die Schaltfläche "Unterkategorie hinzufügen" klicken. Geben Sie einen Titel für die Kategorie ein, stellen Sie sicher, dass "Ist aktiv" auf "Ja" gesetzt ist, und klicken Sie dann auf "Kategorie speichern"..

Notieren Sie sich die ID-Nummer der Kategorie oben, da wir diese später benötigen werden:

Dies ist ein guter Zeitpunkt, um der gerade erstellten Kategorie auch einige Produkte hinzuzufügen. Klicken Sie dazu auf die Registerkarte "Kategorie-Produkte" und wählen Sie die Produkte aus, die Sie anzeigen möchten. Vergessen Sie nicht, auf "Kategorie speichern" zu klicken, wenn Sie fertig sind.

Als nächstes müssen wir unsere Vorlage wo erstellen für jeden Schleife wird ausgeführt.

Wir stützen uns dabei auf die Produktlistenvorlage, die den gesamten erforderlichen Code für uns enthält. Wir müssen nur ein paar Anpassungen vornehmen, um unsere Anforderungen zu erfüllen.

app / design / frontend / base / default / catalog / product / list.phtml

Kopieren nach:

App / Design / Frontend //default/catalog/product/list-home-featured.phtml

Wir werden dann einige Änderungen an unserer Datei vornehmen.

  1. Laden Sie unsere Produktkollektion über die Kategorie ID
  2. Nur eine Ansicht anzeigen, ich habe die Rasteransicht ausgewählt, kann diese jedoch ändern
  3. Entfernen Sie die Symbolleiste, da diese nicht mehr benötigt wird
  4. Fügen Sie in unserer Kategorie einen Namen für eine Überschrift hinzu

Die fertige Datei sieht wie folgt aus:

 load ($ _ categoryId); $ _productCollection = $ _category-> getProductCollection (); $ _productCollection-> addAttributeToSelect ('*'); ?> 

getName (); ?>

count ()):?>

__ ('Es gibt keine Produkte, die der Auswahl entsprechen.)?>

  • getProductUrl ()?> "title ="stripTags ($ this-> getImageLabel ($ _ product, 'small_image'), null, true)?> "> <?php echo $this->stripTags ($ this-> getImageLabel ($ _ product, 'small_image'), null, true)?>

    getProductUrl ()?> "title ="stripTags ($ _ product-> getName (), null, true)?> "> getName (); ?>

    getRatingSummary ()):?> getReviewsSummaryHtml ($ _ product, 'short')?> getPriceHtml ($ _ product, true)?>
    isSaleable ()):?>

    __ ("Nicht vorrätig")?>

      Helfer ('Wunschliste') -> isAllow ()):?>
    • helper ('wishlist') -> getAddUrl ($ _ product)?> ">__ ('Add to Wishlist')?>
    • getAddToCompareUrl ($ _ product)):?>
    • | ">__ ('Zum Vergleich hinzufügen')?>

Vergessen Sie nicht, den Wert von zu ändern $ _categoryId Variable zu Ihrer Kategorie-ID.

Als letztes müssen wir nur einen XML-Block erstellen, der in die oben erstellte Vorlage geladen wird. Wir werden das in unserem tun local.xml Datei wie folgt:

        

Das ist alles, was es gibt, ziemlich geradeaus, richtig? Unten ist ein Screenshot des fertigen Produkts.

2. Laden Sie JavaScript in die Fußzeile

Zunächst einmal denken wir, dass Magento diese Fähigkeit bereits in XML integriert hat, wenn wir unsere Skripte hinzufügen, eine Art Parameter, die wir übergeben könnten, aber wir wären falsch - Magento macht es uns nicht so einfach!

WordPress hingegen erledigt dies perfekt über die wp_register_script. Möglicherweise greift ein Back-End-Entwickler dies auf und fügt die Möglichkeit hinzu, einen zusätzlichen XML-Parameter zu übergeben. Jetzt gibt es ein Nebenprojekt, an dem sich jemand beteiligen kann. 

Irgendwelche Abnehmer?

Zum Glück gibt es jetzt eine alternative Methode, um dies zum Laufen zu bringen.

Ich denke, es ist wichtig, dieses Thema zu behandeln, da es die Geschwindigkeit unserer Website verbessern wird, die jeder möchte. Ich neige dazu, Magento-Kern-JavaScript-Dateien so zu belassen, wie sie im , Ich kann sie minieren, aber abgesehen davon bleiben sie so wie sie sind.

Alles, was wir zu Magento hinzufügen, wie zum Beispiel jQuery und unsere eigenen benutzerdefinierten Funktionen, schadet dem Laden nicht. Wenn ich eine Website entwickle, neige ich dazu, die Website im Auge zu behalten Wenn ein Drittanbieter-Modul installiert wird, fügt es normalerweise etwas hinzu. Mit etwas Arbeit können wir das XML-Modul des Drittanbieters bearbeiten und in die Fußzeile laden - die zusätzlichen fünf Minuten sind es wert!

Zuerst müssen wir einen XML-Block in unserem erstellen local.xml Datei innerhalb des Standardlayouts wie folgt:

      skin_jsjs / build / jquery.min.js    

Beachten Sie, dass wir dieselbe Methode zum Hinzufügen von JavaScript-Dateien verwenden wie im vorherigen Artikel. Wenn Sie eine Auffrischung benötigen, klicken Sie hier. Zu Demonstrationszwecken fügen wir eine lokale Kopie von jQuery hinzu.

Jetzt können wir unsere Vorlagendatei erstellen. Erstellen Sie eine neue Datei in:

App / Design / Frontend //default/page/html/footer-js.phtml

mit folgendem Inhalt:

getCssJsHtml ()?>

Als letztes müssen wir kurz vor dem Schließen eine einzige Codezeile in unsere Vorlagendateien einfügen Etikett.

Unsere Vorlagendateien finden Sie unter App / Design / Frontend / Basis / Standard / Seite / nicht zu vergessen, sie auf unser eigenes Thema zu kopieren. Es gibt mehrere Vorlagendateien, die ich unten zusammengestellt habe:

  • 1 column.phtml
  • 2columns-left.phtml
  • 2columns-right.phtml
  • 3columns.phtml

Unten ist ein Beispiel, wie es aussehen sollte:

getAbsoluteFooter ()?>  getChildHtml ('footer.js')?>  

Wenn alle Schritte abgeschlossen sind, wenn wir unsere Seite und den Quelltext aktualisieren, wird das Skript vor dem Schließen jetzt geladen Etikett.

Wenn Sie es soweit geschafft haben, ist meiner Meinung nach ein Glückwunsch angebracht! Es gibt viel zu sehen, aber hoffentlich macht alles Sinn.

Verpacken!

Diese Serie ist nur die Spitze des Eisbergs. Magento ist eine sehr leistungsstarke Plattform und hat viel mehr zu bieten als das, was wir bisher beschrieben haben. Ich hoffe, es hat Ihnen einen Einblick in die Themenprinzipien von Magento gegeben und Sie können es sinnvoll einsetzen.

Es gibt keinen besseren Weg, um Magento zu lernen, aber wenn Sie einfach stecken bleiben, werden Sie die Seile in kürzester Zeit erlernen.

Wie immer bin ich Ihnen gerne behilflich, wenn Sie bei irgendetwas eine Hand brauchen. Schauen Sie sich auch meine Magento Boilerplate an, die eine ganze Reihe von Leckereien enthält.

Bis zum nächsten Mal.