Magento: получить значение «отключить вывод модуля» - PullRequest
4 голосов
/ 15 сентября 2010

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

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

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

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

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

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

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

Ответы [ 3 ]

8 голосов
/ 15 сентября 2010

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

Mage::getStoreConfig('advanced/modules_disable_output/Namespace_Module');
3 голосов
/ 18 сентября 2010

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

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

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

2 голосов
/ 06 сентября 2014
<?php
public function mycontrollerAction()
{
    $moduleName = 'Namespace_Modulename';//eg Mage_Cms       
    if(Mage::getConfig()->getModuleConfig($moduleName)->is('active', 'true'))
    {
        echo "Module Enable";
    }
    else
    {
      echo "Module Disable";
    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...