تخطَّ إلى المحتوى

سلوكيات الربط

قاعدةٌ تراقب خطةً وتكتب في أخرى للطالب نفسه: بها يتبع التثبيت الحفظ، ولا تتجاوز المراجعة ما حُفظ. الدوال الجاهزة، والسكربتات، وكيفية ربطها بالقوالب واختبارها.

مشرف
الأساس

لماذا تحتاج خطةٌ أن تعرف بخطةٍ أخرى#

في أي حلقة جادّة لا يعمل الطالب على مسار واحد: يحفظ الجديد، ويثبّت ما قرب، ويراجع ما بعد. وهذه المسارات الثلاثة ليست مستقلّة — موضع كلٍّ منها مشتقٌّ من موضع الحفظ. سلوك الربط هو الذي يجعل هذا الاشتقاق يقع من تلقاء نفسه.

لوحة البرنامجالخططالمزيدسلوكيات الربط

الصورة في سطر واحد: يتغيّر شيء في خطة المصدر ← يعمل السلوك ← تُكتب قيمٌ في خطة الهدف. والمصدر والهدف خطّتان للطالب نفسه، لا لطالبين.

السلوك

القاعدة نفسها: اسمٌ ووصف، وقائمة حقول يراقبها، وقائمة حقول يُسمح له بالكتابة فيها، وآلية عمل (دالة جاهزة أو سكربت).

يُكتب مرة على مستوى المسجد أو المنصة، ثم يُستعمل في عشرات القوالب بإعدادات مختلفة.

الربط

السطر الذي يوصل السلوك بقالبين: قالب المرجع (المصدر) والقالب الذي تحرّره (الهدف)، مع إعداداته.

السلوك وحده لا يفعل شيئاً؛ الربط هو ما يشغّله. والإعدادات تُضبط في الربط لا في السلوك.

الحقول المراقبة

ما إذا تغيّر أيقظ السلوك: الموضع الحالي، المقدار اليومي، اتجاه الحفظ، عدد الأنشطة، نسبة الاكتمال…

بها تُقلّل تشغيل السلوك إلى ما يعنيه فعلاً، فلا يُستدعى عند كل حفظ للخطة.

الحقول المستهدفة

ما يُسمح للسلوك بكتابته في خطة الهدف. وما خرج عن القائمة يُهمَل بلا خطأ.

سياجُ أمانٍ يمنع سلوكاً مكتوباً بعجلة من تخريب حقول لم يُقصد مسّها.

صفحة السلوكيات: ما تشاركه المنصة وما يملكه مسجدك
القرار

متى تحتاج سلوكاً أصلاً#

أكثر ما يُطلب في هذا الباب تحلّه إعداداتُ الخطة وحدها. والقاعدة: لا تبنِ سلوكاً قبل أن تتأكّد أنّ حدود التنقل والمقدار لا تكفيان.

إعدادات، أم دالة جاهزة، أم سكربت؟

بلا سلوك
الافتراضي

اختره حينكل خطة مستقلّة عن الأخرى، أو يمكن التعبير عن العلاقة بحدود تنقل ثابتة ومقدار.

أقلّ ما يُعطب: لا شيء يعمل في الخلفية، وكل قيمة مكتوبة أمامك في القالب.

المواضع المشتقّة تُضبط يدوياً، ولا تتحرّك مع تقدّم الطالب.

سكربت مخصص
متقدّم

اختره حينالقاعدة مشروطة أو تكيّفية: مقدارٌ يُشتقّ من متوسط تسميعات الطالب، أو اتجاهٌ يتغيّر بالتقييم، أو مسافةٌ محسوبة بمعامل.

تكتب القاعدة كما هي بالضبط، وتعرضها على المشرف بحقول إعداد عربية يملؤها بلا كود.

كودٌ يعمل على بيانات حيّة، يحتاج اختباراً وصيانة. راجع أمثلة السكربتات.

المرجع

دوال النظام الخمس#

