Extension:Gadgets/ar

يقدم امتداد Gadgets سبيل للمستخدمين يمكنهم من اختيار «نبيطات» مبنية على جافا سكريبت أو سي إس إس التي يقدمها مستخدمي موقع الويكي الآخرين.

تصمم النبيطات باستخدام جافا سكريبت أو سي إس إس أو كلاهما موجودة في صفحات على نطاق الاسم ميدياويكي. تحدد كل نبيطة باستخدام سطر في MediaWiki:Gadgets-definition، يقدم اسم وبيان للنبيطة، وقائمة بقصاصات جافا سكريبت وسي إس إس التي تستعين بها (طالع فقرة  الاستخدام التالية).

منذ أن النبيطات تضاف إلى نطاق الاسم ميدياويكي (حيث توجد كلا من القائمة التي تحدد النبيطات وقصاصات الكود البرمجي ذاتها)، يمكن فقط لإداري النظام (وكذلك إداري الواجهة بدءا من الإصدار 1.32) تعديل الكود البرمجي. يتعين أن يكون الأمر كما يلي: يمنح فقط المستخدمين الذين يحظون بثقة مجتمع الويكي المتينة صلاحية تعديل كود جافا سكريبت البرمجي الذي يستخدمه المستخدمين الآخرين، منذ أنه يسهل استخدام جافا سكريبت في قرصنة الحسابات أو التلصص على الأفراد.

الاستخدام
حال استحداث MediaWiki:Gadgets-definition مستخدمًا نبيطة واحدة صالحة على الأقل، سيظهر قسم جديد اسمه «النبيطات» في صفحة Special:Preferences لكل المستخدمين. يمكن للمستخدمين تفعيل النبيطات التي يرغبون في استخدامها من هذا القسم. نظرة عامة على النبيطات المحددة حاليًا بموجب MediaWiki:Gadgets-definition تظهر أيضًا في صفحة Special:Gadgets، إلى جانب وصلات شبكية مفيدة إلى صفحات الأقلمة والنصوص البرمجية أو صفحات الأطر المعنية لتيسير الإنشاء أو التعديل. توجد إحصائيات تتناول تفضيلات النبيطات متاحة على Special:GadgetUsage.



صيغة التحديد
يجب أن يبدأ كل سطر في MediaWiki:Gadgets-definition بالمحرف «*» (النجمة) كي يعرّف نبيطة. يجب أن يكون السطر بالصيغة التالية:

* mygadget [خيارات] | أسماء الصفحات

الخانة الأولى (« mygadget » في المثال) هي الاسم الداخلي للنبيطة. يأتي عنوان صفحة التفضيلات من صفحة رسائل الواجهة (MediaWiki:Gadget- mygadget ) حيث يمكن كتابة الاسم الكامل وبيان قصير لها، وهو ما يسمح أيضًا باستخدام ترميز نصوص الويكي.

تنسيق الخيارات:

[ResourceLoader | option1 | option2 | ... optionN]

وسم ResourceLoader مطلوب إلا في حال كانت النبيطة تحتوي على أطر لا غير. تحتاج الخيارات التي ليست سوى «وسوم» أن تكون أسمائها مكتوبة كي يجري تفعيلها. تُتْبَع الخيارات التي تحتاج إلى قيمة علامة يساوي وقائمة قيم مفصولة بفاصلات. كافة المسافات الخالية اختيارية ويجوز حذفها.

[ResourceLoader | myflag | mykey = value1, value2, value3 ]

أمثلة: * mygadget[ResourceLoader]|mygadget.js|mygadget.css أو * mygadget[ResourceLoader|package]| mygadget.js | mygadget-Foo.js | mygadget-data.json | mygadget.css أو * mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css



استخدام نطاق اسم تعريف النبيطات
يوجد سبيلين اثنين لتحديد النبيطات استنادا إلى ‎. لو كانت  (القيمة الافتراضية)، سوف تحدد قائمة النبيطات المتاحة على MediaWiki:Gadgets-definition. سبيل آخر، وهو تحديد النبيطات على صفحات في نطاق الاسم تعريف النبيطات حينما تكون قيمة ‎ هي.

إنشاء صفحة  ووضع نص جسون البرمجي التالي فيها سوف يكون له نفس أثر.

