How to stop overriding the files in module's config.xml in magento? -
actually module overriding 2 files. module overriding default search. here code :-
<models> <catalogsearch> <rewrite> <indexer_fulltext>wy_searchindex_model_catalogsearch_indexer_fulltext</indexer_fulltext> <layer>wy_searchindex_model_catalogsearch_layer</layer> </rewrite> </catalogsearch> ...
now want doing module enable/disable admin & suppose disabled admin should not override 2 files above & default search run.
now can't put ifconfig in config.xml right? :-
<models> <catalogsearch ifconfig="searchsphinx/general/enabledornot">
so can done? did right - put condition in 1 of file i.e. module's layer.php file -
if(!mage::getstoreconfig('searchsphinx/general/enabledornot')) { //this call default module's search...there no method inside below class class wy_searchindex_model_catalogsearch_layer extends wy_searchindex_model_catalogsearch_layer_extends { } } else { //this call module's search class wy_searchindex_model_catalogsearch_layer extends wy_searchindex_model_catalogsearch_layer_extends {...} }
i know bad way thinking if module disabled admin above files should not overridden.
how can it? suggestion please?
thank you
there way conditional rewrite, i'm not sure if considered valid practice. anyway,
- remove rewrites config
insert config.xml following
<global> ... <events> <controller_front_init_before> <observers> <wy_search_rewrite_classes> <type>model</type> <class>searchsphinx/observer</class> <method>rewriteclasses</method> </wy_search_rewrite_classes> </observers> </controller_front_init_before> </events> ... </global>
create observer.php file in model folder (if don't have one)
class wy_searchindex_model_observer { ... /** * rewrite necessary classes * * @param varien_event_observer $observer */ public function rewriteclasses(varien_event_observer $observer) { $isrewriteenabled = mage::getstoreconfig('searchsphinx/general/enabledornot'); if ($isrewriteenabled) { mage::getconfig()->setnode('global/models/catalogsearch/rewrite/indexer_fulltext', 'wy_searchindex_model_catalogsearch_indexer_fulltext'); mage::getconfig()->setnode('global/models/catalogsearch/rewrite/layer', 'wy_searchindex_model_catalogsearch_layer'); } } }
Comments
Post a Comment