답변:
이 시도,
구성 요소가 설치되어 사용 가능한지 데이터베이스를 확인하십시오.
$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에서는 최신 릴리스 (2.5.19)조차도 JError::raiseWarning
구성 요소가 설치되지 않은 경우 최종 사용자에게 출력 되는 메시지를 표시합니다. J2.5를 지원하려면 구성 요소를로드하기 위해 자체 도우미를 사용해야 할 것 같습니다. (JComponentHelper를 확장하고 _load
함수를 재정 의하여 사소한 변경으로 동일한 기능을 얻는 새로운 도우미를 만들 수 있습니다.)