امتداد:مراجعات معتمدة

From mediawiki.org
This page is a translated version of the page Extension:Approved Revs and the translation is 100% complete.
الدليل المرجعي لامتدادات ميدياويكي
Approved Revs
حالة الإصدار مستقر
تنفيذ وصلة
بيان يسمح للإداريين وسم مراجعة محددة لصفحة ما بوسم «معتمد - approved».
المؤلف/المؤلفون Yaron Koren <yaron57@gmail.com> and others
آخر إصدار 2.0 (فبراير 2024)
سياسة التوافق النسخة الرئيسية تحافظ على التوافق مع الإصدارات السابقة.
MediaWiki 1.37+
تغييرات قاعدة البيانات نعم
Composer mediawiki/approved-revs
جداول approved_revs
approved_revs_files
ترخيص رخصة جنو العمومية 2.0 أو ما بعدها
التنزيل
  • $egApprovedRevsBlankIfUnapproved
  • $egApprovedRevsEnabledNamespaces
  • $egApprovedRevsAutomaticApprovals
  • $egApprovedRevsFileAutomaticApprovals
  • $egApprovedRevsShowNotApprovedMessage
  • $egApprovedRevsBlankFileIfUnapproved
  • $egApprovedRevsSelfOwnedNamespaces
  • $egApprovedRevsShowApproveLatest

  • viewlinktolatest
  • approverevisions
  • viewapprover
ترجم الامتداد Approved Revs لو كان متوفرا على translatewiki.net
المسائل المهام المفتوحة · الإبلاغ عن عطل تقني

إن امتداد Approved Revs هو امتداد يسمح للإداريين بوسم مراجعة معينة في صفحة بوسم «معتمدة - approved». المراجعة المعتمدة هي تلك التي تعرض حينما يستعرض المستخدمين الصفحة مستخدمين معرف مواردها الموحد الرئيسي.

حتى لو كانت مراجعة ما معتمدة، لا يزال بإمكان أغلب الامتدادات التي تجلب محتوى الصفحات الحصول على آخر مراجعة، لا المراجعة المعتمدة (لو كانتا مختلفتين). إلا أن الامتدادات التي تحصل على بيانات محددة من صفحات مثل Cargo أو Semantic MediaWiki أو DynamicPageList ، سوف تعرض، لحسن الحظ، البيانات الصحيحة (أي المعتمدة).

التنزيل

يمكنك تنزيل الكود البرمجي لامتداد المراجعات المعتمدة، في صيغة ‎.zip‎، من هنا.

يمكنك أيضا تنزيل الكود البرمجي مباشرة مستخدما غت من مستودع الكود المصدري لميدياويكي. ومن سطر الأوامر، يمكنك استدعاء ما يلي:

git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ApprovedRevs.git

كي ترى النص البرمجي على الإنترنت، شاملا تاريخ الإصدار لكل ملف، اذهب إلى phab:diffusion/EARE/browse/master/.

التنصيب

كي تنصب هذا الامتداد، أنشئ مجلد 'ApprovedRevs' (سواء عن طريق استخلاص ملف مضغوط أو تنزيله من غت)، وضع هذا المجلد في مجلد 'extensions' الرئيسي المخصص لميدياويكي. بعد ذلك، داخل ملف 'LocalSettings.php' أضف السطر التالي:

wfLoadExtension( 'ApprovedRevs' );

سوف تحتاج أيضًا لتنصيب جدولي قواعد بيانات لهذا الامتداد هما «approved_revs» و«approved_revs_files». يمكنك تنفيذ هذا الأمر بسبيل من اثنين: إما تشغيل النص البرمجي «update.php » في مجلد /maintenance المخصص لميدياويكي، أو استدعاء SQL مباشرة داخل قاعدة بياناتك – يمكنك إيجاده في الملفات ApprovedRevs.sql وApprovedFiles.sql، وكلاهما موجود في مجلد /sql المخصص للامتداد.

في النهاية، إليك فيما يلي حقوق المستخدم المحددة في المراجعات المعتمدة:

  • 'approverevisions' - تصريح باعتماد مراجعات الصفحات وإلغاء اعتمادها. يمنح افتراضيًا لكافة الأعضاء الموجودين في مجموعة 'مشغل نظام - sysop'.
  • 'viewlinktolatest' - تصريح بعرض مذكرة في القسم الأعلى من الصفحات التي اعتمدت لها مراجعات، تبين أن ما يراه المستخدم ليس بالضرورة أحدث مراجعة للصفحة. يمنح افتراضيًا للجميع (أي '*').
  • 'viewapprover' - تصريح بمشاهدة مذكرة أخرى في الجزء الأعلى من الصفحات التي اعتمدت لها مراجعات، تذكر من تولى آخر اعتماد للصفحة. يمنح افتراضيًا لكافة الأعضاء الموجودين في مجموعة 'مشغل نظام - sysop'.

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

