Answers:
尝试这个,
检查您的数据库以查看是否已安装并启用了该组件。
$db = JFactory::getDbo();
$db->setQuery("SELECT enabled FROM #__extensions WHERE name = 'com_name'");
$is_enabled = $db->loadResult();
如果$ is_enabled的值为1,则您的组件已启用。除此以外,
if (!JComponentHelper::isEnabled('com_mycomp', true))
{
JError::raiseError('404', JText('Component not installed / enabled'));
}
没错,如果该组件不存在,某些版本将显示错误。据我所知JComponentHelper::getComponent('com_name', true)->enabled
,最好是检查是否启用了组件。
在Joomla 3.0及更高版本中,即使未安装组件,也可以使用它。
在Joomla 2.5中,即使JError::raiseWarning
未安装该组件,即使是最新版本(2.5.19)也会抛出一条消息,该消息将输出到最终用户。如果要支持J2.5,则似乎必须使用自己的帮助程序来加载组件。(您可能会制作一个扩展JComponentHelper的新帮助程序,并且_load
只需进行较小的更改即可覆盖该函数以获取相同的功能。)