XF 2.3 كود PHP لفحص وفلترة القوالب المتروكة (Outdated Templates) في XenForo الدرس (2)

الخطوة (2): سكربت PHP لفحص وفلترة القوالب المتروكة (Outdated Templates) في XenForo

السلام عليكم ورحمة الله وبركاته،

أهلاً بكم أخواني وأعضائنا الكرام في منتدى كود نت.

ضمن سلسلة الفحوصات والسكربتات السريعة لتسهيل إدارة وتطوير منتديات XenForo، نبدأ اليوم الدرس الثاني والتي نخصصها لفحص القوالب المتروكة أو القديمة (Outdated Templates).

عند ترقية سكربت XenForo إلى إصدار جديد، تتحدث القوالب الافتراضية للمنتدى. وإذا كنت قد أجريت تعديلات سابقة على بعض هذه القوالب، فإن النظام يحتفظ بتعديلاتك القديمة ويصنف القالب كـ "متروك" (Outdated) لحين مراجعته ودمجه.

هذا السكربت البسيط يتصل بقاعدة البيانات مباشرة ويقوم بجلب وفلترة جميع القوالب المتروكة مع عرض رقم الإصدار الخاص بالتعديل ورقم الإصدار الجديد، مما يتيح لك حصرها ومعرفتها فوراً.
IMG_9839.webp
الكود البرمجي:

PHP:
<?php

// تحديد مسار مجلد XenForo الرئيسي
$dir = __DIR__;

if (!file_exists($dir . '/src/XF.php'))
{
    die('خطأ: لم يتم العثور على ملفات XenForo. يرجى وضع الملف في المجلد الرئيسي للمنتدى.');
}

require($dir . '/src/XF.php');

\XF::start($dir);

$app = \XF::setupApp('XF\App');

// استعلام قاعدة البيانات لجلب القوالب المتروكة
$db = \XF::db();

$outdatedTemplates = $db->fetchAll("
    SELECT t.template_id, t.title, t.style_id, t.version_string, s.title AS style_title
    FROM xf_template AS t
    LEFT JOIN xf_style AS s ON (t.style_id = s.style_id)
    WHERE t.style_id > 0 AND t.is_outdated = 1
    ORDER BY t.style_id ASC, t.title ASC
");

echo '<h2>فحص القوالب المتروكة (Outdated Templates)</h2>';

if (empty($outdatedTemplates))
{
    echo '<strong style="color:green">ممتاز! لا توجد أي قوالب متروكة في الستايلات لديك.</strong>';
}
else
{
    echo '<p>تم العثور على (' . count($outdatedTemplates) . ') قالب بحاجة إلى مراجعة ودمج:</p>';
    echo '<table border="1" cellpadding="8" cellspacing="0" style="border-collapse:collapse; width:100%;">';
    echo '<tr style="background:#f2f2f2;"><th>اسم القالب</th><th>الستايل</th><th>إصدار القالب الحالي</th></tr>';

    foreach ($outdatedTemplates as $template)
    {
        echo '<tr>';
        echo '<td>' . htmlspecialchars($template['title']) . '</td>';
        echo '<td>' . htmlspecialchars($template['style_title']) . '</td>';
        echo '<td>' . htmlspecialchars($template['version_string']) . '</td>';
        echo '</tr>';
    }

    echo '</table>';
}

كيف يعمل السكربت؟

* الاتصال الآمن بيئة XenForo: يستدعي محرك \XF::start() لربط اتصال قاعدة البيانات ومعرفة الإعدادات الرسمية دون الحاجة لكتابة بيانات الاتصال يدوياً.
* استعلام مباشر ومفلتر: يبحث في جدول xf_template عن القوالب المخزنة في الستايلات (style_id > 0) والتي تحمل علامة is_outdated = 1.
* عرض نتائج منظم: يعرض قائمة اسم القالب، الستايل المتأثر، ورقم الإصدار الخاص بالتعديل لسهولة تتبعها.

طريقة الاستخدام:

1. قم بإنشاء ملف باسم check_outdated.php في الجذر الرئيسي للمنتدى.
2. ضع الكود أعلاه داخل الملف واحفظه.
3. افتح الرابط في متصفحك: https://your-domain.com/check_outdated.php
4. بعد الاطلاع على القوالب المتأثرة ومعالجتها من لوحة التحكم، قم بحذف الملف للحفاظ على الأمان.

انتظرونا في **الخطوة الثالثة** من سلسلة الفحوصات! إذا كانت لديك أي ملاحظات أو استفسارات، يسعدني مشاركتك في الردود.
 
عودة
أعلى أسفل