it-swarm-tr.com

Bir bileşenin kurulu / etkinleştirilmiş olup olmadığını kontrol etmenin en iyi yöntemi?

Joomla 2.5 ve 3.x arasında başka bir bileşenin kurulu ve/veya etkin olup olmadığını kontrol etmenin en iyi yolu nedir? JComponentHelper adında bir yardımcı sınıf var ama ben kontrol edilen bileşen bazı joomla sürümlerinde yüklü değilse isEnabled fonksiyonunun aslında bir hata atacağına inanıyorum.

Bu doğrudan veritabanına vurmak kadar basit olabilir ama insanların kullandığı diğer sınıflar/yardımcıları/yöntemleri olup olmadığını görmek istedim.

12
Spunkie

Bu şekilde kullanıyorum:

// Check for component
if (!JComponentHelper::getComponent('<component name>', true)->enabled)
{
.....
}

<component name> - "com_" öneki olmadan

12
Anibal

bunu dene,

Bileşenin kurulu ve etkinleştirilmiş olup olmadığını görmek için veritabanınızı kontrol edin.

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

$ is_enabled değeri 1 ise, bileşeniniz etkindir. aksi takdirde,

if (!JComponentHelper::isEnabled('com_mycomp', true))
{
    JError::raiseError('404', JText('Component not installed / enabled'));
}
4
kumarramalingam

Bileşen yoksa bazı sürümlerin bir hata görüntülemesi konusunda haklısınız. Bildiğim kadarıyla JComponentHelper::getComponent('com_name', true)->enabled bir bileşenin etkinleştirilip etkinleştirilmediğinin en iyi kontrolüdür.

Joomla 3.0 ve üzeri sürümlerde, bileşen yüklü olmasa bile bunu kullanabilirsiniz.

Joomla 2.5'te, en son sürüm (2.5.19) bile bileşen kurulmamışsa son kullanıcıya verilecek bir JError::raiseWarning Mesajı atar. J2.5'i desteklemek istiyorsanız, bileşeni yüklemek için kendi yardımcınızı kullanmanız gerektiği anlaşılıyor. (JComponentHelper'ı genişleten ve yalnızca küçük değişiklikle aynı özellikleri elde etmek için _load İşlevini geçersiz kılan yeni bir yardımcı olabilirsiniz.)

3
David Fritsch