$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;

المؤلفون

كتب النص البرمجي لامتداد المرجعات المعتمدة يارون كورين (Yaron Koren). ساهم في النص البرمجي مساهمات ذات أهمية كل من: ريموند سبيكنغ (Raimond Spekking)، سيبراند ميزلاند (Siebrand Mazeland)، جيروين دي داو (Jeroen De Dauw)، إيلي هاندل (Eli Handel)، أندرو إنغلبريخت (Andrew Engelbrecht)، هاشار (hashar)، أنومي (Anomie)، مارك هيرشبيرغر (Mark Hershberger)، فلو (Flo)، آدشور (Addshore)، جيمس مونتالفو (James Montalvo)، فوداغوس (Fodagus)، كريس فيلد (Kris Field)، وغيرهم.

الاستخدام

صفحة تاريخ تحتوي على وصلات «اعتماد» شبكية وكذلك نجمة ووصلة «إلغاء الاعتماد» شبكية للمراجعات المعتمدة

حال تنصيب الامتداد، سيرى أي شخص يتمتع بتصريح 'approverevisions' وصلة شبكية نصها «(اعتماد)» على كل سطر في صفحة التاريخ. سينتج عن النقر على تلك الوصلة الشبكية تحديد تلك المراجعة في صفة مراجعة معتمدة. لو ذهبت بعد ذلك إلى صفحة التاريخ، سوف ترى وصلة «اعتماد» شبكية جوار مراجعات أخرى، وكذلك وصلة «إلغاء اعتماد» شبكية جوار المراجعة المعتمدة؛ كما سيوجد جوار صف المراجعة المعتمدة نجمة. سينتج عن النقر على «اعتماد» لأي مراجعة أخرى إعادة ضبط الاعتماد لتصبح هذه هي المراجعة المعتمدة؛ بينما أن النقر على «إلغاء الاعتماد» سيعني أنه لن توجد مراجعة معتمدة لهذه الصفحة.

لن يرى المستخدمون الذين لا يتمتعون بتصريح 'approverevisions' أي شيء خاص في صفحة التاريخ، خلاف أيقونة نجمة في صف المراجعة المعتمدة.

بصفة افتراضية، لو أجرى مستخدم يتمتع بتصريح 'approverevisions' تعديلًا على صفحة تحتوي على مراجعة معتمدة، سيوسم هذا التعديل، أي آخر مراجعة لهذه الصفحة، بوسم معتمدة. على النقيض، لو لم توجد لصفحة ما مراجعة معتمدة (يشمل هذا بطبيعة الحال الصفحات الجديدة)، لن تنطبق الاعتمادات الآلية. الاستثناء الوحيد من هذا هو لو كانت قيمة $egApprovedRevsBlankIfUnapproved هي true لموقع الويكي؛ لو كان هذا هو الأمر، لو جرت أية تعديلات بيد مستخدم مسموح له بموجب approverevisions على صفحة غير مسموح بها سوف يصبح معتمدًا تلقائيًا، وبالتالي تتحول الصفحة إلى صفحة غير خاوية.

يمكنك وقف الاعتمادات الآلية، وبالتالي يصبح إلزاميًا اعتماد المراجعات يدويًا، وذلك عن طريق إضافة ما يلي إلى LocalSettings.php تحت حالة دمج المراجعات المعتمدة:

$egApprovedRevsAutomaticApprovals = false;

ينطبق مسوّغ منطقي مماثل على النسخ الجديدة من الملفات؛ يمكن أيضًا وقف هذه الاعتمادات الآلية آليًا مستخدمًا السطر التالي:

$egApprovedRevsFileAutomaticApprovals = false;

شبيه ما سلف، لو ضبطت «$egApprovedRevsBlankIfUnapproved» أو «$egApprovedRevsBlankFileIfUnapproved» لتصبح قيمتها «true» في LocalSettings.php (انظر التالي)، سيصبح كل تعديل على صفحات أو ملفات أو كليهما أجراها مستخدم يتمتع بتصريح 'approverevisions' معتمدًا، وسينطبق ذلك على التعديلات التي تجري على صفحات أو ملفات ليس لها مراجعات معتمدة.

تحفظ حالات اعتماد المراجعات وإلغاء اعتمادها اليدوية في سجل 'اعتماد – approval'؛ في حين أن الاعتمادات التي جرت آليًا، نتيجة لتعديل جرى على الصفحة بيد مستخدم يتمتع بصلاحية الاعتماد، لا تحفظ في السجل.

