我正在尝试以编程方式禁用Magento模块。我只是尝试将以下代码添加到myadmin header.phtml 。
// Disable the module itself
$moduleName="Thycart_Customcheckout"
$nodePath = "modules/$moduleName/active";
if (Mage::helper('core/data')->isModuleEnabled($moduleName)) {
Mage::getConfig()->setNode($nodePath, 'false', true);
echo Mage::getConfig()->getNode('modules/Thycart_Customcheckout')->active;
}
// Disable its output as well (which was already loaded)
$outputPath = "advanced/modules_disable_output/$moduleName";
if (!Mage::getStoreConfig($outputPath)) {
Mage::app()->getStore()->setConfig($outputPath, true);
}
回音
法师:: getConfig() - > getNode( '模块/ Thycart_Customcheckout') - >活性;
返回我的错误,但实际上模块没有从xml中禁用。
也尝试了
法师:: getConfig() - > saveconfig的();
返回了
前端控制器达到100路由器匹配迭代错误。
有人可以帮助在配置文件中将节点激活为false。感谢。
答案 0 :(得分:0)
这是一种不好的代码实践。你不应该像这样禁用模块。当您的phtml文件(header.php)执行时,大多数模块已被调用,它们的对象在内存中。
如果要禁用模块,则可以禁用它们 system-> configuration-> advance->禁用模块输出,或者你可以通过
禁用它们在\ app \ etc \ modules \ Mynamespace_Mymodulename.xml中的模块.xml文件中设置false。