Magento: Core Translation Files ergänzen / überschreiben

27. August 2010 at 12:37

Die native mit Magento mit gelieferten core language files für die Übersetzungen sollten nicht überschrieben werden um die Updatefähigkeit zu gewährleisten.

Es ist möglich weitere Übersetzungen durch dass Hinzufügen entsprechender Einträge im passenden Design Ordner zu tätigen, z.B. unter

app/design/frontend/default/myModule/locale/de_DE/translate.csv

Allerdings kommt es ggf. zu Problemen wenn bestehende Core-Language-Einträge überschrieben werden sollen.

Die Lösung dafür ist eigene Language-Files unter app/locale/de_DE abzulegen (in dem Beispiel Namespace_MyModule.csv), wobei de_DE durch das jeweilige Länder-Kürzel ersetzt werden muss.

Das einbinden der Language-File im Module geht in der config.xml über

<frontend>
<translate>
 <modules>
 <Namespace_MyModule>
 <files>
 <default>Namespace_MyModule.csv</default>
 </files>
 </Namespace_MyModule>
 </modules>
 </translate>
</frontend>

Der Zugriff in der Template-Datei geht dann über:

<?php echo Mage::helper('MyModule')->__('My to translate string or hardcodet as direcdt output without language file');?>

Magento: Core Controller überschreiben

17. Juni 2010 at 04:15

Hier findet ihr eine kurze Anleitung wie ihr ein Controller aus dem Core-Package überschreiben könnt.

Im Magento-Wiki ist eine Anleitung vorhanden, allerdings funktionierte die bei mir nicht, deshalb wird hier ein anderer Weg beschrieben.

In dem Beispiel überschreiben wir den Controller für den Kunden-Login.

Step 1 – Config Datei erstellen

Zuerst muss eine eine Config-Datei erstellt werden, wo definiert wird, welcher Controller überschrieben werden soll.. Dies geschieht über eine XML-Datei, welche im folgendem Verzeichnis ablegt wird:

/app/code/local/<Namespace>/<Module>/etc/config.xml

<!-- overwrite only methods or extends the class -->
<config>
    <frontend>
        <routers>
            <customer>
                <args>
                    <module>
                        <Namespace_Module before="Mage_Customer">Namespace_Module</Namespace_Module>
                    </module>
                </args>
            </customer>
        </routers>
    </frontend>
</config>

oder wenn man den kompletten Controller ersetzen möchte (am Beispiel des Catalog-Modules):

<!-- overwrite the complete controller -->
<config>
    <frontend>
        <routers>
          <catalog>
            <use>standard</use>
            <args>
              <module>Seven_Catalog</module>
              <frontName>catalog</frontName>
            </args>
          </catalog>
        </routers>
    </frontend>
</config>

Step 2 – der neue Controller

Anschließend wird die Datei für den neuen Controller erstellt. Dieser wird im folgenden Verzeichnis abgelegt:

/app/code/local/Namespace/Module/controllers/AccountController.php

Der Inhalt des Controllers:

include_once("Mage/Customer/controllers/AccountController.php");
class MyCompany_MyModule_AccountController extends Mage_Customer_AccountController
{
    public function loginAction()
    {
        parent::loginAction();
    }
    public function indexAction()
    {
<pre>        echo 'test';
        parent::loginAction();
    }</pre>
}

Step 3 – Modul aktivieren

Nun wird nach dem Login eines Kunden auf der Übersicht Seite des Benutzerkontos die Ausgabe „test“ angezeigt.

Um Magento das Modul sichtbar zu machen muss es noch aktiviert werden, das geht über eine weitere XML-Datei welche im folgenden Verzeichnis abgelegt wird:

/app/etc/modules/Namespace_Module.xml

Der Inhalt ist wie folgt:

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_Module>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Core />
                <Mage_Customer />
            </depends>
        </Namespace_Module>
    </modules>
</config>

Jetzt wird die Funktion „loginAction()“ von dem neuen Controller überschrieben.

Das war es schon, so einfach überschreibt man ein Controller in Magento! 🙂

Optional: Rewrite eines Controllers in Magento

Ggf. kann mit dem folgenden Einträgen in der config.xml ein Rewrite des Controllers erfolgen:

<rewrite>
 <seven_catalog_daniel>
 <from><![CDATA[#^/catalog/product_compare/add/(.*)$#]]></from>
 <to>/catalog/compare/add/</to>
 </seven_catalog_daniel>
 </rewrite>
 </global>

Magento: deutsches Lokalisierungspaket „Market Ready Germany“

13. Oktober 2009 at 15:45

Magento ist primär für den amerikanischen Markt entwickelt. Für alle deutschen Shop-Betreiber steht das kostenlose Modul „Market Ready Germany“ in Magento Connect zu im Verfügung.

Die Wichtigsten Inhalte:

  • Deutsche PDF-Vorlagen für Rechnungen, Bestellbestätigungen und Gutscheine
  • Deutsche E-Mail-Templates
  • Deutscher Mehrwertsteuer-Satz von 19 Prozent und 7 Prozent
  • Anzeige der rechtlich korrekten Zwischensummen im Warenkorb
  • Deutsche Standardtexte und Seiten für AGB, Impressum, Wiederrufsbelehrung, Über uns, Datenschutz, Lieferung und Bestellvorgang. Die Seiten werden automatisch mit Variablen für die Stammdaten angelegt. Dazu gibt es ein Backend-Modul zur einfachen Eingabe.

Durch die Installation der Erweiterung soll der Shop eine automatische Vorzertifizierung für Trustedshops erhalten.

Wichtig zu beachten: Die Installation funktioniert (aktuell?) nur bei neuen Shops, liegt unter anderem dass die Steuersätze überschrieben werden. Spätere Updates sind natürlich auch bei bestehenden möglich.

ACHTUNG: Beachtet den Hinweis beim Update auf Version 0.1.6

Das Modul findet ihr hier