1

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

由于 self::getComponent($option, $strict); 导致组件未安装,该函数还会抛出异常通知。在同一个助手类中。

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

4

4 回答 4

1

检查您的数据库以查看该组件是否已安装并启用。

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

如果值为$is_enabled1则您的组件已启用。

于 2013-01-07T17:03:39.773 回答
1

虽然意识到这是一个老问题,但它也是谷歌的第一个结果之一,我想分享对我有用的东西,同时避免额外的数据库查询。

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

if (file_exists(JPATH_ADMINISTRATOR . '/components/com_extension/extension.php') && JComponentHelper::isEnabled('com_extension', true))
    {
        // Your code here
    }
于 2014-04-02T20:49:18.563 回答
0

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

于 2012-07-23T07:53:17.753 回答
0

查看

JComponentHelper::isInstalled('com_extension');
于 2016-03-26T17:51:36.253 回答