检查是否在没有通知的情况下安装了扩展插件



方法JComponentHelper::isEnabled('cm_extension',true);检查是否安装了扩展并返回布尔值。

如果由于self::getComponent($option,$strict);在同一个helper类中。

如果没有安装组件,有没有办法避免发出通知?

检查数据库,查看组件是否已安装并启用。

$db = JFactory::getDbo();
$db->setQuery("SELECT enabled FROM #__extensions WHERE name = 'component name'");
$is_enabled = $db->loadResult();

如果$is_enabled的值为1,则您的组件已启用。

虽然意识到这是一个老问题,但这也是谷歌的首批结果之一,我想分享对我有效的方法,同时避免额外的数据库查询。

为了避免异常,您还可以检查扩展名的入口点文件是否存在,如:

if (file_exists(JPATH_ADMINISTRATOR . '/components/com_extension/extension.php') && JComponentHelper::isEnabled('com_extension', true))
    {
        // Your code here
    }

您可以使用相同的函数isEnabled并捕获该异常,因此如果抛出异常,则不会安装组件。

查看

JComponentHelper::isInstalled('com_extension');

相关内容

  • 没有找到相关文章

最新更新