تشحن المنصة خمس دوال في مجموعتين: التقدّم والحدود والحزم. هذه أسماؤها كما تظهر، وما تكتبه كلٌّ منها بالضبط.

دوال النظام، وما تكتبه في خطة الهدف
الدالةالمجموعةماذا تكتبإعداداتها
نسخ الموضع الحاليالتقدّم والحدودتنسخ الموضع الحالي من المصدر إلى الهدف، ولا تمسّ الحدود ولا غيرها.الإزاحة بالأسطر، والتراجع للخلف
ضبط حد التنقل من الموضع الحاليالتقدّم والحدودتضبط حدّاً واحداً — بداية النطاق أو نهايته — على موضع المصدر، وتعيد ضبط ما خرج عن الحدود الجديدة.الحدّ المراد تحديثه، والإزاحة، والتراجع للخلف
مزامنة حدود التنقل مع التقدّمالتقدّم والحدودتطابق ممرَّ الهدف مع تقدّم المصدر، وتزامن الاتجاه، وتعيد الموضع إلى بداية النطاق إن خرج عنه.مزامنة اتجاه التنقل مع الخطة المصدر
الحزمة النشطةالحزمتعزل حزمةً واحدة حول الموضع: البداية أول آية في الحزمة التي يقع فيها التقدّم، والنهاية آخر آية أُنجزت فعلاً — لا نهاية الجزء.حجم الحزمة بالأسطر، ومزامنة الاتجاه
حزم تراكميةالحزمتثبّت البداية عند أول الخطة وتمدّ النهاية مع التقدّم — كلّ ما قرأ منذ البداية.حجم الحزمة، ومزامنة الاتجاه، وإنهاء النطاق عند نهاية الحزمة

قاموس ما يقوله المسجد

من عبارة المشرف إلى الإعداد
ما يقوله المشرفمعناه عملياًما تضبطه
حفظمسار التقدّم الأصلي — الجديد الذي يُحفظ.يكون هو المصدر المراقَب غالباً
تثبيتتسميع آخر جلسات الحفظ — نافذةٌ تمشي خلف الحفظ بمسافة.نسخ الموضع الحالي بإزاحةٍ وتراجع للخلف
مراجعةمراجعة كل ما حُفظ، ولا تتجاوز موضع الحفظ أبداً.ضبط حد التنقل من الموضع الحالي على نهاية النطاق، أو حزم تراكمية
من بداية الجزء حتى مكان الحفظالمدى = بداية الجزء الجاري ← موضع الحفظ.الحزمة النشطة
الموضع ثابت لا يتحرك بعد التسميعيعود المؤشّر إلى بداية المدى في كل جلسة.إعدادات القفز على تثبيت الموضع — وهذا إعداد خطة لا سلوك
الإجراء

كيف يعمل السلوك فعلاً: الربط#

