الخميس، 1 أغسطس 2013

تثبيت معالج الحدث على القوائم باستخدام الميزات List Event Handlers


يمكن تثبيت معالج الحدث على أي قائمة باستخدام الشيفرة البرمجية أو باستخدام الطريقة التصريحية والتي تعتمد على الميزات Features. وعند استخدام الطريقة التصريحية فإن المجال Scope الذي يتم تحديده للميزة يغير في الإعدادات التي يمكن استخدامها أثناء التصريح عن الأحداث.

تثبيت معالج الحدث باستخدام ميزة تعمل ضمن مجال مجموعة المواقع Scope=Site
يمكن تثبيت معالج الأحداث في شيربوينت 2013 على قائمة باستخدام ميزات ذات مجال Site أو مجال Web. وفي حال استخدام المجال Site للميزة عندها يمكن تحديد قيمة للخاصية Scope لتحديد مجال القوائم الذي سيثبت عليها معالج الحدث. في حال تحديد القيمة Site سيتم تثبيت معالج الحدث على جميع القوائم في مجموعة المواقع Site Collection، أما في حال تحديد القيمة Web فسيتم تثبيت معالج الحدث على الموقع الرئيسي فقط لمجموعة المواقع Root Web. ويجب الانتباه إلى أنه بغض النظر عن أي إعدادات أخرى فإن مالج الحدث سيتم تثبيته على جميع القوائم ضمن المجال المحدد في الخاصية Scope.

تثبيت معالج الحدث باستخدام ميزة تعمل ضمن مجال الموقع Scope=Web
عند استخدام المجال Scope = Web عندها يمكن تحديد قيم لبعض الإعدادات الإضافية. ومنها تحديد قيمة منطقية true|false للخاصية RootWebOnly، فعند تحديد القيمة true فإن معالج الحدث يمكن تثبيته فقط على القوائم التي تحت الموقع الرئيسي فقط ف يحال تفعيل الميزة على موقع فرعي سيؤدي ذلك إلى ظهور خطأ. أيضاً سيفحص شيربوينت 20103 العناصر Receivers للتأكد من قيمة الخاصية ListTemplateId، في حال تم تحديدها من قبل المطور فإن شيربوينت سيبحث عن قيمة الخاصية ListUrl، وفي حال أن كلا القيمتين محددتان فإن شيربوينت سيرسل خطأ يفيد بأنه يجب تحديد إحدى القيمتين فقط. وفي حال أن قيمة الخاصية ListUrl غير محددة فإن شيربوينت سيثبت معالج الحدث على جميع القوائم التي تطابق القيمة المعرفة في الخاصية ListTemplateId ضمن الموقع الحالي. ويجب الانتباه أن قيمة الخاصية ListTemplateId هي إحدى القيم المعرفة في الرابط التالي:

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splisttemplatetype.aspx

وهي نفس قيم الخاصية SPList.BaseTemplate.

وفي حال أن قيمة الخاصية ListTemplateId غير محددة فإن شيربوينت يبحث عن قيمة الخاصية ListUrl، ففي حال توفرها فإن شيربوينت سيثبت معالج الحدث على القائمة المحددة بقية هذه الخاصية فقط. ويجب الانتباه إلى أن قيمة هذه الخاصية هي عبارة عن العنوان النسبي للقائمة Relative List URL. أما في حال عدم تحديد قيمة للخاصية ListUrl فإن شيربوينت سيثبت معالج الحدث على جميع القوائم في الموقع حيث تم تفعيل الميزة.

ليست هناك تعليقات:

إرسال تعليق