Magento: Statischen Block ausgeben

Magento: Statischen Block ausgeben

Eine große Stärke von Magento ist die Flexibilität. Diese Flexibilität wird unter anderem auch von dem Block / Page Konzept gewährleistet. Dadurch ist es möglich bestimmte Content Blöcke auf der Seite immer wieder zu verwenden. Super ausspielen kann Magento diesen Trumpf bei einem Impressum oder den AGB. Das Impressum muss bei einem (deutschen) Shop sehr oft angezeigt werden – ob in den Transaktionsemails oder auf der Webseite. Hier ist es natürlich angenehm, wenn man vVeränderungen nur an einer Stelle im System ausführen muss.

Magento Statischer Block

Magento Admin Menu – Statischer Block

Es gibt in Magento verschiedene Möglichkeiten diesen Block dann auf einer Seite oder in einer Email wieder auszugeben. Hier will ich die wichtigsten auflisten.

Per PHP

Blöcke kann man per PHP direkt im Template ausgeben. Es ist dabei auch möglich den Title und den Content seperat auszugeben.

In diesem Beispiel wird der Block mit dem code footer_links ausgegeben. Auf diese Art und Weise wird allerdings nur der Content des Blocks ausgegeben. Um auch den Title auszugeben, sollte man darüber noch folgenden Code einfügen:

Durch den Aufruf des Models cms/block kann der Code nicht nur in Templates, sondern auch in Modul Blöcken verwendet werden. Allerdings sollte man versuchen das zu vermeiden, da es kein sauberer Programmierstil ist. In den Template selbst kann man den Aufruf des Models auch durch ein $this ersetzen.

 Per XML

Statische Blöcke können auch mit den Layout XML Dateien auf einer Seite eingebunden werden. Sinnvoll ist das vor allem bei statischen Blöcken, welche fest im Design verankert sind und trotzdem von Admins gepflegt werden sollen. Eingebunden werden die Statischen Blöcke so:

Auch in diesem Beispiel muss der Block Code footer_links durch einen anderen Block Code ersetzt werden. Das Namen Attribut kann man frei vergeben. Allerdings sollte der Namen auf den Block zurückführen, damit ein anderer Programmierer hier zusammenhänge erkennen kann.

Per CMS einbinden

Neben den zwei klassischen Methoden (XML und PHP) gibt es auch noch die Möglichkeit einen Block per CMS Funktion einzubinden. Das funktioniert beispielsweise in einer CMS Seite, einem Email Template oder einem anderen Block. Der Syntax zum einbinden eines Blocks ist folgender:

Auch dieses mal muss man die Block Id (in diesem Fall footer_links) austauschen. Durch diesen Code Snippet wird der Block in die Templates eingebunden. Sinn macht das vor allem beim Impressum oder den AGB.

Die Aufteilung in Statische Blöcke und Pages macht bei Magento sehr viel Sinn. So können Kunden ihr Impressum auf die schnelle anpassen und müssen nicht 20-30 Templates verändern. Auch in anderen Fällen kann man die Statischen Blöcke arbeitssparend verwenden.

Alexander Ostermeyr

Ich beschäftigt mich seit mehr als 10 Jahren mit PHP und der Webentwicklung. Seit über 7 Jahren bin ich als Freelancer in München tätig. Seit Anfang 2009 arbeite ich intensiv mit Magento und habe diverse Module für das Shop System entwickelt.

Haben Sie weitere Fragen? Kontaktieren Sie mich!

2 Kommentare

  1. Hallo,
    ich habe nach dem Umzug von Magento 1.7.0.2 nach 1.9.1 auf eine Subdomain noch Probleme und hoffe Sie können mir helfen.

    1. Die AGB und das Widerrufsrecht wird im Checkout nicht angezeigt. In den neuen Fenstern steht aber der richtige Code {{block type=“cms/block“ block_id=“gs_revocation“}}.

    2. Der Quickview-Content kann nicht geladen werden. (nicht ganz so wichtig)

    Bin für jeden Hinweis dankbar!
    Vielen Dank und Grüße
    Jörg Prüfert

    antworten
    • Hallo Herr Prüfert,

      ist der Block noch unter dem Code vorhanden?
      Bei einem solchen Update kann leider immer sehr viel schief gehen und daher ist es schwierig eine Pauschal-Aussage zu treffen. Gerne können Sie mich aber per Kontaktformular kontaktieren, dann helfe ich Ihnen gerne weiter.

      Viele Grüße,
      Alexander

      antworten

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *