J'ai installé une extension de module qui génère une erreur fatale
"Erreur fatale: classe 'Mage_Giftcards_Helper_Data' introuvable dans .... / app / Mage.php sur la ligne 546" dans admin.
J'ai référencé ce lien /programming//a/9191286/2919940 et ce lien également /magento//a/7133/3693
Mais j'ai
<global>
<helpers>
<giftcards>
<class>Webtex_Giftcards_Helper</class>
</giftcards>
</helpers>
</global>
dans mon config.xml
et j'ai cette classe
class Webtex_Giftcards_Helper_Data extends Mage_Core_Helper_Data{
// my methods
}
déclaré au /app/code/local/Webtex/Giftcards/Helper/Data.php
chemin.
J'ai désactivé le compilateur et effacé le cache en créant un var/cache
répertoire vide .
J'ai trouvé partout où la config.xml
classe d'assistance devrait être définie et Data.php devrait avoir déclaré cette classe d'assistance.
Mais j'ai les deux dans mon cas, quelle peut être la raison de cette erreur? J'ai également testé ce module sur ma nouvelle installation de magento,
La version de Magento est 1.7.0.2
Veuillez fournir de l'aide pour cette erreur ?? S'il y a des conflits de noms de classe, comment pouvons-nous déboguer cela ??
Merci
la source
Réponses:
Ceci est courant lors du référencement d'un assistant manquant. Dans de nombreux cas, le nom de la classe lui-même est mal formé ou votre nom abrégé le référençant est incorrect, c'est pourquoi Magento le recherche dans le chemin
Mage_Giftcards_Helper_Data
(voir l'exemple 1 ci-dessous). Pour les exemples suivants, j'ai mis en place un module appeléMyCompany_MyModule
.Ce ne sont que quelques-unes des nombreuses façons dont vous pouvez aller de travers avec la définition des assistants:
Alias de classe d'assistance incorrect:
Je fais référence à mon aide comme:
Je reçois l'erreur:
Qu'est ce qui ne s'est pas bien passé?
Mon alias de classe d'assistance est défini comme suit
mymodule
:Changer mon shortcode pour
Mage::helper('mymodule')
produire le résultat souhaité.Nom de classe mal formé
Je référence mon aide (correctement cette fois):
Je reçois:
Qu'est ce qui ne s'est pas bien passé?
Ma définition de classe manquait "_Data":
Aide / Personnalisé:
Cela est similaire à ce qui se produit lorsque vous essayez de faire référence à une classe d'assistance dans un fichier non nommé "Data.php".
Je fais référence à mon aide comme:
Mon chemin d'assistance de module a été défini comme:
J'ai un fichier de classe dans app / code / local / MyCompany / MyModule / Helper / Custom.php
Je reçois l'erreur:
Qu'est ce qui ne s'est pas bien passé?
Vous devez spécifier d'autres classes d'assistance dans un module particulier comme sous-chemins vers le nom abrégé de votre module d'assistance. Ceci est similaire au fonctionnement des blocs et des modèles - mais au niveau le plus élevé, il n'y a pas de sous-dossier.
Je corrige cette erreur en référençant mon fichier de classe d'assistance Custom.php en tant que tel:
la source
Cela ne se produit que lorsque vous installez l'extension avec le compilateur d'activation Voici ce que vous devez faire
1 étape app / etc / module / votre module que vous avez installé récemment désactiver le module
2 étapes Connectez-vous au compilateur admin / system / tools désactiver le compilateur Téléchargez de nouveau le code, cela fonctionnera bien, vous pourrez ensuite recompiler votre code
bonne chance
la source
codepool/extension_name/module_name/Helper/Data.php
includes/src/
la source