Magento: получить значение отключения вывода модуля

Серверная часть Magento позволяет отключить вывод модуля для каждого сайта. Я сделал несколько поисков в Google, но не могу понять, как получить это значение с помощью моего кода. В основном, когда вывод моего модуля отключен, он работает нормально. Но я обнаружил (трудным путем), что Magento не предотвращает загрузку модуля для каждого сайта.

Поскольку я расширяю некоторые базовые классы, некоторые конструкторы все еще выполняются. Моя мысль состоит в том, чтобы проверить, отключен ли выход модуля. Если это так, пусть мой конструктор вызывает родительский конструктор. Если вывод модуля включен, продолжайте с моим пользовательским кодом.

Я просто не могу понять, как получить это значение для текущего сайта (у меня много сайтов, кстати). В идеале было бы что-то вроде этого:

$isThisEnabled = Mage::app()->getCurrentStore()->isOutputEnabled('myModule');

В основном есть одна строка, которая извлекает значение текущего сайта (или значение по умолчанию, если оно не указано для текущего сайта).

Любая помощь будет принята с благодарностью!

РЕДАКТИРОВАТЬ: я нашел таблицу core_config_data, в которой хранится эта информация. Я мог бы запросить его вручную, если бы мне пришлось, но мне кажется, что в Magento было бы что-то встроенное, чтобы возвращать текущее значение хранилища, возвращаясь к значению по умолчанию.


person Colin O'Dell    schedule 15.09.2010    source источник


Ответы (2)


Это стандартный параметр конфигурации, поэтому доступ к нему ничем не отличается от доступа к любому другому параметру конфигурации. Вам просто нужно знать, каков путь к этому значению. Анализируя БД, я считаю, что это должно помочь:

Mage::getStoreConfig('advanced/modules_disable_output/Namespace_Module');
person silvo    schedule 15.09.2010
comment
Спасибо, это именно то, что мне было нужно. - person Colin O'Dell; 18.09.2010

Другой вариант заключается в том, что Mage_Core_Helper_Abstract имеет метод isModuleEnabled($moduleName = null), что означает, что вы должны иметь возможность вызывать:

Mage::helper('core/data')->isModuleEnabled('Namespace_Module')

Существует также метод isModuleOutputEnabled(). Глядя на код, кажется, что они не фильтруются хранилищем/просмотром, тогда как метод @silvo фильтруется.

person Jonathan Day    schedule 18.09.2010
comment
На самом деле это предпочтительный метод. Метод использует getStoreConfigFlag, поэтому он также принимает конфигурацию текущего представления магазина, а также проверяет, включен ли сам модуль. - person Fabian Schmengler; 10.01.2015