السلوك قاعدة معلّقة في الهواء حتى تربطه. والربط يعيش على قالب الهدف لا على المصدر — أي على القالب الذي ستُكتب فيه القيم.

  1. افتح سلوكيات الربط وتفقّد المتاح

    الصفحة قسمان: سلوكيات عامةمتاحة لجميع المساجد — للاستخدام في روابط القوالب — وسلوكيات المسجدسلوكيات أنشأها مسؤولو مسجدك — يمكنك استخدامها وتعديلها.

    أنشئ سلوكاً بنفسك فقط إن لم يكفك المتاح.

  2. إن أنشأت سلوكاً: اضبط آلية العمل

    اختر دالة نظام جاهزة أو اكتب سكربت JavaScript مخصصاً. تبويبان: دوال النظامسلوكيات جاهزة — وسكربت مخصص.

    وفي حالة السكربت تحدّد بنفسك الحقول المراقبة (المصدر)عند تغيّر هذه الحقول في خطة المصدر يُنفَّذ السلوك. — والحقول المستهدفة (الهدف)الحقول التي يحدّثها السكربت في خطة الهدف.

    آلية العمل: دالة جاهزة أو سكربت، والحقول في الحالتين
  3. افتح قالب الهدف واذهب إلى السلوكيات

    في قالب المراجعة مثلاً، لا في قالب الحفظ. وهنا الملاحظة التي تحسم الالتباس: السلوك يحدّد ماذا يحدث؛ الإعدادات في كل صف تخص هذا الربط فقط — يمكنك استخدام نفس السلوك بقيم مختلفة.

  4. اضغط إضافة سلوك واملأ الصف

    عمود السلوك يختار القاعدة، وعمود قالب المرجع يختار المصدر. وترك المرجع فارغاً يعني هذا القالب (تلقائياً) — أي أنّ الخطة تراقب نفسها.

    عند تشغّل خطط المرجع، يُنفَّذ السلوك على خطط الطلاب المرتبطة بهذا القالب.

  5. اضبط إعدادات السلوك في الصف نفسه

    الحقول التي يعلنها السلوك تظهر هنا بأسمائها العربية: عدد الأيام، حجم الحزمة بالأسطر، الإزاحة، مزامنة الاتجاه… وهي خاصةٌ بهذا الربط وحده.

    ولك أن تتجاوزها لمستوىً بعينه من إعدادات الربط داخل المنهج.

  6. احفظ القالب، ثم جرّب على طالب واحد

    سجّل جلسة تسميع على خطة المصدر، ثم افتح خطة الهدف وتحقّق من أنّ ما تغيّر هو ما توقّعت.

التفصيل

متى يعمل السلوك، وبأي ترتيب#

معرفة لحظة التنفيذ تفسّر أكثر ما يبدو غريباً: لماذا تغيّرت خطةٌ لم يلمسها أحد، ولماذا لم تتغيّر أخرى بعد تعديل يدوي.

المناسبات التي تُشغّل السلوكيات
المناسبةما يحدث
تسجيل نشاط أو تعديله أو حذفهيتحرّك موضع المصدر، فتعمل كل السلوكيات التي تراقب حقلاً تغيّر.
تعديل يدوي على خطةالمعاملة نفسها: يُقارن ما قبل بما بعد، وتُشغَّل السلوكيات المعنيّة بما تغيّر.
إنشاء الخطة أو إعادة تطبيق المنهجحدثٌ خاص: تعمل السلوكيات المراقِبة ولو لم يتغيّر حقل واحد — وبه تُوضع الحدود والمواضع في أول يوم.
انتشار من سلوك آخركتابة السلوك في الهدف قد توقظ سلوكاً يراقب ذلك الهدف، فتتسلسل السلاسل.
تعطيل خطة عند إخراج قالبها من المنهجلا تُشغَّل السلوكيات؛ التعطيل لا يُعامَل معاملة الإنشاء.
  • تُنفَّذ روابط القالب بترتيبها في القائمة، وتُدمج مخرجاتها، ثم تُحفظ الخطة مرة واحدة.
  • ثم تتكرّر العملية للقوالب التي تراقب الهدف — بكشفٍ للدورات وحدٍّ أقصى للعمق، فلا تدور السلسلة على نفسها إلى ما لا نهاية.
  • وفشل سلوك في فرع لا يُسقط بقية الفروع: يُسجَّل الخطأ ويمضي الباقي.
  • والسكربت لا يكتب إلا الحقول المعلنة في الحقول المستهدفة (الهدف)؛ وما عداها يُهمَل في صمت.
الإجراء

نافذة الاختبار قبل أن تمسّ طالباً#

لكل سلوك زرّ اختبار يفتح نافذةً تشغّله على خططٍ وهمية تصفها أنت، وتقارن مخرجاته بما تتوقّعه، دون أن يمسّ بياناتٍ حقيقية.

