Jetzt für alle Magento-Versionen
Im Wiki von Magento wird beschrieben, wie man eigene Layouts in das CMS integriert. Allerdings in der Form, dass man Core-Files bearbeitet. Das ist für mich keine akzeptable Lösung.
Wir werden dafür ein Modul erstellen. So bleibt der Core unberührt und Updates neuer Magentoversionen überschreiben unsere Anpassung nicht.
Seit Magento Version 1.3.2 hat sich die Vorgehensweise geändert. nachfolgende zeige ich beide Lösungen.
Als erstes legen Sie eine Verzeichnisstruktur wie im Bild links an. Sie können nach Fertigstellung dieses Tutorials den kompletten Ordner app auf Ihren Webserver kopieren.
Damit Magento unsere Erweiterung erkennt und registriert, erstellen wir die Datei app/etc/modules/mxperts_layout.xml mit folgendem Inhalt:
<?xml version="1.0"?> <config> <modules> <Mxperts_CmsPageLayouts> <codePool>local</codePool> <active>true</active> </Mxperts_CmsPageLayouts> </modules> </config>
Als nächstes erweitern wir die Konfiguration aus dem Core. Das Original bis zu Magento 1.3.2 befindet sich in app\code\core\mage\cms\etc\config.xml (ab Zeile 45).
Ab Version 1.3.2 befindet sich die Konfiguration in app\code\core\Mage\Page\etc\config.xml (ab Zeile 46).
Folglich verwenden wir diese Struktur und fügen unser(e) Template(s) hinzu. Dazu erstellen wir die Datei app\code\local\Mxperts\CmsPageLayouts\etc\config.xml
<?xml version="1.0"?>
<config>
<global>
<cms>
<layouts>
<mxperts_page_one>
<label>Mxperts-Layout 1</label>
<template>page/mxperts-1.phtml</template>
</mxperts_page_one>
<mxperts_page_two>
<label>Mxperts-Layout 2</label>
<template>page/mxperts-2.phtml</template>
</mxperts_page_two>
</layouts>
</cms>
</global>
</config>
<?xml version="1.0"?>
<config>
<global>
<page>
<layouts>
<mxperts_page_one module="page" translate="label">
<label>Mxperts-Layout 1</label>
<template>page/mxperts-1.phtml</template>
<layout_handle>page_mxperts_page_one</layout_handle>
</mxperts_page_one>
<mxperts_page_two module="page" translate="label">
<label>Mxperts-Layout 2</label>
<template>page/mxperts-2.phtml</template>
<layout_handle>page_mxperts_page_two</layout_handle>
</mxperts_page_two>
</layouts>
</page>
</global>
</config>
Ab Version 1.3.2 müssen Sie außerdem das Layout Handle eintragen. Dies erfolgt in der Datei app/design/frontend/default/[ihr theme]/layout/page.xml ab Zeile 123.
<!-- Custom page layout handles -->
<page_mxperts_page_one>
<reference name="root">
<action method="setTemplate"><template>page/mxperts-1.phtml</template></action>
<action method="setIsHandle"><applied>1</applied></action>
</reference>
</page_mxperts_page_one>
<page_mxperts_page_two>
<reference name="root">
<action method="setTemplate"><template>page/mxperts-2.phtml</template></action>
<action method="setIsHandle"><applied>1</applied></action>
</reference>
</page_mxperts_page_two>
Das wichtigste sind unsere neuen Templates. In meinem Fall habe ich das Template app/design/frontend/default/default/template/page/1column.phtml zweimal kopiert, angepasst und in mxperts-1.phtml ,mxperts-2.phtml umbenannt.
Das Ergebnis im CMS von Magento ist im folgenden Screenshot zu sehen.