Special:ApprovedRevs page

يحدد امتداد المراجعات المعتمدة صفحة خاصة اسمها «Special:ApprovedRevs» والتي تعرض أربع قوائم منفصلة:

  • صفحات مراجعاتها المعتمدة ليست هي آخر تعديل جرى عليها
  • كافة الصفحات التي يوجد لها مراجعة معتمدة
  • «صفحات ألغي اعتمادها» (كافة الصفحات التي لا يوجد لها مراجعة معتمدة)
  • صفحات تحتوي على اعتمادات غير صالحة (مثل صفحات موجودة في نطاق اسم كان يمكن اعتماد محتواه في السابق ولم يعد الحال كذلك الآن).

في حالة القائمة الثالثة، حينما توجد صفحات لا تحتوي على مراجعات معتمدة، يمكنك أن تضم بصفة اختيارية وصلة شبكية لكل صفحة كي تسم آخر مراجعة لتلك الصفحة بوسم معتمدة. كي تضم مثل هذه الوصلات الشبكية، أضف التالي إلى LocalSettings.php:

$egApprovedRevsShowApproveLatest = true;

حفظ معلومات الاعتماد

تخزّن معلومات عن الاعتمادات – من نفذّ الاعتمادات ومتى جرت – في سجل «Revision approval» الذي يمكن الاطلاع عليه في صفحة Special:Log. كما تعرض آخر الاعتمادات في Special:RecentChanges.

عرض الصفحات غير المعتمدة خالية

لو رغبت في ذلك، يمكنك أن تفرض على الصفحات التي لا يوجد لها مراجعات معتمدة أن تظهر خالية – سيظل ممكنًا للمستخدمين الاطلاع على المراجعات لو نقروا على لسان «التاريخ»، إلا أن الصفحة ذاتها ستظهر خالية لا تحتوي على محتوى. كي تنفذ هذا، كل ما عليك هو إضافة السطر التالي إلى LocalSettings.php، في أي مكان بعد ضم امتداد المراجعات المعتمدة:

$egApprovedRevsBlankIfUnapproved = true;

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

$egApprovedRevsBlankFileIfUnapproved = true;

الإشارة إلى صفحات غير معتمدة

بصفة افتراضية، تعرض الصفحات التي لا يوجد لها مراجعات معتمدة ببساطة كالمعتاد، أي دون إشارة إلى حالتها. يمكنك أن تفرض على هذه الصفحات عرض رسالة في الجزء العلوي نصها كما يلي «هذه هي آخر مراجعة لهذه الصفحة؛ الصفحة لا يوجد لها مراجعات معتمدة.» كي تفعل هذا، أضف السطر التالي إلى LocalSettings.php:

$egApprovedRevsShowNotApprovedMessage = true;

ضبط الصفحات كي يمكن اعتمادها

يمكن لبعض صفحات موقع الويكي اعتماد مراجعاتها، بينما لا يمكن ذلك للبعض الآخر؛ يتحدد هذا الأمر بسبيل من بين ثلاث.

ضبط كافة الصفحات في نطاق اسم محدد لتكون قابلة للاعتماد

يوجد متغير عمومي هو $egApprovedRevsEnabledNamespaces يتولى تحديد نطاقات الاسم التي يتعامل معها الامتداد. هذا المتغير ليس إلا صفيف، ويحتوي بصفة افتراضية على ستة نطاقات اسم: NS_MAIN (يحدد بالرقم 0، نطاق الاسم الرئيسي)، NS_USER (2، صفحات المستخدمين)، NS_FILE (6، الملفات)، NS_TEMPLATE (10، القوالب)، NS_HELP (12، صفحات المساعدة)، وNS_PROJECT (4، نطاق اسم المشروع، الذي يحمل عادة ذات اسم موقع الويكي). يمكنك إضافة نطاقات اسم أخرى إلى هذه المجموعة – بعد ضم امتداد المراجعات المعتمدة إلى LocalSettings.php، أضف ما يشبه التالي:

$egApprovedRevsEnabledNamespaces[NS_USER_TALK] = true;

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

إن أردت إزالة نطاق الاسم الافتراضي من الاعتماد، اضبط قيمته لتصبح «false». على سبيل المثال، كي تجعل الملفات غير قابلة للاعتماد، أضف ما يلي:

$egApprovedRevsEnabledNamespaces[NS_FILE] = false;

جعل الصفحات يمكن اعتمادها باستخدام ‎#approvable_by

