2011-11-11 6 views
2

J'ai construit un module et fait de nombreux changements sans aucun problème jusqu'à maintenant. J'ai supprimé une variable de configuration du fichier system.xml de mon extension mais le champ est toujours dans la configuration. J'ai désactivé toute la mise en cache, vidé tous les caches (à la fois par l'intermédiaire de l'admin magento et en supprimant manuellement tout dans les répertoires) mais cela ne disparaîtra pas. En tant que test, je l'ai rajouté au fichier system.xml en utilisant le même nom de noeud mais en changeant l'étiquette et en récupérant la modification. J'ai également pu le masquer en réglant <show_in_...> sur 0. Cependant, après son départ, je l'ai supprimé du fichier system.xml et il est apparu de nouveau dans l'admin. Je dois imaginer que c'est un problème de mise en cache, mais je n'arrive pas à comprendre ce qu'il faut tirer pour le faire disparaître. Des pensées?Magento system.xml cache issue

Répondre

6

Deux choses à vérifier. Lorsque vous enregistrez une valeur de configuration, magento (actuellement) la conserve dans la table core_config_data. Même si vous supprimez le champ de configuration de votre configuration system.xml. cette paire chemin/valeur sera toujours stockée dans cette base de données. Faire un

SELECT * FROM core_config_data WHERE path = '/foo/baz/bar' 

Pour voir s'il ya encore des valeurs là-dedans. Dans ce cas, les appels à Mage::getStoreConfig retournera encore une valeur, encore une fois, peu importe ce qui est dans system.xml

Deuxièmement, Magento vous permet de stocke une valeur par défaut pour chaque chemin de configuration dans config.xml. Regardez sous le

<default> 
    <foo> 
     <baz> 
      <bar>1</bar> 
     </baz> 
    </foo> 
</default> 

noeud pour un chemin d'arbre imbriqué qui correspond à votre chemin de configuration. Si ce noeud est présent, cette valeur sera renvoyée pour les demandes à Mage::getStoreConfig.

+0

Désolé, je n'ai pas précisé. Je suis conscient de l'endroit où il stocke les valeurs ... ce n'est pas le problème. Je sais que si je le supprime de la config de mon extension et demande le getStoreConfig pour cette valeur, je l'obtiendrai. C'est très bien. Le problème est que quand je l'ai enlevé du system.xml pour mon extension, le champ n'est pas parti quand je regarde ma config d'extension dans l'admin. J'ai supprimé l'entrée dans la table 'core_config_data' et le champ a été effacé dans la config pour l'extension, mais le champ lui-même ne disparaîtra pas. Cela n'a pas été fait sur notre site en ligne non plus ... bizarre ... – BrianVPS

+0

Vous n'éditez pas le fichier que vous pensez éditer, ou un autre module a aussi le champ configuré. A défaut, tracez le chargement de system.xml dans app/code/core/Mage/Core/Model/Config/System.php. Magento pense que vous avez un noeud là. Vous devez comprendre pourquoi. –

+1

Merci pour la direction. Je l'ai finalement trouvé. D'une manière ou d'une autre (et je vais le dire aux fées espiègles d'internet), le fichier 'system.xml' de cette extension a été copié dans le répertoire etc d'une autre extension. Je suis probablement à blâmer, mais ce n'était certainement pas intentionnel. De toute façon, mystère résolu :) – BrianVPS

1

Les valeurs system.xml sont stockées dans la base de données core_config_data: l'avez-vous supprimée?

+0

Oui, je l'ai fait (voir le commentaire à la réponse d'Alan). La valeur stockée a disparu, mais le champ lui-même est toujours là .... si étrange .... – BrianVPS