محرر القالب
From LimeSurvey Manual
مقدمة
يتحكم تصميم الاستبيان في مظهر الاستبيان للمشاركين: تخطيط الصفحة والألوان والخطوط والشعارات وتنسيق كل سؤال. تُبنى القوالب باستخدام قوالب Twig وCSS وJavaScript، وتستخدم Bootstrap 5 كإطار عمل CSS.
لا تحتاج كثير من التغييرات الشائعة إلى أي شيفرة برمجية. يمكن تغيير الشعار والألوان والخطوط وعدة إعدادات للعرض من خلال خيارات القالب. استخدم محرر القالب الموضح في هذه الصفحة عندما تريد المزيد: إضافة CSS أو JavaScript خاص بك، أو تغيير HTML لصفحة ما، أو تحميل الصور وملفات أخرى لقالبك.
يأتي LimeSurvey مع قوالب الاستبيان الأساسية التالية:
- Fruity TwentyThree (
fruity_twentythree): القالب الافتراضي. - Bootstrap Vanilla (
vanilla): قالب أساسي بسيط للمطورين الذين يريدون بناء قالبهم الخاص المعتمد على Bootstrap. - Fruity (
fruity) وBootswatch (bootswatch): كلاهما يمدّد Bootstrap Vanilla.
يتحكم في مظهر أنواع الأسئلة الفردية قوالب الأسئلة، وليس تصميم الاستبيان. لتغيير HTML لنوع سؤال، أنشئ قالب سؤال.
قبل أن تبدأ
لاستخدام محرر القالب، تحتاج إلى إذن القوالب العام (انظر الأذونات العامة) أو أن تكون كبير المشرفين. يتطلب تمديد قالب حق انشأ، ويتطلب حفظ التغييرات حق حدث، ويتطلب حذف قالب أو إعادة تعيين ملف حق امسح.
لا يمكن تحرير القوالب الأساسية: قم بتمديدها
تُحدَّث القوالب الأساسية مع LimeSurvey، لذلك لا يمكنك تغييرها مباشرة. لتخصيص أحدها، قم بتمديده. ينشئ التمديد قالب مستخدم جديدًا يرث كل شيء من قالبه الأصلي. يحتوي قالبك فقط على الملفات التي تغيّرها، أما كل ما عدا ذلك فيؤخذ من القالب الأصلي. وبهذه الطريقة يستمر قالبك في الحصول على إصلاحات الأخطاء والتحسينات عندما يحدّث LimeSurvey القالب الأصلي.
لتمديد قالب، قم بأحد الإجراءين التاليين:
- انتقل إلى إعدادات > القوالب، وافتح قائمة الإجراءات (⋯) في نهاية صف القالب وانقر على تمديد، أو
- افتح القالب في محرر القالب وانقر على تمديد في شريط الأدوات.
أدخل اسمًا للقالب الجديد. يفتح محرر القالب بعد ذلك قالبك الجديد.
أين تُخزَّن القوالب
- القوالب الأساسية:
themes/survey/في تثبيت LimeSurvey الخاص بك. - قوالب المستخدم (القوالب الممدَّدة أو المحمَّلة أو المستوردة):
upload/themes/survey/.
يمكنك أيضًا تحرير ملفات قالب المستخدم مباشرة على الخادم باستخدام المحرر الخاص بك. تأكد من أن خادم الويب لا يزال قادرًا على قراءة الملفات وكتابتها بعد ذلك، حتى تتمكن من مواصلة استخدام محرر القالب أيضًا.
محرر القالب
لفتح محرر القالب، انتقل إلى إعدادات > القوالب، وافتح قائمة الإجراءات (⋯) في نهاية صف القالب وانقر على محرر القالب.
إذا فتحت قالبًا أساسيًا، تظهر ملاحظة تخبرك بأنه قالب قياسي وتتيح رابطًا لتمديده. يمكنك الاطلاع على ملفاته والمعاينة، لكن لا يمكنك حفظ التغييرات.
شريط الأدوات
- تصدير: ينزّل القالب كملف ZIP.
- تمديد: ينشئ قالبًا جديدًا يرث من هذا القالب (انظر أعلاه).
- إعادة تسمية: يعيد تسمية القالب. متاح فقط لقوالب المستخدم.
- امسح: يحذف القالب. لا يمكنك حذف القالب المعيَّن كقالب افتراضي.
- القالب: يحوّل محرر القالب إلى قالب آخر.
- شاشة: تحدد صفحة الاستبيان التي تظهر في المعاينة والملفات المدرجة للتحرير. الشاشات هي: سؤال، لائحة الاستبيان، ترحيب، مكتمل، التقييمات، خطأ، امسح الكل، تحميل، حفظ، تسجيل، اطبع الإجابات، إحصاءات عامة، PDF، تجاوزت الحصص، تنقل ومشارك.
تحرير الملفات
تعرض اللوحات الموجودة على اليمين الملفات المستخدمة في الشاشة المحددة:
- ملفات جزء الشاشة: قوالب Twig التي تبني الصفحة.
- ملفات JavaScript
- ملفات CSS
- ملفات أخرى: الصور والخطوط وأي ملفات أخرى للقالب.
انقر على اسم ملف لفتحه في المحرر. الملفات المعلَّمة بـموروث تأتي من القالب الأصلي. لا يزال بإمكانك تحرير ملف موروث: يظهر عندئذٍ على الزر أسفل المحرر نسخ إلى السمة المحلية وحفظ التغييرات، ويؤدي الحفظ إلى نسخ الملف إلى قالبك مع تغييراتك. ومن ذلك الحين تُستخدم نسختك بدلًا من ملف القالب الأصلي.
الملفات التي تنتمي إلى قالبك لها زر أعد. تؤدي إعادة التعيين إلى حذف نسختك، فيُستخدم ملف القالب الأصلي مرة أخرى.
تحميل الملفات
استخدم حقل التحميل في أسفل لوحة ملفات أخرى لإضافة صور أو خطوط أو ملفات أخرى إلى قالبك. تُخزَّن الملفات المحمَّلة في مجلد files/ الخاص بالقالب. افتراضيًا، يمكنك تحميل الصور (gif وico وjpg وjpeg وpng) وأنواع الملفات التالية: css وjs وmap وjson وeot وotf وttf وwoff وwoff2 وtxt وmd وxml وtwig وlss وlsa وlsq وlsg. يمكن للمشرف تغيير هذه القوائم باستخدام الإعدادات allowedthemeimageformats وallowedthemeuploads في config.php.
لعرض صورة محمَّلة في ملف Twig، استخدم الدالة image():
{{ image('./files/myfile.png', 'Alternative text for the picture', {"class": "myclass"}) }}
في ملفات CSS، أشر إلى الملفات المحمَّلة بمسار نسبي إلى مجلد css، على سبيل المثال url('../files/background.jpg').
معاينة
أسفل المحرر، تعرض المعاينة الشاشة المحددة مع محتوى تجريبي. استخدم الأزرار الجوال و640x480 و800x600 و1024x768 وكاملا للتحقق من الصفحة بأحجام شاشة مختلفة.
تستخدم المعاينة بيانات تجريبية وقد لا تعرض كل نمط تماما كما يظهر في استبيان حقيقي. تحقق دائما من تغييراتك في معاينة استبيان حقيقي أيضا.
استيراد القوالب وتصديرها
- لنقل قالب إلى تثبيت آخر من LimeSurvey، انقر على تصدير في شريط أدوات محرر القالب. سيؤدي ذلك إلى تنزيل القالب كملف ZIP.
- لتثبيت قالب من ملف ZIP، انتقل إلى إعدادات > القوالب وانقر على تحميل وتثبيت.
كيف يتم بناء القالب
مجلد القالب
يحتوي مجلد القالب على:
- config.xml: بيان القالب: الاسم والقالب الأصل وملفات CSS وJavaScript وخيارات القالب والشاشات المعروضة في محرر القالب.
- views/: قوالب Twig. يعد
layout_global.twigالتخطيط الرئيسي لمعظم صفحات الاستبيان. تُستخدم تخطيطات أخرى للصفحات الخاصة، مثلlayout_survey_list.twigلقائمة الاستبيانات العامة وlayout_errors.twigلصفحات الأخطاء. يحتوي المجلدviews/subviews/على القوالب الأصغر التي تضمّنها التخطيطات. - css/ وscripts/: ملفات CSS وJavaScript الخاصة بالقالب.
- files/: الصور والملفات الأخرى التي يستخدمها القالب.
- options/: صفحة خيارات القالب.
قوالب Twig
تتلقى القوالب بيانات الاستبيان في المتغير aSurveyInfo. لمشاهدة كل ما يحتويه، فعّل وضع التصحيح في application/config/config.php وأضف هذا السطر إلى نهاية عنصر body في layout_global.twig:
{{ dump(aSurveyInfo) }}
للاطلاع على الدوال التي يمكنك استخدامها في القوالب، راجع دوال Twig المتاحة. لأسباب أمنية، تعمل القوالب في بيئة معزولة (sandbox)، لذا لا تتوفر سوى هذه الدوال.
config.xml
يسرد القسم <files> ملفات CSS وJavaScript التي يتم تحميلها في صفحات الاستبيان:
<add>يضيف ملفا. إذا كان القالب الأصل يحتوي بالفعل على ملف بالاسم نفسه، فسيحل ملفك محله.<remove>يمنع تحميل ملف من القالب الأصل.
لا تحتاج إلى سرد ملفات القالب الأصل مرة أخرى: فهي تُحمَّل على أي حال.
يقرأ LimeSurvey الملف config.xml عند تثبيت القالب ويخزن الإعدادات في قاعدة البيانات. بعد تغيير config.xml لقالب مثبت، انتقل إلى إعدادات > القوالب، وافتح قائمة الإجراءات (⋯) الخاصة بالقالب وانقر على أعد لإعادة تحميل الملف.
إضافة CSS وJavaScript الخاصين بك
يحتوي كل قالب أساسي على ملفين مخصصين للشفرة الخاصة بك:
- css/custom.css: يتم تحميله بعد جميع ملفات CSS الأخرى، لذا تتغلب قواعده على أنماط القالب.
- scripts/custom.js: يتم تحميله بعد JavaScript الخاص بالقالب.
عند توسيع قالب، فهذه هي الملفات التي يجب تغييرها. أضف CSS الخاص بك إلى custom.css بدلا من تحرير ملفات CSS الرئيسية للقالب، حتى يستمر قالبك في تلقي تحديثات القالب الأصل.
لإضافة ملفات أخرى، قم بتحميلها واسردها في القسم <files> من ملف config.xml الخاص بقالبك. استخدم اسم ملف غير موجود في القالب الأصل، وإلا فسيحل ملفك محل ملف القالب الأصل:
<files>
<css>
<add>css/my-styles.css</add>
</css>
<js>
<add>scripts/my-script.js</add>
</js>
</files>
يتم تحميل صفحات الاستبيان باستخدام Ajax افتراضيا، لذا لا يقوم المتصفح بتحميل كامل للصفحة عندما ينتقل المشارك إلى الصفحة التالية. شغّل JavaScript الخاص بك عند التحميل الأول للصفحة وعند كل تحميل لصفحة عبر Ajax:
$(document).on('ready pjax:scriptcomplete', function () {
// Your code here
});
تنسيق الأسئلة باستخدام CSS
جميع الأمثلة في هذا القسم توضع في ملف custom.css الخاص بقالبك.
فئات الصفحة
يحمل العنصران <html> و<body> فئات يمكنك استخدامها لتنسيق الصفحات بالكامل:
- html: رمز اللغة (على سبيل المثال
en) واتجاه النص (dir-ltrأوdir-rtl). - body: اسم القالب واسم كل قالب أصل (على سبيل المثال
fruity_twentythree)، والخط (على سبيل المثالfont-ibm-sans)، واللغة (على سبيل المثالlang-en)، وbrand-logoعند عرض الشعار.
فئات حاوية السؤال
يتم تغليف كل سؤال في عنصر يحمل الفئة question-container. كما يحمل أيضا:
- فئة نوع السؤال (راجع الجدول أدناه).
mandatory: السؤال إلزامي أو إلزامي بشكل مرن.input-error: لم تجتز الإجابة التحقق من الصحة، أو لم تتم الإجابة عن سؤال إلزامي.missing: لا يزال السؤال يحتوي على أجزاء بلا إجابة وقد تجاوزه المشارك بالفعل.ls-hiddenوls-irrelevant: السؤال مخفي بسبب شرطه.ls-hidden-attribute: السؤال مخفي بسبب إعداد "دائما اخف هذا السؤال".- أي فئات يتم إدخالها في إعداد فئة (مجموعات) CSS الخاص بالسؤال (ضمن اعرض). استخدم هذا لتنسيق أسئلة فردية.
على سبيل المثال، سؤال قائمة (راديو) إلزامي لم تتم الإجابة عنه:
<div id="question123" class="row list-radio mandatory input-error question-container">
...
</div>
فئات نوع السؤال
| نوع السؤال | الفئة | رمز النوع |
|---|---|---|
| اختيار 5 نقاط | .choice-5-pt-radio | 5 |
| صفيف | .array-flexible-row | F |
| صف( اختيار 5 نقاط) | .array-5-pt | A |
| صف( اختيار 10 نقاط) | .array-10-pt | B |
| مجموعة (الزيادة / نفس / النقص) | .array-increase-same-decrease | E |
| صفيف (أرقام) | .array-multi-flexi | : |
| مجموعة (النصوص) | .array-multi-flexi-text | ; |
| صفيف (نعم/غير متأكد/لا) | .array-yes-uncertain-no | C |
| صفيف مرتب حسب الاعمدة | .array-flexible-column | H |
| صفيف المقياس المزدوج | .array-flexible-dual-scale | 1 |
| التاريخ/الوقت | .date | D |
| معادلة | .equation | * |
| رفع ملف | .upload-files | | |
| الجنس | .gender | G |
| نص حر كبير | .text-huge | U |
| مفتاح اللغة | .language | I |
| القائمة( المنسدلة) | .list-dropdown | ! |
| قائمة ( راديو) | .list-radio | L |
| قائمة بها تعليقات | .list-with-comment | O |
| نص حر طويل | .text-long | T |
| خيار متعدد | .multiple-opt | M |
| خيار متعدد مه تعليقات | .multiple-opt-comments | P |
| مدخل عددي متعدد | .numeric-multi | K |
| نص قصير مركب/ مزدوج | .multiple-short-txt | Q |
| المدخل العددي | .numeric | N |
| ترتيب | .ranking | R |
| نص حر قصير | .text-short | S |
| إظهار المعلومات المكتوبة (النصوص) | .boilerplate | X |
| نعم/لا | .yes-no | Y |
فئات أجزاء السؤال
داخل حاوية السؤال، تستخدم منطقة الإجابات هذه الفئات. يعتمد بعضها على إعدادات عرض السؤال: على سبيل المثال، يستخدم صفيف (أرقام) فئات مختلفة عندما يعرض مربعات اختيار بدلا من قوائم منسدلة.
| الفئة | الاستخدام | تستخدمه (أمثلة) |
|---|---|---|
| .ls-answers | العنصر الذي يحتوي على جميع خيارات الإجابة | جميع أنواع الأسئلة |
| .answers-list | قائمة أو صف من خيارات الإجابة | قائمة ( راديو)، خيار متعدد، ترتيب، صفوف معظم الصفائف |
| .subquestion-list, .questions-list | قائمة أو جدول من الأسئلة الفرعية | الصفائف، نص قصير مركب/ مزدوج، مدخل عددي متعدد |
| .answer-item | خيار إجابة أو مدخل واحد | جميع أنواع الأسئلة تقريباً |
| .noanswer-item | خيار "بدون إجابة" | الصفائف، اختيار 5 نقاط، قائمة بها تعليقات |
| .question-item | سؤال فرعي يعمل أيضاً كإجابة | خيار متعدد، نص قصير مركب/ مزدوج، مدخل عددي متعدد |
| .radio-list | قائمة أو صف من أزرار الراديو | قائمة ( راديو)، اختيار 5 نقاط، قائمة بها تعليقات، صفوف صفائف الراديو |
| .radio-array | جدول من أزرار الراديو | صفيف، صف( اختيار 5 نقاط)، صف( اختيار 10 نقاط)، مجموعة (الزيادة / نفس / النقص)، صفيف (نعم/غير متأكد/لا) |
| .radio-item | زر راديو واحد مع علامته | قائمة ( راديو)، اختيار 5 نقاط، قائمة بها تعليقات، صفائف الراديو |
| .checkbox-list | قائمة من مربعات الاختيار | خيار متعدد، خيار متعدد مه تعليقات |
| .checkbox-array | جدول من مربعات الاختيار | صفيف (أرقام) مع تصميم صندوق الاختيار |
| .checkbox-item | مربع اختيار واحد مع علامته | خيار متعدد، خيار متعدد مه تعليقات، صفيف (أرقام) مع تصميم صندوق الاختيار |
| .checkbox-text-item | مربع اختيار مع حقل نصي | خيار متعدد مه تعليقات |
| .comment-item | حقل التعليق بجانب مربع الاختيار | خيار متعدد مه تعليقات |
| .text-list | قائمة من المدخلات النصية | نص قصير مركب/ مزدوج، مدخل عددي متعدد |
| .text-item | مدخل نصي واحد | نص حر قصير وطويل وكبير، نص قصير مركب/ مزدوج، مجموعة (النصوص) |
| .number-list, .numeric-item | المدخلات العددية | مدخل عددي متعدد، المدخل العددي |
| .number-array | جدول من المدخلات العددية | صفيف (أرقام)، مجموعة (النصوص) |
| .text-array | جدول من المدخلات النصية | مجموعة (النصوص)، صفيف (أرقام) |
| .dropdown-array, .dropdown-list, .dropdown-item | جداول وصفوف وخلايا تحتوي على قوائم منسدلة | صفيف (أرقام)، صفيف المقياس المزدوج مع قوائم منسدلة |
| .date-item | مدخل التاريخ | التاريخ/الوقت |
| .upload-item | منطقة رفع الملفات | رفع ملف |
| .answertext | نص السؤال الفرعي في صف من صفيف | الصفائف |
| .col-answers | عمود نصوص الأسئلة الفرعية | الصفائف |
| .ls-heading | صف الرأس الذي يحتوي على خيارات الإجابة | الصفائف |
| .ls-odd, .ls-even | الصفوف المتبادلة | الصفائف |
| .ls-label-xs-visibility | علامة تظهر فقط على الشاشات الصغيرة ولقارئات الشاشة | خلايا الصفائف |
| .ls-input-group-extra | بادئة أو لاحقة المدخل | نص حر قصير، المدخل العددي، نص قصير مركب/ مزدوج، مدخل عددي متعدد |
| .ls-js-hidden | مخفي عندما تكون JavaScript نشطة | صفيف المقياس المزدوج، قائمة ( راديو) |
| .ls-no-js-hidden | مخفي عندما لا تكون JavaScript نشطة | ترتيب |
| .ls-js-hidden-sr | مخفي عندما تكون JavaScript نشطة، لكن تقرأه قارئات الشاشة | ترتيب |
no-anwser-item (بهذا الإملاء) بدلاً من noanswer-item.فيما يلي مثال على كود HTML لإجابات سؤال من نوع قائمة ( راديو):
<ul class="ls-answers answers-list radio-list list-unstyled" role="radiogroup">
<li id="javatbdQ123_S456" class="answer-item radio-item">
<input type="radio" value="A" name="Q123" id="answerQ123A">
<label for="answerQ123A" class="control-label radio-label">Option A</label>
</li>
...
</ul>
فئات التحقق من الصحة والنصائح
تحمل نصائح التحقق من الصحة (مثل "اختر إحدى الإجابات التالية" أو "الرجاء إدخال رقم بين 1 و10") دائماً الفئة ls-em-tip. أثناء إجابة المشارك، يضيف LimeSurvey الفئة ls-em-success عند استيفاء شرط النصيحة والفئة ls-em-error عند عدم استيفائه، بحيث يمكنك تنسيق الحالتين بشكل مختلف. أما النصائح المخفية بواسطة إعداد اخف النصيحة الخاص بالسؤال فتحصل على الفئة hide-tip.
لكل نصيحة أيضاً فئة خاصة بنوعها:
| الفئة | النصيحة |
|---|---|
| .em_default | النصيحة الافتراضية لنوع السؤال (مثل "اختر إحدى الإجابات التالية") |
| .em_num_answers | الحد الأدنى أو الأقصى لعدد الإجابات |
| .em_value_range | الحد الأدنى أو الأقصى للقيمة |
| .em_sum_range | الحد الأدنى أو الأقصى لمجموع القيم |
| .em_sum_equals | يجب أن يساوي مجموع القيم إجمالياً محدداً |
| .em_value_integer | يُسمح بالأعداد الصحيحة فقط |
| .em_numbers_only | يُسمح بالأرقام فقط |
| .em_other_numbers_only | يُسمح بالأرقام فقط في حقل "آخر" |
| .em_other_comment_mandatory | تم تحديد خيار "آخر" لكن حقله النصي فارغ |
| .em_regex_validation | يجب أن تطابق الإجابة نمط التحقق من الصحة |
| .em_q_fn_validation | معادلة التحقق من صحة السؤال |
| .em_sq_fn_validation | معادلة التحقق من صحة السؤال الفرعي |
اللغات من اليمين إلى اليسار (RTL)
بالنسبة للغات من اليمين إلى اليسار، يحمل العنصر <html> الفئة dir-rtl، وتقوم القوالب الأساسية بتحميل نسخة RTL من ملف CSS الرئيسي الخاص بها. استخدم .dir-rtl في CSS لكتابة القواعد التي تنطبق على اللغات من اليمين إلى اليسار فقط.
نصائح وحيل
تُضاف هذه الوصفات إلى custom.css (أو إلى ملف Twig حيثما ذُكر) في قالب قمت بتوسيعه من قالب أساسي. في الأمثلة، استبدل #c0392b بلونك الخاص.
تغيير لون أزرار الراديو ومربعات الاختيار
لاستخدام أحد الألوان المرفقة مع Fruity TwentyThree، حدد لون القالب في خيارات القالب. كما تتيح لك خيارات القالب اختيار ايقونة علامة الاختيار مختلفة.
لأي لون آخر، أضف CSS إلى custom.css. تقوم القوالب الأساسية برسم أزرار الراديو ومربعات الاختيار الخاصة بها بدلاً من العناصر الافتراضية للمتصفح، لذلك فإن تغيير اللون يعني تغيير هذه العناصر المرسومة.
Fruity TwentyThree:
.radio-item input[type=radio]:checked + label::before,
.checkbox-item input[type=checkbox]:checked + label::before {
border-color: #c0392b;
}
.radio-item input[type=radio]:checked + label::after {
background-color: #c0392b;
}
.checkbox-item input[type=checkbox]:checked + label::after {
color: #c0392b;
}
/* The text of the selected answer */
.radio-item input[type=radio]:checked + label,
.checkbox-item input[type=checkbox]:checked + label {
color: #c0392b;
}
Bootstrap Vanilla وFruity وBootswatch:
.radio-item input[type=radio]:checked + label::after {
background-color: #c0392b;
}
.checkbox-item input[type=checkbox]:checked + label::after {
background-color: #c0392b;
border-color: #c0392b;
color: #ffffff;
}
حافظ على تباين كافٍ بين اللون والخلفية، حتى يتمكن المشاركون ضعاف البصر من رؤية الإجابات المحددة.
تكبير أزرار الراديو ومربعات الاختيار
من الأسهل النقر على أزرار الراديو ومربعات الاختيار الأكبر على الهواتف واللوحات. يعمل هذا في جميع القوالب الأساسية:
.radio-item label::before,
.radio-item label::after,
.checkbox-item label::before,
.checkbox-item label::after {
scale: 1.3;
}
في Fruity TwentyThree، أضف أيضاً بعض المسافة بين أزرار الراديو ونص الإجابة:
.radio-item label {
padding-left: 14px;
}
تعمل القيم حتى 1.4 تقريباً دون تغييرات إضافية. مع القيم الأكبر، تبدأ عناصر التحكم في التداخل مع نص الإجابة وحواف صفوف الصفائف على الشاشات الصغيرة، لذلك تحتاج أيضاً إلى إضافة مسافة أكبر حولها.
تغيير لون شريط التقدم
.progress-bar {
background-color: #c0392b;
}
عرض المحتوى بلغة واحدة فقط
يحتوي العنصر <body> على فئة تحمل اللغة الحالية، مثل lang-en أو lang-fr. يمكنك استخدامها لعرض محتوى مختلف لكل لغة، مثل سطر مساعدة في التذييل. أضف النص الخاص بكل لغة إلى ملف Twig في قالبك، مثل subviews/footer/footer.twig:
<div class="help-fr" lang="fr">Pour de l'aide, appelez le 000000</div>
<div class="help-en" lang="en">For help, please call 000000</div>
ثم أخفِ نص اللغات الأخرى في custom.css:
body:not(.lang-fr) .help-fr,
body:not(.lang-en) .help-en {
display: none;
}
استخدام شعار مختلف لكل استبيان
لا تحتاج إلى قالب منفصل لكل شعار. يمكن تعيين خيارات القالب لاستبيان واحد: افتح الاستبيان، وانقر على خيارات القالب في قائمة اعدادات الاستبيان واختر ملف الشعار مختلفاً. راجع خيارات القالب.
عرض أيقونة مخصصة للموقع (favicon)
الـ favicon هي الأيقونة الصغيرة التي تظهر في علامة تبويب المتصفح وفي الإشارات المرجعية. تعرض القوالب الأساسية الملف files/favicon.ico الخاص بالقالب. لاستخدام أيقونتك الخاصة، سمّها favicon.ico وارفعها في لوحة ملفات أخرى في قالبك الموسّع. ستحل محل أيقونة القالب الأصلي.
توسيط الشعار في Fruity TwentyThree
قم بتشغيل خيار الشعار في خيارات القالب، ثم أضف ما يلي إلى custom.css:
#survey-nav .container-fluid {
position: relative;
}
#survey-nav .logo-container {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
إضافة شعارك الخاص إلى قائمة الاستبيانات العامة
تعرض قائمة الاستبيانات العامة شعار LimeSurvey افتراضيًا. لعرض شعارك الخاص:
- قم بتوسيع Fruity TwentyThree وافتح قالبك في محرر القالب.
- قم بتحميل شعارك في لوحة ملفات أخرى.
- اختر شاشة لائحة الاستبيان وافتح
layout_survey_list.twig. - ابحث عن
<div>الذي يحتوي على{{ include('./ls_logo_svg.twig') }}. استبدل عنصر<div>بالكامل، بما في ذلك سطر include، بالشيفرة الموضحة أسفل هذه الخطوات. - انقر على نسخ إلى السمة المحلية وحفظ التغييرات.
- انتقل إلى إعدادات > إعدادات عامة > عام واختر قالبك في خيار القالب الخاص بقائمة الاستبيانات العامة وصفحات الأخطاء.
استخدم اسم الملف الذي قمت بتحميله، واستخدم اسم مؤسستك كنص بديل:
{{ image('./files/mylogo.png', 'Name of your organisation', {"class": "img-fluid mx-auto d-block"}) }}
إضافة خط فاصل إلى صفائف المقياس المزدوج
لرسم خط عمودي بين المقياسين في سؤال من نوع صفيف المقياس المزدوج:
.array-flexible-dual-scale .header_separator,
.array-flexible-dual-scale .dual_scale_separator {
border-right: 1px solid #00a8e1;
}
JavaScript في الأسئلة
لتشغيل JavaScript في جميع صفحات استبياناتك، ضعه في custom.js الخاص بقالبك (راجع أعلاه).
يمكنك أيضًا إضافة سكربت إلى نص سؤال أو مجموعة واحدة. يقوم LimeSurvey بإزالة السكربتات من هذه النصوص ما لم يكن مرشح XSS متوقفًا لمستخدمك. لا يُطبَّق المرشح أبدًا على المسؤولين الأعلى. أما بالنسبة للمستخدمين الآخرين، فيجب إيقاف تصفية HTML لـ XSS في إعدادات > إعدادات عامة > الامن. لا تفعل ذلك إلا إذا كنت تثق بكل من يستطيع تحرير الاستبيانات. للاطلاع على التفاصيل والأمثلة، راجع حلول بديلة: التحكم في الاستبيان أثناء التشغيل باستخدام Javascript.