Modifier les modifications apportées aux fichiers principaux pour qu'elles restent même après les mises à jour de Magento

magento.stackexchange https://magento.stackexchange.com/questions/106106

Question

J'ai récemment apporté des modifications aux fichiers Magento Core, mais ces modifications ont été annulées après une mise à jour mineure de Magento CE 1.9.2.4 à partir de la version 1.9.2.3.Maintenant, je dois refaire ces changements.Ce sont des modifications obligatoires pour ma boutique et sont nécessaires pour que le symbole de la roupie (monnaie indienne) apparaisse dans les factures Magento.La police par défaut ne prend pas en charge le symbole.Comment puis-je apporter ces modifications pour rester permanentes dans le fichier principal ?

Était-ce utile?

La solution

Vous pouvez simplement copier le fichier principal (que vous souhaitez remplacer) et le coller app/code/local/Mage en conservant le même chemin de ce fichier php.Ensuite, vous pouvez commencer à éditer ce fichier, magento lira votre fichier à la place du fichier principal.Ci-dessous un exemple :=> Si vous souhaitez remplacer app/code/core/Mage/Catalog/Block/Product.php tu as simplement besoin de le mettre Product.php dans app/code/local/Mage/Catalog/Block/Product.php.Faire seulement cela permettra à magento de lire ce fichier à partir du dossier local au lieu du dossier principal.

La raison d'un tel comportement de lecture du dossier local vers le dossier principal est :Ce processus est appelé remplacement des fonctionnalités principales de Magento et est basé sur le fait que Magento définit ses chemins d'inclusion PHP pour qu'ils recherchent d'abord dans app/code/local/ puis app/code/community/ et enfin dans app/code/core/.Cela a pour effet que tous les fichiers du même nom placés sous l'espace de noms local ou communautaire auront la priorité lors du chargement, nous pouvons donc remplacer presque tous les fichiers principaux de cette manière.

Inconvénients de l’utilisation de l’approche ci-dessus :

  1. D'une part, nous devons remplacer le fichier principal complet et copier toutes les fonctions de classe.Une fois le fichier remplacé en place, ce sera le fichier qui sera toujours utilisé à la place du fichier principal de magento.Étant donné que la plupart des classes de base contiennent plusieurs et plusieurs fois un grand nombre de méthodes, cela signifie que nous remplaçons effectivement toutes ces méthodes dans notre fichier.

  2. Cette approche n'est pas conviviale pour la mise à niveau de magento, pour les raisons ci-dessus.

  3. Cette approche ne fonctionne pas pour les contrôleurs.

Cette approche n'est utile que pendant que vous testez/développez votre module.Au lieu d'écrire un module entier, vous pouvez rapidement remplacer la classe principale pour voir si les choses fonctionnent bien.

Autres conseils

Évitez de modifier les fichiers de base Magento, vous devriez essayer de l'écraser dans votre piscine locale elle-même.De cette façon, lorsque jamais une mise à niveau est effectuée, vos modifications ne sont pas perdues.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top