2010-07-28 8 views
0

Je crée un module qui vous permet de définir des options supplémentaires pour categorys dans Magento, suivant ce tuturial pour commencer: http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/installing_custom_attributes_with_your_moduleMagento ajouter installation objet

I construit sur un module squelette créé avec ModuleCreator.

J'ai créé Setup.php (avec la capitale) dans Infoweb/marges/Modèle/ressources/Eav/mysql4/ et il ma classe définie:

class Infoweb_Margins_Resource_Eav_Mysql4_Setup extends Mage_Eav_Model_Entity_Setup{} 

J'ai également ajouté cette ligne dans mon config.php (le reste était déjà là à cause du module squelette):

<class>Infoweb_Margins_Resource_Eav_Mysql4_Setup</class> 

maintenant, lorsque vous essayez de charger une page, les recherches magento pour cette classe, mais donne une erreur fatale disant que la classe n'a pas été trouvé. .. Erreur: Erreur fatale: Classe 'Infoweb_Margins_Resource_Eav_Mysql4_Setup' introuvable dans /home/users/A000456/xxx/xxx/app/code/core/Mage/Core/Model/Resource/Setup.php en ligne 160

Réflexions sur l'endroit où se situe le problème?

utilisant Magento 1.4.1.0

Répondre

1

Magento est plaint de ne pas trouver votre classe

Infoweb_Margins_Resource_Eav_Mysql4_Setup 

c'est en fait semi-bonnes nouvelles. Le fait que Magento ait su rechercher une classe avec le préfixe Infoweb_Margins signifie que vous avez correctement configuré votre XML.

Le problème est votre nom de classe. Le chargeur automatique de Magento ne sait * comment gérer la classe sous la forme

Packagename_Modulename_Model_* 
Packagename_Modulename_Helper_* 
Packagename_Modulename_Block_* 

votre classe est nommé

Infoweb_Margins_Resource_* 

qui Magento ne sait pas quoi faire avec.

Si vous avez placé un fichier nommé Setup.php à

Infoweb/Margins/Model/Resource/Eav/Mysql4/ 

vous voulez une classe nommée

Infoweb_Margins_Model_Resource_Eav_Mysql4_Setup 

changement que dans la définition XML et la classe et vous devez être réglé

* cela pourrait être un semi-fib, je n'ai pas jeté un coup d'oeil à __autoloader de Magento dans un certain temps

+0

Merci, mais j'ai encore 1 question, comment puis-je ré-installer le module? Je l'ai seulement pour ajouter les attributs après l'importation d'une base de données plus ancienne, puis l'actualisation. Désactiver le module ne l'a pas fait et j'ai tous les caches désactivés. – Rakward

+0

En outre, je ne peux pas obtenir SCOPE_STORE pour travailler, je peux seulement ajouter des options GLOBAL (pas de case à cocher en magasin) :( J'ai vraiment besoin de pouvoir définir un attribut par magasin – Rakward

+1

Supprimer votre module de la core_resources (si mon mémo me sert bien) dans la base de données Magento réexécutera la logique d'installation. Vous pouvez également augmenter le nombre de versions. –

Questions connexes