কোনও উপাদান ইনস্টল / সক্ষম আছে কিনা তা যাচাই করার সর্বোত্তম পদ্ধতি?


12

জুমলা ২.৫ এবং ৩.x এর মধ্যে অন্য কোনও উপাদান ইনস্টলড এবং / অথবা সক্ষম আছে কিনা তা যাচাই করার সবচেয়ে ভাল উপায় কী? সেখানে একটি সহায়ক শ্রেণীর নাম রয়েছে JComponentHelperকিন্তু আমি বিশ্বাস করি isEnabledযে উপাদানটি চেক করা হচ্ছে কিছু জুমলা সংস্করণে ইনস্টল করা না থাকলে ফাংশনটি আসলে একটি ত্রুটি ফেলে দেয়।

এটি সরাসরি ডাটাবেসটিকে আঘাত করার মতোই সহজ হতে পারে তবে আমি দেখতে চেয়েছিলাম লোকেরা ব্যবহার করে এমন অন্যান্য শ্রেণি / সহায়ক / পদ্ধতি রয়েছে কিনা।

উত্তর:


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কোনও উপাদান সক্ষম করা আছে কিনা তা সেরা পরীক্ষা।

জুমলা 3.0.০ এবং তারপরে, আপনি উপাদানটি ইনস্টল না করা থাকলেও এটি ব্যবহার করতে পারেন।

জুমলা ২.৫-তে, এমনকি সর্বশেষতম প্রকাশনা (২.২.১৯) একটি JError::raiseWarningবার্তা ফেলবে যা উপাদানটি ইনস্টল না করা থাকলে শেষ ব্যবহারকারীর কাছে আউটপুট হবে। আপনি J2.5 সমর্থন করতে চাইলে, মনে হয় উপাদানটি লোড করতে আপনাকে নিজের সাহায্যকারী ব্যবহার করতে হবে। (আপনি সম্ভবত একটি নতুন সহায়ক তৈরি করতে পারেন যা জে কমপোনেন্টহেল্পার প্রসারিত করে এবং কেবল _loadসামান্য পরিবর্তন সহ একই বৈশিষ্ট্যগুলি পেতে ফাংশনটিকে ওভাররাইড করে ))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.