Il existe une extension tierce qui réécrit une classe principale Magento spécifique. Peu importe qu'il s'agisse d'un bloc, d'une aide ou d'un modèle, mais dans ce cas, c'est un modèle. Maintenant, je constate que cette réécriture est mauvaise et je voudrais la désactiver sans changer l'extension tierce. Par conséquent, j'écris une extension personnalisée qui dépend de l'extension tierce. Quelle est la meilleure façon de désactiver la réécriture tierce? Le plus sûr auquel je peux penser est de définir une réécriture personnalisée, qui est utilisée à la place de la réécriture tierce:
<global>
<models>
<custom_extension>
<class>Custom_Extension_Model</class>
</custom_extension>
<mage_core>
<rewrite>
<sth>Custom_Extension_Model_Sth</sth>
</rewrite>
</mage_core>
</models>
</global>
Sth.php
, la classe s'étend directement de la classe Mage et désactive donc la réécriture tierce:
class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth
{
}
Cela fonctionne, mais ne se sent pas trop bien. En pensant aux observateurs, il est possible de les désactiver uniquement via config.xml en les définissant sur disabled
. Est-ce que quelque chose comme ça est possible avec des réécritures? J'ai essayé d'utiliser les éléments suivants et cela fonctionne:
<global>
<models>
<mage_core>
<rewrite>
<sth></sth>
</rewrite>
</mage_core>
</models>
</global>
Mais est-ce sûr de le faire? Cela fonctionne-t-il dans toutes les versions? Je n'ai jamais vu ça à l'état sauvage, c'est pourquoi je demande.
la source