في المثال السابق، يستخدم كلا من  و.

خيارات
يمكنك تحديد تبعيات إضافية لنبيطاتك، على سبيل المثال:

* mygadget[ResourceLoader|dependencies=jquery.ui, jquery.effects.clip]|mygadget.js|mygadget.css

هنا، نطلب من ResourceLoader تحميل الوحدات البرمجية  و  مستخدمًا mygadget. لاحظ أن النبيطات لا يمكن تبعيتها على نصوص برمجية من صفحات أو ملفات جامدة أو معرفات موارد موحدة خارجية، بل وحدات برمجية مسجلة بالفعل في ResourceLoader. كي تجعل نصًا برمجيًا من صفحة يتبع نص برمجي آخر من صفحة، يجب على كليهما أن يكون نبيطة تسجل نفسها في صفة وحدة برمجية في ResourceLoader، ومن ثم يمكن لكليهما أن يتبع غيره مستخدمًا الصياغة البرمجية التالية:

* childgadget[ResourceLoader|dependencies=ext.gadget.parentgadget]|childgadget.js إن أردت تفعيل نبيطة بصفة افتراضية، استخدم « »: * mygadget[ResourceLoader|default|dependencies=mediawiki.util]|mygadget.js|mygadget.css كي تجعل النبيطة متاحة للمستخدمين الذين يتمتعون بالتصاريح الملائمة لا غير، اضبط خيار ، على سبيل المثال: * ImprovedDeletion [rights=delete] | ImprovedDeletion.js يجعل النبيطة متاحة للمستخدمين الذين يمكنهم بالفعل حذف صفحات دون غيرهم.

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

* modrollback[ResourceLoader|rights=rollback]|modrollback.js * UTCLiveClock[ResourceLoader|rights=purge]|UTCLiveClock.js * Ajax_sysop[ResourceLoader|rights=patrol,rollback,markbotedits,delete]|Ajax_sysop.js

صفحات
الخانات المتبقية في السطر تشير إلى كود جافا سكريبت أو سي إس إس أو جسون البرمجي الذي يشكّل النبيطة الموجود في رسائل النظام ($1 و$2 في المثال)؛ يتعين أن تنتهي أسماء تلك الرسائل بأي من «$3» أو «$4» على التوالي. These are stored in the MediaWiki namespace as interfafce messages (MediaWiki:Gadget-mygadget.js and MediaWiki:Gadget-mygadget.css in the example). The page names must end with ".css", ".js", or ".json" respectively.

يمكن لأي نبيطة استخدام أي عدد من رسائل الكود البرمجي، على وجه التحديد، يمكن وضع الكود البرمجي العمومي في رسالة كود برمجي تستخدمها عدة نبيطات، خلاف الكود البرمجي الخاص بها المحدد، مثال ذلك:

* frobinator[ResourceLoader]|frob.js|frob.css|pretty.css * l33t[ResourceLoader]|l33t.js * foobar[ResourceLoader|package]|foo.js|bar.js|foobar-data.json

يرجى ملاحظة أنه لو كان كودك البرمجي يحتوي على أسطر يمكن تفسيرها في صفة نص برمجي ويكي (مثل كود التوقيع )، ربما يجب عليك أن تحصرها في  وأن تضع هذه الوسوم في تعليقات جافا سكريبت أو سي إس إس حتى لا يجري تفسيرها حينما تستخدم.

طالع السطرين الأول والأخير من MediaWiki:Gadget-externalsearch-bar.js مثالًا على ما ذكرنا.

فقرات
يمكن تقسيم قائمة النبيطات الموجودة في MediaWiki:Gadgets-definition إلى أقسام مستخدمًا أسطر تبدأ وتنتهي بعدد أثنين أو ثلاثة من المحارف «=» (علامة يساوي) توضع قبل وبعد اسم رسالة نظام تحدد اسم الفقرة، مثال ذلك:

== interface-gadgets ==

سوف يحدد هذا فقرة جديدة، ويكون عنوانها كما هو محدد في الصفحة MediaWiki:Gadget-section-interface-gadgets.

Popular gadgets
See Gadgets for gadgets which are popular in Wikimedia communities.

