réécrire un contrôleur qui est déjà en train de réécrire un autre
-
16-10-2019 - |
Question
Est-il possible de réécrire un contrôleur dans un module communautaire qui est déjà en train de réécrire un contrôleur de base?
J'ai la syntaxe correcte car il travaille dans d'autres réécritures, mais dans ce cas spécifique la réécriture ne fonctionne pas.
Il y a un module communautaire réécriture du contrôleur de panier et je veux réécrire les modules de la communauté contrôleur de panier.
Ce serait comme ceci:
My Controller -> Community Modules cart controller -> Mage Cart controller
La solution
Cela peut dépendre de la façon dont l'extension est prépondérant du contrôleur, mais va ici. Vous devez ajouter dans le fichier config.xml
de votre module, cela comme un enfant du nœud <config>
.
<frontend>
<routers>
<checkout>
<args>
<modules>
<Your_ModuleNameHere before="Community_ModuleNameHere">Your_ModuleNameHere</Your_ModuleNameHere>
</modules>
</args>
</checkout>
</routers>
</frontend>
Si le module communautaire remplace le contrôleur de panier de la même manière que celle décrite ci-dessus cela fonctionne. Si elle utilise la « vieille méthode » avec des étiquettes de <from>
et <to>
alors il ne fonctionnera pas.
(Et je n'ai aucune idée sur la façon de passer outre cela).
[EDIT]
Assurez-vous que votre contrôleur est également nommé CartController
et il est situé dans Namespace/Module/controllers/CartController.php
. Aussi, vous voudrez peut-être faire votre module local dépendent du module communautaire, mais je ne pense pas que ce soit obligatoire. Assurez-vous également étendre votre classe de contrôleur du contrôleur du module communautaire.