إعادة هيكلة أسماء الحقول في LimeSurvey 7
From LimeSurvey Manual
إعادة هيكلة أسماء الحقول وجداول الردود - LimeSurvey 7
يقدّم LimeSurvey 7 عملية تنظيف شاملة لطريقة إنشاء جداول الردود وأسماء الحقول. يعمل هذا التحديث على تحديث اصطلاحات التسمية الداخلية القديمة، ويوفّر أساسًا أكثر قابلية للتنبؤ ومتانة للإضافات والتكاملات والتطوير المستقبلي.
تركّز هذه الصفحة على إعادة هيكلة جدول الردود وأسماء الحقول.
نظرًا لأن هذا التغيير هيكلي، فقد يتطلب أي عمل مخصص يعتمد على التسمية القديمة إجراء تحديثات. توضح هذه الصفحة ما الذي يتغيّر، وكيفية الاختبار بأمان، وكيفية الاستعداد للترقية.
1. ما الذي يتغيّر
1.1 أسماء الجداول الجديدة
يستخدم LimeSurvey الآن نظام تسمية متسقًا للجداول المتعلقة بالردود.
| اسم الجدول القديم | اسم الجدول الجديد |
|---|---|
old_survey_<sid>_<timestamp>
|
old_responses_<sid>_<timestamp>
|
old_survey_<sid>_timings_<timestamp>
|
old_timings_<sid>_<timestamp>
|
survey_<sid>
|
responses_<sid>
|
survey_<sid>_timings
|
timings_<sid>
|
قد تتطلب أي استعلامات SQL أو تكاملات أو إضافات تشير إلى هذه الجداول إجراء تعديلات.
1.2 هيكل أسماء الحقول الجديد
تتبع أسماء الحقول الآن تنسيقًا متسقًا وقابلًا للتنبؤ. أمثلة:
Q<questionId>- السؤال الجذرQ<questionId>_S<subquestionId>- الأسئلة الفرعيةQ<questionId>_C<suffix>- التعليق أو الحقول الأخرى- حقول الترتيب:
Q<questionId>_S<subquestionId>- عناصر الترتيب أصبحت الآن أسئلة فرعية (انظر 1.3) - حقول التوقيتات: على مستوى السؤال أو على مستوى المجموعة بحسب السياق
يحل هذا محل التسمية القديمة المعتمدة على sidXgidXqid.
1.3 أسئلة الترتيب
تعمل أسئلة الترتيب الآن مثل أنواع الأسئلة الأخرى المعتمدة على الأسئلة الفرعية:
- العناصر هي أسئلة فرعية. يتم تخزين العناصر القابلة للترتيب كأسئلة فرعية (النوع
R)، وليس كخيارات إجابة. - أسماء الحقول تستخدم تنسيق السؤال الفرعي القياسي
Q<questionId>_S<subquestionId>(واحد لكل عنصر مرتّب). - الردود يتم تخزينها في عمود JSON واحد
Q<questionId>، على شكل صفيف مرتّب من رموز العناصر حيث الموضع = الترتيب. مثال:["3", "1", "2"]
2. لماذا هذا مهم
يعالج هذا التنظيف أنماط تسمية تم تحديدها رسميًا واستخدامها على مدى سنوات عديدة، ويضعها في هيكل متسق ومتين يمكننا البناء عليه في المستقبل.
نادرًا ما تكون التغييرات الهيكلية من هذا النوع بسيطة. فهي تمسّ أجزاء من النظام تعتمد عليها العديد من الإضافات والتكاملات، ولهذا السبب غالبًا ما يتم تأجيلها بسبب تعقيدها. لكن الحفاظ على الاتساق وقابلية التنبؤ أمر مهم للاستقرار على المدى الطويل.
من خلال معالجة هذا الأمر الآن، نجعل LimeSurvey أنظف وأسهل في التوسعة، حتى لو كان التغيير غير مرئي في معظمه على السطح.
3. كيفية معاينة أسماء الحقول الجديدة
لمعرفة كيف سيتم تحويل أي اسم حقل موجود إلى هيكل LS7 الجديد، يمكنك تنفيذ الخطوات التالية:
- أنشئ نسخة احتياطية من قاعدة البيانات، لأن التغييرات غير قابلة للتراجع، وفي حال حدوث خطأ سيكون من المفيد وجود قاعدة البيانات السابقة للتغيير لاستعادتها
- اجلب الفرع develop-major:
git checkout develop-major
أو استنسخ/نزّل المشروع مباشرة من هذا الفرع عبر https://github.com/LimeSurvey/LimeSurvey/tree/develop-major - حمّل صفحة إدارية لتشغيل سكربت التغيير
- أبلغ عن أي خطأ قد يظهر أثناء تنفيذ سكربت التغيير
- ادرس أسماء الجداول وأسماء الحقول الجديدة
- اختبر الإضافات/القوالب لديك وأصلح الأخطاء المتعلقة بأسماء الجداول و/أو أسماء الحقول
الدالة المستخدمة لتحويل أسماء الحقول القديمة إلى أسماء حقول جديدة هي التالية:
getFieldName($tableName, $fieldName, $questions, $sid, $gid, $cd)
المعاملات
- $tableName - اسم الجدول الأصلي
- $fieldName - اسم الحقل الأصلي
- $questions - السؤال الجذر وأسئلته الفرعية
- $sid - ID الإستبيان
- $gid - معرف مجموعة
- $cd - ما إذا كان منطق مصمم الشرط ينطبق
النتيجة
تعيد الدالة اسم حقل LS7 الجديد لحقل الرد هذا.
4. كيفية اختبار التغييرات بأمان
يوصى بشدة باختبار LS7 في بيئة مخصصة قبل ترقية أنظمة الإنتاج.
4.1 تثبيت LS7 في بيئة منفصلة
نزّل أحدث إصدار من LS7 من:
https://community.limesurvey.org
ثبّته بشكل منفصل عن إعدادك الحالي.
4.2 استيراد الأصول الحالية لديك
قم بالاختبار باستخدام:
- الاستبيانات
- قوالب الاسبيان
- قوالب الإدارة
- قوالب الأسئلة
- الإضافات
- JavaScript المخصص
- أي تكاملات مخصصة قمت بإنشائها
تحقق مما إذا كان كل شيء يعمل كما هو متوقع مع التسمية الجديدة للجداول وأسماء الحقول. قم بتحديث أي كود يعتمد على التسمية القديمة.
4.3 كيفية تشغيل الترحيل؟
إذا كنت ترغب في معاينة منطق الترحيل في نسخة الاختبار الخاصة بك:
- قم بعمل نسخة احتياطية من قاعدة البيانات.
- قم بتثبيت إصدار LS7.
- افتح أي صفحة إدارة لتشغيل نص الترحيل البرمجي.
- راجع التغييرات في الجداول وأسماء الحقول.
- اختبر التطبيق.
- قم بتحديث الكود المخصص عند الضرورة.
4.4 الإبلاغ عن المشكلات
نشكرك على الاختبار المبكر. إذا لاحظت أي شيء يبدو غير صحيح في النواة، يرجى الإبلاغ عنه حتى نتمكن من إصلاحه في أقرب وقت ممكن.
5. ما قد يتطلب التحديث
قد تحتاج العناصر التالية إلى تعديلات:
- الإضافات التي تشير إلى أسماء الحقول أو أسماء الجداول القديمة
- أي تكاملات مخصصة قمت بإنشائها
- JavaScript الذي يستخدم محددات تعتمد على أسماء الحقول
- القوالب المخصصة التي تتعامل مع معرّفات متعلقة بالردود
- التكاملات التي تعتمد على نظام التسمية السابق
- استيراد ملفات التصدير القديمة مثل الاستبيان والقوالب وقوالب الأسئلة وغيرها.
هذا أمر متوقع وجزء من عملية الترقية.
6. ملخص
- يقدم LS7 تنظيفاً شاملاً لتسمية جداول الردود وأسماء الحقول
- هذا هو التغيير الهيكلي الرئيسي في الواجهة الخلفية لـ LS7
- يوصى بشدة بالاختبار في بيئة منفصلة
- تساعد الدالة
getFieldName()على معاينة التسمية المستقبلية - قم بتحديث الكود المخصص عند الحاجة
- أبلغ عن المشكلات مبكراً للمساعدة في استقرار الإصدار النهائي