วิธีที่ดีที่สุดในการตรวจสอบว่ามีการติดตั้ง / เปิดใช้งานส่วนประกอบหรือไม่


12

ระหว่าง joomla 2.5 และ 3.x เป็นวิธีที่ดีที่สุดในการตรวจสอบว่ามีการติดตั้งส่วนประกอบอื่น ๆ และ / หรือเปิดใช้งานอย่างไร? มีคลาสผู้ช่วยที่เรียกว่าJComponentHelperแต่ฉันเชื่อว่าisEnabledฟังก์ชั่นจะโยนข้อผิดพลาดจริง ๆ ถ้าองค์ประกอบที่กำลังตรวจสอบไม่ได้ติดตั้งใน joomla บางรุ่น

สามารถทำได้ง่ายเพียงกดปุ่มฐานข้อมูลโดยตรง แต่ฉันต้องการดูว่ามีคลาส / ผู้ช่วยเหลือ / วิธีการอื่น ๆ ที่ผู้ใช้ใช้หรือไม่

คำตอบ:


12

ฉันใช้วิธีนี้:

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

<component name> - ไม่มีคำนำหน้า "com_"


4

ลองนี้

ตรวจสอบฐานข้อมูลของคุณเพื่อดูว่ามีการติดตั้งและเปิดใช้งานคอมโพเนนต์หรือไม่

$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'));
}

3

คุณถูกต้องที่บางรุ่นจะแสดงข้อผิดพลาดหากองค์ประกอบนั้นไม่มีอยู่ เท่าที่ฉันทราบJComponentHelper::getComponent('com_name', true)->enabledดีที่สุดคือการตรวจสอบว่ามีการเปิดใช้งานองค์ประกอบหรือไม่

ใน Joomla 3.0 ขึ้นไปคุณสามารถใช้สิ่งนี้ได้แม้ว่าจะไม่ได้ติดตั้งส่วนประกอบ

ใน Joomla 2.5 แม้กระทั่งรีลีสล่าสุด (2.5.19) จะส่งJError::raiseWarningข้อความที่จะส่งไปยังผู้ใช้ปลายทางหากไม่ได้ติดตั้งส่วนประกอบ หากคุณต้องการสนับสนุน J2.5 ดูเหมือนว่าคุณจะต้องใช้ผู้ช่วยของคุณเองในการโหลดส่วนประกอบ (คุณอาจสร้างผู้ช่วยใหม่ที่ขยาย JComponentHelper และแทนที่_loadฟังก์ชันเพื่อรับคุณสมบัติเดียวกันโดยมีการเปลี่ยนแปลงเล็กน้อย)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.