Layout-Updates über die local.xml

03.09.2010   //   von Tobias Vogt   //   Magento, Themes  //  6 Kommentare

Magento bietet die Möglichkeit über sein Layout-XML die einzelnen Blöcke nachträglich zu aktualisieren. Dabei kommt es natürlich darauf an das die eigenen Änderungen möglichst spät geladen werden damit diese nicht durch Module wieder überschrieben werden können.

Hierzu bietet Magento von Haus aus die Option an eine Datei mit dem Namen local.xml in app/design/frontend/<Dein Interface>/default/layout anzulegen. Die Layout-Updates dieser Datei werden dabei zum Schluss geladen. Die Datei kann z.B. genutzt werden um einige unnötige Blöcke in Magento restlos zu entfernen. Ganz Hoch im Kurs steht dabei sicherlich der 1800-Callout Block – der muss einfach weg :)

<?xml version="1.0"?>
<layout version="0.1.0">

	<default>
	        
	        <reference name="right">
	            
	            <!-- Mage_Poll enfernen -->
	            <remove name="right.poll" />                          	
	       
	       		<!--  Paypal Werbung -->
	       		<remove name="paypal.partner.right.logo" />
	       			       		
	       		<!-- Callouts: Oder auch der 1800 Werbeblock raus -->
	       		<remove name="right.permanent.callout" />
	       		
	       		<!-- Mage_Reports raus: Kürzlich angesehe Produklte -->
	            <remove name="right.reports.product.viewed" />
	            <remove name="right.reports.product.compared" />
	       
	        </reference>
	        
	        <reference name="left">
	        	
	        	<!-- Callouts raus -->
	        	<remove name="left.permanent.callout" />
	        	
	        	<!--  Tags raus -->
	        	<remove name="tags_popular"/>
	        	
	        </reference>
	        
	</default>   

	<checkout_cart_index>
        
        <!-- Versandkosten schätzen im Warenkorb raus -->
        <remove name="checkout.cart.shipping" />
        
        <!-- Multishipping raus -->
        <remove name="checkout.cart.methods.multishipping" />
        
    </checkout_cart_index>  
        
</layout>

Bitte die local.xml im Theme Order nicht mit der local.xml in app/etc verwechseln. Das sind zwei völlig unabhängige Dateien.

Der Autor

Tobias Vogt arbeitet seit 2008 mit Magento und ist seit 2011 durch Magento zertifizierter Entwickler. Beschäftigt ist er bei der code-x GmbH, einer Agentur für Internet und Marketing aus Paderborn. Er gehört zum Gründer-Team der Webguys und ist seit November 2011 Bachelor of Science (Wirtschaftsinformatik). Sie erreichen Ihn per E-Mail unter tobi@webguys.de.

6 Kommentare

  • [...] Theme haben – es also aktualisieren können. Einige Beispiele dazu gibt es in unserem Artikel zu Layout-Updates mittels local.xml. Jeder Controller besitzt quasi sein eigenes Layout-Handle dessen Aufbau in der Regel [...]

  • Hallo!
    Also auf einer nigelnagelneuen Testumgebung funktioniert das einwandfrei!
    Auf einem Systhem auf dem schon gearbeitet wurde leider nicht :(
    Woran könnte das liegen? Die local.xml scheind garnicht eingebunden zu werden.
    Danke!

  • Die local.xml wird erst ab Magento 1.4 unterstützt. Verwendest du eine aktuelle Version? Ist der Cache deaktiviert?

  • Ich hab Magento 1.5. Magento-Cache ist deaktiviert!

    Also bei der Testumgebung bei Mittwald funktioniert die Datei.
    Aber auf eigenem Server nicht. Auch nicht bei ner frischen Installation.

  • Nur zur Vorsicht: Du verwendet aber NICHT die local.xml in app/etc oder? Kann mir leider gerade nicht erklären warum es nicht geht.

    Wir verwenden mittlerweile eigentlich nur noch die Lösung über eine eigene Extension wie unter http://www.webguys.de/magento/ein-magento-theme-erstellen/ beschrieben :)

  • Kann mir vielleicht jemand erklären wie sich dieser Ausdruck zusammensetzt? Denn ein Pfad kann es ja nicht sein, denn es gibt den Pfad: paypal/partner/logo.phtml. ich bin ja relativ sicher, dass es sich auf diese logo.phtml bezieht. Aber wie kommt das “right” ins Spiel?

Kommentar schreiben

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.