دالة النظام
تبدّل الدالة المختبَرة مؤقّتاً لترى الفرق قبل الحفظ. وتُعلَّم بشارة معدّل ما دامت مخالفةً للمحفوظ.
إعدادات السلوك (للاختبار)
هذه القيم لا تُحفظ على السلوك؛ تحاكي إعدادات ربط القالب عند التشغيل. — أي أنّها تقوم مقام ما ستكتبه في صف الربط.
السكربت
محرّرٌ تعدّل فيه الكود وتجرّبه فوراً، ومعه استعادة السكربت واستعادة الكل للرجوع إلى المحفوظ.
الحقول المراقبة والمستهدفة
تعدّلها للتجربة أيضاً، ويعرض العنوان عددها: كم حقلاً مراقباً وكم هدفاً.
حالات الاختبار
تلصق فيها مصفوفة testCases بصيغة JSON، فتُشغَّل حالةً حالة ويظهر لكل واحدة نجح أو فشل مع المتوقع مقابل الفعلي.

وشكل الحالة ثابت: name للوصف، وinput وفيه updatedFields وoldPlan وupdatedPlan وtargetPlan، ثم expectedOutput يُقارَن بما يكتبه السلوك مقارنةً دقيقة. اكتفِ بحقول الخطة التي يقرؤها السكربت فعلاً، واجعل الحالات ثلاثاً: حالة ناجحة، وحالة لا يعمل فيها السلوك، وحالة حدّية.

نافذة الاختبار: حالات مكتوبة، ونتيجة لكل حالة
انتبه

مزالق ومواضع طلب الدعم#

هذه أعطالٌ صامتة: لا رسالة خطأ، وإنما خططٌ لا تتصرّف كما تتوقّع.

متى تطلب الدعم بدل أن تبني

بعض المساجد تملك ورداً ورقياً يحدّد لكل يومٍ من→إلى صريحة، ومراجعتُه غير مشتقّة من حفظه أصلاً: قد يكون الحفظ في السجدة والمراجعة في الناس. لا مقدارٌ ولا نافذةٌ ولا حزمةٌ تعبّر عن هذا، والحلّ المعتمد فيه حزمة جدول تُبنى من الورق وتُدار بسكربت.

  • تفاوتُ مقدار الحفظ اليومي بلا نمط.
  • مدى المراجعة لا علاقة له بموضع الحفظ.
  • الجدول لا ينضغط في بضعة أرقام، بل يحتاج عشرات الكيلوبايتات.
أسئلة شائعة

أسئلة شائعة

أضفت السلوك ولم يحدث شيء — لماذا؟

راجع أربعة أمور بالترتيب: هل الربط على قالب الهدف لا المصدر؟ وهل الصف مفعّل؟ وهل الحقل الذي تغيّر مذكور في الحقول المراقبة (المصدر)؟ وهل الحقل الذي تريد كتابته مذكور في الحقول المستهدفة (الهدف)؟

أين أضبط قيم السلوك: في السلوك أم في الربط؟

في الربط. السلوك يعلن الحقول وقيمها الافتراضية فقط: قيم الإعدادات تُضبط عند ربط السلوك بقالب، وليس هنا. ولتخصيص مستوى بعينه استخدم إعدادات الربط في المنهج.

هل يمكن لسلوك أن يشغّل سلوكاً آخر؟

نعم. كتابة السلوك في خطة الهدف قد توقظ سلوكاً يراقب تلك الخطة، فتتكوّن سلسلة. والنظام يكشف الدورات ويحدّ العمق، لكن السلسلة الطويلة تصعّب تتبّع ما غيّر ماذا.

حذفت سلوكاً فما مصير الروابط التي تستعمله؟

يحذّرك النظام أنّ السلوك مستخدم في عدد من الروابط، وسيؤدي الحذف إلى تعطيل هذه الروابط. عطّل الصفوف أو استبدل السلوك قبل الحذف.

أريد التثبيت أربعة أضعاف مقدار الحفظ — أي دالة تفعل ذلك؟

لا شيء من الدوال الجاهزة. هذه قاعدةُ سكربت، وهي منشورة جاهزة في قالب برنامج المسار التقليدي. راجع أمثلة السكربتات.