يحدد امتداد المراجعات المعتمدة دوال المعرب اللغوي #approvable_by، التي تسمح لك بتحديد صفحات بعينها في صفة قابلة للاعتماد بيد مستخدمين معينين أو مجموعات بعينها. على سبيل المثال، سيسمح الاستدعاء التالي للمستخدمة Alice Jones، وكذلك المستخدمين في مجموعتي البيروقراطيين ومشغلي النظام، باعتماد الصفحة التي يجري استدعاء ذلك عليها:

{{#approvable_by: users = Alice Jones | groups = bureaucrat,sysop }}

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

ضبط صفحات يمكن اعتمادها باستخدام كلمة سحرية

يمكن أيضًا تمكين اعتماد صفحات بعينها ليست موجودة في نطاقات الاسم المحددة، وذلك عن طريق إضافة الكلمة السحرية __APPROVEDREVS__ في أي مكان في الصفحة. نحبذ إضافة هذه الكلمة السحرية إلى الصفحات مستخدمًا قالب. لو أضيفت __APPROVEDREVS__ مباشرة إلى صفحة، احرص على عدم اعتماد مراجعة لتلك الصفحة قبل إضافة هذه الكلمة السحرية؛ منذ أن هذا الأمر قد يؤدي إلى حدوث أمور غير متوقعة.

إفساح المجال لغير الإداريين «لتملك» صفحات

يكون من المفيد أحيانًا السماح لهؤلاء الذين لا يتمتعون بتصريح 'approverevisions' العمومي أن يمكنهم اعتماد مراجعات صفحات بعينها – بعبارة أخرى، أن يتملكوا صفحات بعينها. مثال واضح على هذا الأمر هو صفحات المستخدمين – لا شك أنه لا ضير في السماح لكل مستخدم أن يكون بوسعه اعتماد المراجعات على صفحة مستخدمه. في حالات نطاقات الاسم خلاف نطاق الاسم «مستخدم»، يمكنك اختيار أن يصبح المستخدم الذي أنشأ أي صفحة في نطاق الاسم المحدد مالكًا للصفحة، ومن ثم يمنح تصريح اعتماد المراجعات على تلك الصفحة.

للحصول على مثل هذا النوع من «الملكية» لنطاق اسم محدد، ستحتاج لإضافة نطاق الاسم إلى المتغير $egApprovedRevsSelfOwnedNamespaces كي تسمح للمستخدمين «بتملك» صفحات، أي أن يمكنهم اعتماد مراجعاتها، موجودة في نطاقي الاسم الرئيسي والمستخدم، على سبيل المثال، يجب عليك إضافة ما يلي إلى LocalSettings.php:

$egApprovedRevsSelfOwnedNamespaces = array( NS_MAIN, NS_USER );

يجب على نطاق الاسم أن يرجع إلى $egApprovedRevsEnabledNamespaces قبل أن يضاف إلى $egApprovedRevsSelfOwnedNamespaces.

عرض معلومات الاعتماد

تحدد المراجعات المعتمدة خمس «كلمات سحرية» يمكن استخدامها في عرض معلومات الاعتماد عن صفحة بعينها (أو ملف). هي كما يلي:

  • APPROVALYEAR - السنة التي نفذ على الصفحة فيها آخر اعتماد
  • APPROVALMONTH - الشهر الذي نفذ على الصفحة فيه آخر اعتماد
  • APPROVALDAY - اليوم من الشهر الذي نفذ على الصفحة فيه آخر اعتماد
  • APPROVALTIMESTAMP - الختم الزمني الكامل باليوم والساعة الذي نفذ على الصفحة فيه آخر اعتماد
  • APPROVALUSER - المستخدم الذي اعتمد الصفحة آخر مرة.

يمكن استدعاء الكلمات الخمس كلها وحدها (وهو ما سيرد تلك المعلومات عن الصفحة التي يوجد فيها الاستدعاء)، أو تستدعى باسم صفحة ممرر (وهو ما سيرد تلك المعلومات للصفحة المحددة). لذلك، وعلى سبيل المثال، في صفحة «الصفحة الرئيسية»، سوف يعرض الاستدعاء {{APPROVALYEAR}} السنة التي جرى فيها آخر اعتماد لصفحة «الصفحة الرئيسية»، بينما أن الاستدعاء {{APPROVALYEAR:Employees list}} سوف يعرض السنة التي جرى فيها آخر اعتماد لصفحة «Employees list».

لو جرى استدعاء أي من هذه الكلمات السحرية لصفحة لا توجد لها مراجعات معتمدة، أو لصفحة غير موجودة، سوف تعرض هذه الاستدعاءات لا شيء على الإطلاق.

يمكن استدعاء الأربعة الأولى من بين هذه الكلمات السحرية للملفات؛ أما الأخيرة، APPROVALUSER، لسوء الحظ لن تعمل.

لاحظ أنه، لو شرعت في استخدام امتداد المراجعات المعتمدة قبل الإصدار 1.4، سوف تعرض في الغالب الكلمات السحرية الأربعة الأولى التي تتعلق جميعًا بالوقت الذي جرت فيه المراجعة صفحة خالية لأي صفحة جرى اعتماد مراجعاتها حينما كان امتداد المراجعات المعتمدة مستخدمًا في إصدار أقدم من 1.4.

واجهة برمجة التطبيقات

تَحدّد امتداد المراجعات المعتمدة في صفة تصرف من واجهة برمجة تطبيقات، أي «اعتماد»، وهو ما يسمح لك إما باعتماد أية مراجعة أو (لو أضيف المتغير الإضافي «إلغاء الاعتماد») إلغاء اعتمادها مستخدمًا واجهة برمجة تطبيقات ميدياويكي. اذهب إلى هذه الصفحة لتطلع على تفسير للتركيب النحوي لواجهة برمجة التطبيقات هذه.

وسم كافة الصفحات بوسم معتمدة

في حالة الصفحات التي لا يوجد لها حتى الآن مراجعة معتمدة، قد ترغب في اعتماد آخر مراجعاتها آليًا، وذلك في صفة طريقة لبدء محتواها سريعًا. لتنفيذ هذا، يمكنك استخدام نص سطر الأوامر 'ApprovedRevs/maintenance/approveAllPages.php'. يعتمد هذا النص البرمجي آخر مراجعة لكافة الصفحات التي يمكن اعتمادها إلا أنها لا تحتوي على مراجعة معتمدة. (يحتوي النص البرمجي على وسوم اختيارية متعددة، من بينها وسم يسمح لك أيضًا بالتعامل مع صفحات تحتوي بالفعل على مراجعة معتمدة.)

اعتماد الملفات

اختيار نسخة من ملف ما كي تصبح معتمدة

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

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

كما هو الحال مع نص approveAllPages.php البرمجي، ثمة نص برمجي آخر، approveAllFiles.php، قائم تحديدًا لاعتماد الملفات.

تاريخ النسخة

النسخة الحالية للمراجعات المعتمدة هي 2.0. طالع كامل تاريخ النسخة.

المشكلات المعروفة

  • لا يعمل امتداد المراجعات المعتمدة مع المستخدمين المجهولين الذين يستخدمون امتداد AccessControl – حيث سينتج عن اعتماد مراجعة إلى ظهور رسالة خطأ «Deny_action» منذ أن هؤلاء المستخدمين لا يتمتعون بصلاحية الوصول إلى تاريخ الصفحة.

المساهمة في المشروع

الأعطال البرمجية وطلبات السمات

أرسل أية بلاغات أعطال برمجية وطلباتها إلى يارون كورين (yaron57@gmail.com).

المساهمة برقع برمجية في المشروع

لو وجدت عطل برمجي وصوبته، أو لو كتبت نص برمجي لسمة جديدة، يرجى رفع التزام بها على غت أو إنشاء رقعة برمجية عن طريق الذهاب إلى مجلد «ApprovedRevs»، وطباعة التالي:

git diff > descriptivename.patch

لو أنشأت رقعة برمجية، يرجى إرسالها مع بيان بها إلى Yaron Koren.

الترجمة

تجري ترجمات امتداد المراجعات المعتمدة على موقع translatewiki.net. يمكن الاطلاع على ترجمات هذا الامتداد على هذه الصفحة: https://translatewiki.net/w/?title=Special:Translate&group=ext-approvedrevs. كي تضيف قيم لغة أو تغيير قيم قائمة، يجب عليك إنشاء حساب على موقع translatewiki.net ثم طلب تسريح من إداري بالترجمة إلى لغة أو لغات بعينها على هذه الصفحة (هذه عملية بسيطة للغاية). حال منحك التصريح للغة بعينها، يمكنك تسجيل الدخول وإضافة ما ترغب من رسائل إلى تلك اللغة أو تعديلها.

انظر أيضا

  • Extension:ContentStabilization - يسمح للمستخدمين بوسم الصفحات بوسم «معتمدة» أو «مسودة» واستعراض آخر نسخة معتمدة من الصفحة.
  • Extension:Moderation - تظل التعديلات خصوصية إلى أن تنتهي الموافقة عليها
  • Extension:FlaggedRevs - البديل الأكثر تعقيدًا من المراجعات المعتمدة