السلوك
القاعدة نفسها: اسمٌ ووصف، وقائمة حقول يراقبها، وقائمة حقول يُسمح له بالكتابة فيها، وآلية عمل (دالة جاهزة أو سكربت).
يُكتب مرة على مستوى المسجد أو المنصة، ثم يُستعمل في عشرات القوالب بإعدادات مختلفة.
قاعدةٌ تراقب خطةً وتكتب في أخرى للطالب نفسه: بها يتبع التثبيت الحفظ، ولا تتجاوز المراجعة ما حُفظ. الدوال الجاهزة، والسكربتات، وكيفية ربطها بالقوالب واختبارها.
في أي حلقة جادّة لا يعمل الطالب على مسار واحد: يحفظ الجديد، ويثبّت ما قرب، ويراجع ما بعد. وهذه المسارات الثلاثة ليست مستقلّة — موضع كلٍّ منها مشتقٌّ من موضع الحفظ. سلوك الربط هو الذي يجعل هذا الاشتقاق يقع من تلقاء نفسه.
لوحة البرنامجالخططالمزيدسلوكيات الربط
الصورة في سطر واحد: يتغيّر شيء في خطة المصدر ← يعمل السلوك ← تُكتب قيمٌ في خطة الهدف. والمصدر والهدف خطّتان للطالب نفسه، لا لطالبين.
القاعدة نفسها: اسمٌ ووصف، وقائمة حقول يراقبها، وقائمة حقول يُسمح له بالكتابة فيها، وآلية عمل (دالة جاهزة أو سكربت).
يُكتب مرة على مستوى المسجد أو المنصة، ثم يُستعمل في عشرات القوالب بإعدادات مختلفة.
السطر الذي يوصل السلوك بقالبين: قالب المرجع (المصدر) والقالب الذي تحرّره (الهدف)، مع إعداداته.
السلوك وحده لا يفعل شيئاً؛ الربط هو ما يشغّله. والإعدادات تُضبط في الربط لا في السلوك.
ما إذا تغيّر أيقظ السلوك: الموضع الحالي، المقدار اليومي، اتجاه الحفظ، عدد الأنشطة، نسبة الاكتمال…
بها تُقلّل تشغيل السلوك إلى ما يعنيه فعلاً، فلا يُستدعى عند كل حفظ للخطة.
ما يُسمح للسلوك بكتابته في خطة الهدف. وما خرج عن القائمة يُهمَل بلا خطأ.
سياجُ أمانٍ يمنع سلوكاً مكتوباً بعجلة من تخريب حقول لم يُقصد مسّها.
أكثر ما يُطلب في هذا الباب تحلّه إعداداتُ الخطة وحدها. والقاعدة: لا تبنِ سلوكاً قبل أن تتأكّد أنّ حدود التنقل والمقدار لا تكفيان.
اختره حينكل خطة مستقلّة عن الأخرى، أو يمكن التعبير عن العلاقة بحدود تنقل ثابتة ومقدار.
أقلّ ما يُعطب: لا شيء يعمل في الخلفية، وكل قيمة مكتوبة أمامك في القالب.
المواضع المشتقّة تُضبط يدوياً، ولا تتحرّك مع تقدّم الطالب.
اختره حينالعلاقة من النوع المعتاد: المراجعة تتبع الحفظ، أو التثبيت خلفه بمسافة، أو المدى محصور في الجزء الجاري.
خمس دوال جاهزة مجرَّبة، لا كود فيها ولا صيانة، وإعداداتها حقول تملؤها بالأرقام أو بالقيم السريعة.
تفعل ما صُمّمت له فحسب؛ ولا شرط فيها ولا تكيّف مع مستوى الطالب.
اختره حينالقاعدة مشروطة أو تكيّفية: مقدارٌ يُشتقّ من متوسط تسميعات الطالب، أو اتجاهٌ يتغيّر بالتقييم، أو مسافةٌ محسوبة بمعامل.
تكتب القاعدة كما هي بالضبط، وتعرضها على المشرف بحقول إعداد عربية يملؤها بلا كود.
كودٌ يعمل على بيانات حيّة، يحتاج اختباراً وصيانة. راجع أمثلة السكربتات.
تشحن المنصة خمس دوال في مجموعتين: التقدّم والحدود والحزم. هذه أسماؤها كما تظهر، وما تكتبه كلٌّ منها بالضبط.
| الدالة | المجموعة | ماذا تكتب | إعداداتها |
|---|---|---|---|
| نسخ الموضع الحالي | التقدّم والحدود | تنسخ الموضع الحالي من المصدر إلى الهدف، ولا تمسّ الحدود ولا غيرها. | الإزاحة بالأسطر، والتراجع للخلف |
ضبط حد التنقل من الموضع الحالي | التقدّم والحدود | تضبط حدّاً واحداً — بداية النطاق أو نهايته — على موضع المصدر، وتعيد ضبط ما خرج عن الحدود الجديدة. | الحدّ المراد تحديثه، والإزاحة، والتراجع للخلف |
مزامنة حدود التنقل مع التقدّم | التقدّم والحدود | تطابق ممرَّ الهدف مع تقدّم المصدر، وتزامن الاتجاه، وتعيد الموضع إلى بداية النطاق إن خرج عنه. | مزامنة اتجاه التنقل مع الخطة المصدر |
| الحزمة النشطة | الحزم | تعزل حزمةً واحدة حول الموضع: البداية أول آية في الحزمة التي يقع فيها التقدّم، والنهاية آخر آية أُنجزت فعلاً — لا نهاية الجزء. | حجم الحزمة بالأسطر، ومزامنة الاتجاه |
| حزم تراكمية | الحزم | تثبّت البداية عند أول الخطة وتمدّ النهاية مع التقدّم — كلّ ما قرأ منذ البداية. | حجم الحزمة، ومزامنة الاتجاه، وإنهاء النطاق عند نهاية الحزمة |
| ما يقوله المشرف | معناه عملياً | ما تضبطه |
|---|---|---|
| حفظ | مسار التقدّم الأصلي — الجديد الذي يُحفظ. | يكون هو المصدر المراقَب غالباً |
| تثبيت | تسميع آخر جلسات الحفظ — نافذةٌ تمشي خلف الحفظ بمسافة. | نسخ الموضع الحالي بإزاحةٍ وتراجع للخلف |
| مراجعة | مراجعة كل ما حُفظ، ولا تتجاوز موضع الحفظ أبداً. | ضبط حد التنقل من الموضع الحاليعلى نهاية النطاق، أو حزم تراكمية |
من بداية الجزء حتى مكان الحفظ | المدى = بداية الجزء الجاري ← موضع الحفظ. | الحزمة النشطة |
الموضع ثابت لا يتحرك بعد التسميع | يعود المؤشّر إلى بداية المدى في كل جلسة. | إعدادات القفز على تثبيت الموضع — وهذا إعداد خطة لا سلوك |
السلوك قاعدة معلّقة في الهواء حتى تربطه. والربط يعيش على قالب الهدف لا على المصدر — أي على القالب الذي ستُكتب فيه القيم.
افتح سلوكيات الربط وتفقّد المتاح
الصفحة قسمان: سلوكيات عامة — متاحة لجميع المساجد — للاستخدام في روابط القوالب
— وسلوكيات المسجد — سلوكيات أنشأها مسؤولو مسجدك — يمكنك استخدامها وتعديلها
.
أنشئ سلوكاً بنفسك فقط إن لم يكفك المتاح.
إن أنشأت سلوكاً: اضبط آلية العمل
اختر دالة نظام جاهزة أو اكتب سكربت JavaScript مخصصاً
. تبويبان: دوال النظام — سلوكيات جاهزة
— وسكربت مخصص.
وفي حالة السكربت تحدّد بنفسك الحقول المراقبة (المصدر) — عند تغيّر هذه الحقول في خطة المصدر يُنفَّذ السلوك.
— والحقول المستهدفة (الهدف) — الحقول التي يحدّثها السكربت في خطة الهدف.
افتح قالب الهدف واذهب إلى السلوكيات
في قالب المراجعة مثلاً، لا في قالب الحفظ. وهنا الملاحظة التي تحسم الالتباس: السلوك يحدّد ماذا يحدث؛ الإعدادات في كل صف تخص هذا الربط فقط — يمكنك استخدام نفس السلوك بقيم مختلفة.
اضغط إضافة سلوك واملأ الصف
عمود السلوك يختار القاعدة، وعمود قالب المرجع يختار المصدر. وترك المرجع فارغاً يعني هذا القالب (تلقائياً)
— أي أنّ الخطة تراقب نفسها.
عند تشغّل خطط المرجع، يُنفَّذ السلوك على خطط الطلاب المرتبطة بهذا القالب.
صف الربط: السلوك، وقالب المرجع، وإعدادات هذا الربط
لقطة الشاشة قيد التجهيز — النص أعلاه يشرح الخطوة كاملة
اضبط إعدادات السلوك في الصف نفسه
الحقول التي يعلنها السلوك تظهر هنا بأسمائها العربية: عدد الأيام، حجم الحزمة بالأسطر، الإزاحة، مزامنة الاتجاه… وهي خاصةٌ بهذا الربط وحده.
ولك أن تتجاوزها لمستوىً بعينه من إعدادات الربط داخل المنهج.
احفظ القالب، ثم جرّب على طالب واحد
سجّل جلسة تسميع على خطة المصدر، ثم افتح خطة الهدف وتحقّق من أنّ ما تغيّر هو ما توقّعت.
معرفة لحظة التنفيذ تفسّر أكثر ما يبدو غريباً: لماذا تغيّرت خطةٌ لم يلمسها أحد، ولماذا لم تتغيّر أخرى بعد تعديل يدوي.
| المناسبة | ما يحدث |
|---|---|
| تسجيل نشاط أو تعديله أو حذفه | يتحرّك موضع المصدر، فتعمل كل السلوكيات التي تراقب حقلاً تغيّر. |
| تعديل يدوي على خطة | المعاملة نفسها: يُقارن ما قبل بما بعد، وتُشغَّل السلوكيات المعنيّة بما تغيّر. |
| إنشاء الخطة أو إعادة تطبيق المنهج | حدثٌ خاص: تعمل السلوكيات المراقِبة ولو لم يتغيّر حقل واحد — وبه تُوضع الحدود والمواضع في أول يوم. |
| انتشار من سلوك آخر | كتابة السلوك في الهدف قد توقظ سلوكاً يراقب ذلك الهدف، فتتسلسل السلاسل. |
| تعطيل خطة عند إخراج قالبها من المنهج | لا تُشغَّل السلوكيات؛ التعطيل لا يُعامَل معاملة الإنشاء. |
لكل سلوك زرّ اختبار يفتح نافذةً تشغّله على خططٍ وهمية تصفها أنت، وتقارن مخرجاته بما تتوقّعه، دون أن يمسّ بياناتٍ حقيقية.
معدّلما دامت مخالفةً للمحفوظ.
هذه القيم لا تُحفظ على السلوك؛ تحاكي إعدادات ربط القالب عند التشغيل.— أي أنّها تقوم مقام ما ستكتبه في صف الربط.
testCases بصيغة JSON، فتُشغَّل حالةً حالة ويظهر لكل واحدة نجح أو فشل مع المتوقع مقابل الفعلي.
وشكل الحالة ثابت: name للوصف، وinput وفيه updatedFields وoldPlan وupdatedPlan وtargetPlan، ثم expectedOutput يُقارَن بما يكتبه السلوك مقارنةً دقيقة. اكتفِ بحقول الخطة التي يقرؤها السكربت فعلاً، واجعل الحالات ثلاثاً: حالة ناجحة، وحالة لا يعمل فيها السلوك، وحالة حدّية.
هذه أعطالٌ صامتة: لا رسالة خطأ، وإنما خططٌ لا تتصرّف كما تتوقّع.
بعض المساجد تملك ورداً ورقياً يحدّد لكل يومٍ من→إلى صريحة، ومراجعتُه غير مشتقّة من حفظه أصلاً: قد يكون الحفظ في السجدة والمراجعة في الناس. لا مقدارٌ ولا نافذةٌ ولا حزمةٌ تعبّر عن هذا، والحلّ المعتمد فيه حزمة جدول تُبنى من الورق وتُدار بسكربت.
راجع أربعة أمور بالترتيب: هل الربط على قالب الهدف لا المصدر؟ وهل الصف مفعّل؟ وهل الحقل الذي تغيّر مذكور في الحقول المراقبة (المصدر)؟ وهل الحقل الذي تريد كتابته مذكور في الحقول المستهدفة (الهدف)؟
في الربط. السلوك يعلن الحقول وقيمها الافتراضية فقط: قيم الإعدادات تُضبط عند ربط السلوك بقالب، وليس هنا.
ولتخصيص مستوى بعينه استخدم إعدادات الربط في المنهج.
نعم. كتابة السلوك في خطة الهدف قد توقظ سلوكاً يراقب تلك الخطة، فتتكوّن سلسلة. والنظام يكشف الدورات ويحدّ العمق، لكن السلسلة الطويلة تصعّب تتبّع ما غيّر ماذا.
يحذّرك النظام أنّ السلوك مستخدم في عدد من الروابط، وسيؤدي الحذف إلى تعطيل هذه الروابط
. عطّل الصفوف أو استبدل السلوك قبل الحذف.
لا شيء من الدوال الجاهزة. هذه قاعدةُ سكربت، وهي منشورة جاهزة في قالب برنامج المسار التقليدي. راجع أمثلة السكربتات.