Frage

Ich habe kürzlich Änderungen an Magento Core-Dateien vorgenommen, aber diese Änderungen wurden nach einem kleinen Update auf Magento CE 1.9.2.4 von Version 1.9.2.3 überschrieben.Jetzt muss ich diese Änderungen erneut vornehmen.Dies sind obligatorische Änderungen für meinen Shop und sind erforderlich, damit das Rupie-Symbol (indische Währung) in Magento-Rechnungen angezeigt wird.Die Standardschriftart unterstützt das Symbol nicht.Wie kann ich diese Änderungen vornehmen, damit sie dauerhaft in der Kerndatei bleiben?

War es hilfreich?

Lösung

Sie können einfach die Kerndatei (die Sie überschreiben möchten) kopieren und einfügen app/code/local/Mage Beibehaltung des gleichen Pfads dieser PHP-Datei.Anschließend können Sie mit der Bearbeitung dieser Datei beginnen. Magento liest Ihre Datei anstelle der Kerndatei.Nachfolgend finden Sie ein Beispiel:=> Wenn Sie überschreiben möchten app/code/core/Mage/Catalog/Block/Product.php Sie müssen es einfach einsetzen Product.php In app/code/local/Mage/Catalog/Block/Product.php.Wenn Sie nur dies tun, kann Magento diese Datei aus dem lokalen Ordner statt aus dem Kernordner lesen.

Der Grund für dieses Verhalten beim Lesen vom lokalen Ordner zum Kernordner ist:Dieser Vorgang wird als Überschreiben der Magento-Kernfunktionalität bezeichnet und basiert auf der Tatsache, dass Magento seine PHP-Include-Pfade so festlegt, dass sie zuerst in app/code/local/ suchen app/code/community/ und endlich drin app/code/core/.Dies hat zur Folge, dass alle Dateien mit demselben Namen, die im lokalen oder Community-Namensraum platziert sind, beim Laden Vorrang haben, sodass wir auf diese Weise fast jede Kerndatei überschreiben können.

Nachteile der Verwendung des oben genannten Ansatzes:

  1. Zum einen müssen wir die komplette Kerndatei überschreiben und alle Klassenfunktionen kopieren.Sobald die überschriebene Datei vorhanden ist, wird diese Datei immer anstelle der Magento-Kerndatei verwendet.Angesichts der Tatsache, dass die meisten Kernklassen mehrere und um ein Vielfaches große Anzahl von Methoden enthalten, bedeutet dies, dass wir praktisch alle diese Methoden in unserer Datei überschreiben.

  2. Dieser Ansatz ist aus den oben genannten Gründen nicht für Magento-Upgrades geeignet.

  3. Dieser Ansatz funktioniert nicht für Controller.

Dieser Ansatz ist nur beim Testen/Entwickeln Ihres Moduls nützlich.Anstatt ein ganzes Modul zu schreiben, können Sie schnell die Kernklasse überschreiben und sehen, ob alles gut funktioniert.

Andere Tipps

Vermeiden Sie, Änderungen an Magento-Kerndateien zu erstellen, Sie sollten versuchen, es in Ihrem lokalen Pool selbst zu überschreiben.Wenn auf diese Weise ein Upgrade erfolgt, sind Ihre Änderungen nicht verloren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top