ঠিক আছে তাই এই আমি গতকাল লিখছিলাম।
জুমলার জন্য কেবল 2.5 এবং 3.x
- উপস্থাপনাটি
http://
URL থেকে অনুপস্থিত কিনা তা পরীক্ষা করুন । যদি এটি হয়, তবে এটি এটি যুক্ত করে। লক্ষ্য করুন এই ক্ষেত্রে আমি আছে না নেয়া https://
বিবেচনা।
- এরপরে এটি জুমলা ম্যানিফেস্ট ফাইলটি পাওয়ার চেষ্টা করে এবং উপস্থিত / পঠনযোগ্য কিনা তা পরীক্ষা করে।
- যদি এটি বিদ্যমান থাকে তবে
<version>
ট্যাগ থেকে মানটি পায় ।
- যদি এক্সএমএল ফাইলটি পাঠযোগ্য না হয় তবে আমি টিনিএমসিই সংস্করণটি পেতে ফ্যালব্যাক লিখেছি। আবার, এটি
<version>
ট্যাগ থেকে মানটি পড়ার চেষ্টা করবে ।
- এখান থেকে, প্রতিটি জুমলা সংস্করণের জন্য টিনিএমসিই আপডেট রয়েছে কিনা তা দেখার জন্য আমি বেশ দীর্ঘ সময় অতিবাহিত করেছি quite যা তারা করেছে, আমি কোডটিতে
switch
ব্লকের সাথে যুক্ত হয়েছি । এই পদ্ধতির মধ্যে 2 টি বাদ দিয়ে সঠিক সংস্করণটি দেওয়া হবে না, তবে এটি গড় দেবে। আমি jQuery সংস্করণ সনাক্ত করার কথা ভাবছিলাম কিন্তু তখন বুঝতে পেরেছিলাম যে প্রচুর লোক মূল সংস্করণটিকে সর্বশেষে আপডেট করে যা ফলাফলগুলি ভুল করে তোলে।
- যদি টিনিএমসিই সংস্করণটি খুঁজে পাওয়া যায় না (সুতরাং মূলত একটি নন-জুমলা সাইট), তবে ফাংশনটি ফিরে আসবে
Unknown
।
দ্রষ্টব্য: এই স্ক্রিপ্টটি এটি ব্যবহার করে CURL
যাতে এটি আপনার সার্ভারে সক্ষম হয়েছে তা নিশ্চিত হন।
class JoomlaVersions
{
public function getJoomlaVersion($site)
{
// Add http prefix if missing
if (strpos($site,'http://') === false)
{
$site = 'http://'.$site;
}
// Get the number value from the <version> tag in the XML file
$dom = new DOMDocument;
$url = $site . '/administrator/manifests/files/joomla.xml';
libxml_use_internal_errors(true);
$exists = $this->XMLexists($url);
if( $exists )
{
$dom->load($url);
$versions = $dom->getElementsByTagName('version');
foreach ($versions as $version)
{
return $version->nodeValue;
}
}
else
{
$mce = $this->getTinyMCEversion($site);
if($mce)
{
// Base Joomla version on the TinyMCE version
switch ($mce)
{
case '3.5.6':
$joomla = '3.0.0 - 3.1.6';
break;
case '4.0.10':
$joomla = '3.2.0 - 3.2.1';
break;
case '4.0.12':
$joomla = '3.2.2';
break;
case '4.0.18':
$joomla = '3.2.3 - 3.2.4';
break;
case '4.0.22':
$joomla = '3.3.0';
break;
case '4.0.28':
$joomla = '3.3.1 - 3.3.6';
break;
case '4.1.7':
$joomla = '3.4.0';
break;
default:
$joomla = '3.x';
}
return $joomla;
}
else
{
return 'Unknown';
}
}
}
// Get TinyMCE Version
private function getTinyMCEversion($site)
{
$tinymce = $site . '/plugins/editors/tinymce/tinymce.xml';
libxml_use_internal_errors(true);
$exists = $this->XMLexists($tinymce);
if( $exists )
{
$dom->load($tinymce);
$vTag = $dom->getElementsByTagName('version');
foreach ($vTag as $tag)
{
return $tag->nodeValue;
}
}
}
// Check file exists using CURL
private function XMLexists($url)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$getinfo = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $getinfo;
}
}
তারপরে ফাংশনটি কল করুন:
$version = new JoomlaVersions;
echo $version->getJoomlaVersion('http://joomla.org');
আমি অন্য ব্যবহারকারীদের জন্য একটি সরঞ্জাম হিসাবে আমার ওয়েবসাইটে একটি মডিউল তৈরি করেছি:
জুমলা সংস্করণ সনাক্তকরণ সরঞ্জাম
আপনি যদি কাঁটাচামচ করতে বা টানতে অনুরোধ জমা দিতে চান তবে আমি একটি গিথুব সংগ্রহস্থলও তৈরি করেছি:
জুমলা সংস্করণ গিথুব রেপো সনাক্ত করুন
যাইহোক, আপনারা কেউ কেউ জানেন, আমি ব্যাকএন্ড বিকাশকারী নই তাই সম্ভবত কোডে কিছু উন্নতি হতে পারে। আপনার যদি অন্য কোনও সমাধান থাকে বা আমার বর্তমানে যা আছে তা আপডেট করতে পারলে এটি একটি নতুন উত্তর হিসাবে পোস্ট করতে ভুলবেন না।