方法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');