magento-1.5magento

Magento system.xml cache issue


I have been building a module and making numerous changes without any problems until just now:

I removed a configuration variable from my extension's system.xml file but the field is still in the config. I disabled all caching, flushed all caches (both through magento admin and by manually deleting everything in the directories) but it STILL won't go away.

As a test, I added it back to the system.xml file using the same node name but changing the label and it picked up the change. I was also able to hide it by setting <show_in_...> to 0. However, after it went away, I removed it from the system.xml file and it showed up again in the admin. I have to imagine this is a caching issue but I can't figure out what to flush to make it go away.

Any thoughts?


Solution

  • Two things to check. When you save a configuration value, magento (currently) persists it to the core_config_data table. Even if you remove the configuration field from your system.xml config. that path/value pair will still be stores in this database. Do a

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

    To see if there's still a values in there. If it is, calls to Mage::getStoreConfig will still return a value, again regardless of what's in system.xml

    Secondly, Magento allows you to stores a default value for each configuration path in config.xml. Look under the

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

    node for a nested tree path that matches your configuration path. If this node is present then this value will be returned for requests to Mage::getStoreConfig.