Nun wünsche ich viel Spaß beim Layouts erstellen ![]()
Johannes Teitge
Danke für die Info - kann ich öfter gebrauchen.
kann es sein das diese Vorgehensweise unter 1.3.2.1 nicht mehr funktioniert?
Hallo,
ich habe es in der Verion 1.3.1 gestestet und werde es mal in einer Neuinstallation durchführen.
Viele Grüße
Johannes Teitge
aahhh hab es gefunden ab der Version 1.3.2 wurde das einbauen von eigenen Layouts wesentlich vereinfacht.
Somit kann man unter “/app/design/frontent/interface/design/layout/page.xml” diese Einträge hinzufügen.
Ab Zeile (123) findet man nun:
page/meinLayout.phtml
1
mfg
yesuar
Hallo yesuar,
danke für Deine Antwort - dies erspart mir nun etwas Zeit beim Suchen.
Gruß
Johannes Teitge
Ich habe das Tutorial nochmal überarbeitet und die Änderungen ab Version 1.3.2 berücksichtigt.
Gruß
Johannes Teitge
Hi!
danke für den Tipp. Kann man auf ähnliche Art und Weise auch ein Layout entfernen, also z.B. das “2 columns with bar right” layout?
Gruß
maxhb
Hallo Johannes,
wahrscheinlich off topic, aber wie und wo(Pfad) kann ich bei einem mehrspaltigen Layout den Inhalt der rechten Spalte bearbeiten? Wie kriege ich z.B. die Newsletteranmeldung etc., Warenkorb auf der Startseite weg.
[...] Heute stand von unserem Kunden Switzerlandshop (http://www.switzerlandshop.com/) eine Update von Magento 1.2.1 auf 1.3.2.2 an. Wir und unser Provider hatten uns schon auf das schlimmste eingestellt, Updates von alles Files und MySQL-Dump bereitgestellt. Das Update starteten wir auf der Linux-Konsole und es lief relativ schnell durch. Wie bereits vermutet musste ich nach der Umstellung eine Erweiterung erstellen, um das angepasset Layout für die Startseite im CMS wieder aktivieren zu können. (Eigene Layouts in Magento CMS integrieren). [...]
Hallo und erstmal ein großes DANKESCHÖN für all die super Magento Artikel. Auf der Magento Seite blickt man ja nicht durch.
Hierzu nun: Bei mir funktioniert das ganze nur in der “app\code\core\Mage\Page\etc\config.xml” bei 1.3.2.3 und der vorherigen version. Mit “app\code\local\paradise\CmsPageLayouts\etc\config.xml” bekomm ich die Layouts im Admin nicht angezeigt. Bin das ganze nun 30 mal durchgegangen und es will nicht
Hast Du auch das Layout Handle eingetragen?
So nach ewigem probieren und nachdem es mit eurem original ging hab ich was ganz merkwürdiges gefunden.
Schreibt mal den Ordner “app\code\local\Mxperts\” klein.
Also: app\code\local\mxperts\ und schon geht es nicht.
Dabei spielt es keine Rolle ob “Mxperts_CmsPageLayouts” in der “mxperts_layout.xml” groß oder klein geschrieben wird.
Komische sache. Und mit sowas verbringt man Tage *lol
Klar
app/etc/modules/paradise_layout.xml
local
true
Vielen Dank, funktioniert hervorragend in magento 1.3.2.2 und 1.3.2.3
Ein exzellenter magento Blog bei dem nicht nur Einsteiger noch einiges lernen können…
Danke für das Feedback, dann muss ich ja nicht weiter darauf eingehen
Gruß
Johannes Teitge
Hallo,
ich möchte das Impressum aus dem Footer an den Anfang der Zeile “Mein Benutzerkonto” stellen. Wie macht man das bzw. welche Datei ist wie zu ändern? Vielen Dank für die Hilfe.
Franz
Bitte dafür das Forum benutzen.
http://www.magenity.de oder direkt auf http://www.magentocommerce.com/boards/viewforum/25/
Gruß
Johannes Teitge
Hallo,
super Tutorial. Allerdings stellt sich jetzt die Frage: Wie kann ich z.b. jetzt meine eigene rechte Spalte erstellen? Im moment wird bei mir noch der Warenkorb usw. angezeigt. Ich möchte aber für das Mxperts-Layout meine eigene rechte Spalte erstellen. Wäre super vielleicht das ganze noch ans Tutorial dran zuhängen.
Gruß
Hallo,
ich schließe mich an super Tut. Nur eine Sache bring ich noch nicht so auf die Reihe. Ich erstelle die Modelstruktur in meinem Fall:
app/etc/modules/Abc_layout.xml
app/code/local/Abc/CmsPageLayouts/etc/config.xml
Ersetze also alle Mxperts durch ein einfaches Abc und nix geht mehr. Mach ich jedoch wieder ein Mxperts draus läuft alles. Muss man eigene Module explizit noch irgendwo angeben oder reicht es bei Magento mit angegebennen Struktur “app/etc/modules/Abc_layout.xml” ein Modul zu definieren.
Sorry für die Fragen aber ich muss mich noch ein wenig in das Magento System einarbeiten. Sitze gerade mal 5 Tage dran und muss in knappen 10 Tagen mindestens Profi drin sein. Vielleicht gibt es ja irgendwo ein Tut was rein auf Programmierer und eines was nur auf Designer ausgerichtet ist. Hab bestimmt in den letzten 5 Tagen nix anderes gemacht außer mir irgendwelche Tut’s in englisch und deutsch reinzuziehen. Aber mehr als die Grundkenntnisse und das Grundverständnis des Programms konnte ich noch nicht erlangen.
Gruß
Hallo,
ich empfehle Dir das Buch Guide to E-commerce Programming with MAGENTO von Mark Kimsal/php|architect. Dann hast Du wenigstens die Grundlagen über die Namenskonvention, Klassenbezeichnungen Verzeichnisstrukturen, usw.
Denn dies würde den Rahmen für dieses Post sprengen. Dein Vorhaben in 10 Tagen Magento-Profi muss ich bewundern - ist aber auch unrealistisch. Falls Du es schaffts, melde Dich bei uns, dann nehmen wir bei Dir Unterricht ^^
Aber kaufe Dir das Buch, damit hast Du eine gute Grundlage - hat uns auch sehr viel geholfen.
Viel Erfolg bei Deinem Vorhaben
Johannes Teitge
Hallo! Danke für die tolle Anleitung. Weiter oben wurde schon einmal die gleiche Frage gestellt: Kann man auf ähnliche Art und Weise die bestehenden Layouts (zB 3spaltig) aus der Auswahlliste im Admin bzw. CMS entfernen? Hab recherchiert und probiert - aber nix gefunden.
Danke, LG
Christoph