2013-09-06 4 views
2

Je continue à recevoir ce message lorsque j'essaie d'accéder à une page de profil utilisateur dans le frontend. Quelqu'un peut-il m'aider à trouver une solution? Je suis très nouveau à Magento.Magento 1.7 Erreur fatale: Classe 'Mage_Profile_Helper_Data' introuvable dans Mage.php

Erreur fatale: de la Mage_Profile_Helper_Data 'classe non trouvée dans /home/.../public_html/store/app/Mage.php en ligne 546

Aussi, je crois que ce travail a été récemment, mais je n'ai fait certains changements CSS au thème, donc je ne sais pas comment je pourrais avoir brisé cela.

J'ai également recompilé et désactivé la compilation depuis le panneau d'administration.

Mise à jour:

Je trouve cela dans Data.php:

class MYSITE_Profile_Helper_Data extends Mage_Core_Helper_Abstract{ 

    public function getProfilesUrl(){ 
     return Mage::getUrl('profile/profile/index'); 
    } 
} 

Et je trouve cela dans app/etc/modules/MYSITE_Profile.xml

<config> 
<modules> 
    <MYSITE_Profile> 
     <active>true</active> 
     <codePool>local</codePool> 
     <depends> 
      <Mage_Core /> 
     </depends> 
    </MYSITE_Profile> 
</modules> 
</config> 

Répondre

2

vous devez créer un fichier avec le nom data.php dans le dossier auxiliaire du module de profil . C'est pourquoi vous devez toujours inclure Data helper dans vos extensions. Ainsi, le code suivant dans votre app/code/local/MYSITE/Helper/Data.php

class Mage_Profile_Helper_Data extends Mage_Core_Helper_Abstract 
{ 

} 

et

<global> 
    <helpers> 
     <profile> 
      <class>MYSITE_Profile_Helper</class> 
     </profile> 
    </helpers> 
</global> 

dans votre app/code/local/MYSITE/Profile/etc/config.xml devrait être suffisant.

+1

Juste à noter, je pense qu'il est, il manque probablement d'un module personnalisé dans la communauté locale ou et le dernier héritage lieu vérifiera est Mage dans le noyau, je ne crois pas que Mage_Profile est un module de base de toute façon, tout est situé dans Mage_Customer – input

+0

@input, cela devrait être donné erreur comme non trouvé "Mage_Customer_Helper_Data' nous pouvons deviner qu'ils créent un module d'espace de noms avec "Mage" pas par un seul. – liyakat

+0

Si quelqu'un a créé un module dans 'local/Mage/Profile /', cela jetterait l'erreur ci-dessus, je fais juste remarquer que je ne pense pas que ce soit un module de base. – input

4

Dans ce cas, vous avez affaire à un module personnalisé, car il n'y a pas de module Mage_Profile. En règle générale, un problème «assistant de données manquantes» est le résultat d'un développeur de module spécifiant de traduire une chaîne et ne pas fournir la classe appropriée. Lorsque Magento est invité à instancier une classe d'aide (ou un bloc ou un modèle) via sa méthode d'usine, il prend l'argument (profile dans ce cas) et tente de le résoudre en un nœud Xpath particulier. Si l'application ne trouve pas ce noeud, elle supposera que l'argument fait partie du noyau et ajoutera mage_, ajoutera le type de classe (helper) et ajoutera l'ID de classe (qui est data pour les assistants). Voir Mage_Core_Model_Config::getGroupedClassName() pour les détails.

Vous voulez rechercher des fichiers XML dans app/code/community/, app/code/local/ et app/design/frontend/ pour la chaîne "profile" (entre guillemets inclus). C'est le vecteur le plus commun pour ce problème.

Il est également possible d'instancier des aides via plusieurs méthodes d'usine (malheureusement). Ceux-ci peuvent probablement être découverts en greffe .php et .phtml fichiers pour la chaîne ('profile') ou ('profile/data').

Enfin, vous êtes à la recherche d'un module personnalisé où vous devrez configurer le groupe de classe profile pour les assistants. Cela sera par exempleThe/Module/etc/config.xml et ce que vous allez créer/ajouter seront les suivants:

<global> 
    <helpers> 
     <profile><!-- class group --> 
      <class>The_Module_Helper</class><!-- class prefix --> 
     </profile> 
    </helpers> 
</global> 

Ensuite, il vous suffit de définir The_Module_Helper_Data classe comme suit (par exemple, dans The/Module/Helper/Data.php:

<?php 
class The_Module_Helper_Data extends Mage_Core_Helper_Abstract 
{ 
} 

Après avoir fait cela, votre application devrait fonctionner, et vous devriez étrangler le développeur original :-)

+0

J'ai une question dans mon esprit.Si nous pouvons définir notre module personnalisé avec n'importe quel espace de noms mage. Est-ce que cela crée un problème? – liyakat

+0

Problème? Pas techniquement, mais ce n'est pas approprié. 'Profile' serait un mauvais nom de module car il est raisonnable de penser que Magento pourrait libérer un module du même nom. – benmarks

+0

@benmarks, j'ai trouvé ceux-ci: /app/code/local/MYSITE/Profile/etc/config.xml, /app/code/local/MYSITE/Profile/Model/Profile.php; Dois-je corriger quelque chose ou ajouter le code XML et PHP que vous avez posté. J'ai essayé d'ajouter le code mais je ne connais pas les chemins d'accès à ces fichiers (data.php & config.xml car il semble y avoir quelques uns de ces fichiers) – user2754877

0

Cette erreur est causée par le fichier autoloader.php. Pour le résoudre n'utilisez pas "_" dans le nom de fichier n'importe où, spécialement dans config.xml puisque, il sera remplacé par "/" et jettera de telles erreurs.

Ex: giftcard_confirm.html

Insted utilisation: giftcardconfirm.html

Questions connexes