تحسين قائمة التنقل الخاصة بـ MediaWiki
يمكن أن يؤدي تخصيص قائمة التنقل الخاصة بـ MediaWiki إلى تحسين تجربة المستخدم بشكل كبير، مما يسمح بأدوات أكثر سهولة في الوصول إليها وعملية. إذا كنت تقوم بتشغيل MediaWiki 1.39 مع السمة الخالدة، فقد تجد صعوبة في إضافة خيارات محددة مثل "الإصدار القابل للطباعة". هذه المهمة ليست واضحة نظرًا للتكوينات الفريدة لقائمة الشريط الجانبي.
أحد الأهداف المشتركة بين المسؤولين هو تزويد المستخدمين بطريقة سريعة للوصول إلى الصفحات القابلة للطباعة. تعتبر هذه الميزة ضرورية للبيئات التي يتم فيها الرجوع غالبًا إلى المواد غير المتصلة بالإنترنت أو المواد المطبوعة، مثل مواقع الويكي الأكاديمية أو مواقع الويكي الخاصة بالشركات. ومع ذلك، يجد الكثيرون أن العملية أقل سهولة مما كان متوقعًا. 🖨️
في هذا الدليل، سنستكشف كيفية دمج رابط "النسخة القابلة للطباعة" في قائمة التنقل، وتحديدًا ضمن خيار "صفحة عشوائية". يتطلب استخدام MediaWiki:الشريط الجانبي لإجراء التعديلات فهمًا قويًا لتركيبه وسلوكه ضمن القالب الخالد.
إذا كنت عالقًا أو تواجه مشكلات، فلا تقلق! بحلول نهاية هذه الإرشادات التفصيلية، لن تعرف فقط كيفية تنفيذ التغيير ولكن ستكتسب أيضًا نظرة ثاقبة حول كيفية عمل الشريط الجانبي لـ MediaWiki. دعونا نتعمق في هذا التحسين العملي. 🌟
يأمر | مثال للاستخدام |
---|---|
$wgHooks['SkinBuildSidebar'][] | يقوم هذا الأمر بتسجيل رابط مخصص في MediaWiki يسمح بتعديل بنية الشريط الجانبي أثناء عرضه. إنه خاص بتخصيص قوائم التنقل ديناميكيًا. |
$skin->$skin->msg() | يسترد الرسائل أو الروابط المترجمة في MediaWiki. وفي هذا السياق، فإنه يقوم ديناميكيًا بجلب عنوان URL لميزة "الإصدار القابل للطباعة" باستخدام إعدادات اللغة المضمنة. |
document.addEventListener('DOMContentLoaded') | يضمن تنفيذ منطق JavaScript فقط بعد تحميل DOM بالكامل، وهو أمر بالغ الأهمية لتعديل قائمة التنقل الموجودة ديناميكيًا. |
document.createElement() | ينشئ عناصر HTML جديدة، مثل li والعلامات، والتي تتم إضافتها إلى قائمة التنقل ديناميكيًا في حل الواجهة الأمامية. |
arrayHasKey | يُستخدم في اختبارات الوحدة للتحقق من وجود مفتاح معين في مصفوفة، مما يضمن إضافة خيار "الإصدار القابل للطباعة" إلى بنية الشريط الجانبي بشكل صحيح. |
if (!defined('MEDIAWIKI')) | يضمن تنفيذ البرنامج النصي ضمن إطار عمل MediaWiki، مما يمنع التنفيذ غير المصرح به أو المستقل. |
$GLOBALS['wgHooks'] | الوصول إلى الروابط العامة داخل MediaWiki، مما يتيح للمطورين إضافة أو تعديل الوظائف ديناميكيًا في نقاط محددة في دورة حياة التطبيق. |
link.href | يضبط عنوان URL للارتباط التشعبي الذي تم إنشاؤه حديثًا ديناميكيًا في JavaScript، مع إضافة معلمات استعلام مثل ?printable=yes لتنشيط الإصدار القابل للطباعة. |
SkinBuildSidebar | رابط MediaWiki محدد يسمح بالتلاعب المباشر بعناصر الشريط الجانبي، مما يجعله ملائمًا للغاية لإضافة روابط جديدة أو عناصر قائمة. |
TestCase::createMock() | ينشئ كائنات وهمية لاختبار الوحدة، ومحاكاة فئة واجهة MediaWiki للتحقق من صحة تعديلات الشريط الجانبي دون الحاجة إلى مثيل MediaWiki كامل. |
كيفية تخصيص قائمة التنقل الخاصة بـ MediaWiki
تركز البرامج النصية المقدمة أعلاه على تحسين قائمة التنقل الخاصة بـ MediaWiki عن طريق إضافة خيار "نسخة قابلة للطباعة" أسفل رابط "صفحة عشوائية". يمكن تحقيق هذا التعديل من خلال تخصيص الواجهة الخلفية باستخدام الخطافات أو البرمجة النصية للواجهة الأمامية باستخدام JavaScript. على سبيل المثال، يقوم برنامج PHP النصي بتعزيز المصفوفة والخطاف "SkinBuildSidebar" لإدراج عنصر تنقل جديد ديناميكيًا. يضمن هذا الأسلوب أن الإضافة تتكامل بسلاسة مع بنية الشريط الجانبي الحالي، وتتكيف مع الأشكال المختلفة مثل المظهر الخالد. 🖥️
يوفر حل JavaScript للواجهة الأمامية بديلاً أكثر ديناميكية، يستهدف قائمة التنقل بعد تحميل DOM بالكامل. باستخدام أوامر مثل وإلحاق عناصر القائمة المنشأة حديثًا بقائمة التنقل، ولا تتطلب هذه الطريقة تعديل رمز الواجهة الخلفية. على سبيل المثال، يمكن لموقع wiki الجامعي أن ينشر بسرعة ميزة "الإصدار القابل للطباعة" للطلاب الذين يصلون إلى مواد الدورة التدريبية، مما يضمن الحد الأدنى من التعطيل للموقع المباشر. هذه المرونة تجعلها مثالية للحالات التي يكون فيها الوصول إلى الواجهة الخلفية محدودًا أو غير متاح. 📄
جانب رئيسي آخر للنصوص المقدمة هو نمطيتها والتركيز على أفضل الممارسات. يشتمل برنامج PHP النصي على معالجة الأخطاء للتأكد من أنه يعمل فقط ضمن إطار عمل MediaWiki. وبالمثل، يتحقق منطق JavaScript من صحة وجود قائمة التنقل قبل محاولة تعديلها، مما يقلل من مخاطر أخطاء وقت التشغيل. على سبيل المثال، في موقع wiki الخاص بالشركة، يعد ضمان الموثوقية أمرًا بالغ الأهمية نظرًا لأن الشريط الجانبي غالبًا ما يكون مركز تنقل مركزي للموظفين الذين يصلون إلى مستندات المشروع أو تقاريره.
تكمل اختبارات الوحدة البرامج النصية من خلال التحقق من إضافة رابط "الإصدار القابل للطباعة" بشكل صحيح في سيناريوهات مختلفة. من خلال محاكاة بيئة MediaWiki باستخدام كائنات وهمية، تضمن هذه الاختبارات عمل الحل عبر التكوينات المختلفة. تعتبر عملية الاختبار هذه ذات قيمة خاصة للمطورين الذين يديرون مواقع ويكي متعددة، حيث أنها توفر حماية ضد مشكلات النشر. في النهاية، سواء من خلال خطافات الواجهة الخلفية لـ PHP، أو JavaScript للواجهة الأمامية، أو اختبار الوحدة القوي، توفر البرامج النصية طرقًا متعددة الاستخدامات لتعزيز التنقل في MediaWiki بأداء وموثوقية مثاليين. 🌟
إضافة خيار "نسخة قابلة للطباعة" في التنقل في MediaWiki
برنامج نصي من جانب الخادم لتعديل تكوين الشريط الجانبي لـ MediaWiki باستخدام PHP.
//php
// Load MediaWiki's core files
if ( !defined( 'MEDIAWIKI' ) ) {
die( 'This script must be run from within MediaWiki.' );
}
// Hook into the Sidebar generation
$wgHooks['SkinBuildSidebar'][] = function ( &$sidebar, $skin ) {
// Add the "Printable version" link below "Random page"
$sidebar['navigation'][] = [
'text' => 'Printable version',
'href' => $skin->msg( 'printable' )->inContentLanguage()->text(),
'id' => 'n-printable-version'
];
return true;
};
// Save this script in a custom extension or LocalSettings.php
//
استخدام تكوين الشريط الجانبي لـ MediaWiki لإضافة روابط جديدة
طريقة يدوية لتحرير صفحة MediaWiki:الشريط الجانبي في القالب الخالد.
* navigation
mainpage|mainpage-description
recentchanges-url|recentchanges
randompage-url|randompage
printable-version|Printable version
* SEARCH
* TOOLBOX
// Save changes in the MediaWiki:Sidebar special page.
// Ensure "printable-version" message key is properly defined.
حل جافا سكريبت الديناميكي للواجهة الأمامية
برنامج نصي من جانب العميل يستخدم JavaScript لإضافة خيار "الإصدار القابل للطباعة" ديناميكيًا.
document.addEventListener('DOMContentLoaded', function () {
const navList = document.querySelector('.mw-portlet-navigation ul');
if (navList) {
const printableItem = document.createElement('li');
printableItem.id = 'n-printable-version';
const link = document.createElement('a');
link.href = window.location.href + '?printable=yes';
link.textContent = 'Printable version';
printableItem.appendChild(link);
navList.appendChild(printableItem);
}
});
اختبارات الوحدة لتعديلات الشريط الجانبي
تقوم وحدة PHP باختبار التحقق من صحة تكامل "الإصدار القابل للطباعة" على الواجهة الخلفية.
use PHPUnit\Framework\TestCase;
class SidebarTest extends TestCase {
public function testPrintableVersionLinkExists() {
$sidebar = []; // Simulate Sidebar data structure
$skinMock = $this->createMock(Skin::class);
$callback = $GLOBALS['wgHooks']['SkinBuildSidebar'][0];
$this->assertTrue($callback($sidebar, $skinMock));
$this->assertArrayHasKey('Printable version', $sidebar['navigation']);
}
}
// Run using PHPUnit to ensure robust testing.
تحسين MediaWiki بالتخصيصات المتقدمة
إن إضافة ميزات مخصصة إلى مثيل MediaWiki يمكن أن يتجاوز مجرد تعديلات قائمة التنقل البسيطة. على سبيل المثال، يبحث المسؤولون غالبًا عن طرق لتحسين الوظائف لاحتياجات مستخدمين محددة، مثل دمج خيارات التصدير أو تخصيص التخطيطات بناءً على أدوار المستخدم. تعد هذه التحسينات، بما في ذلك إضافة "نسخة قابلة للطباعة"، أمرًا حيويًا لجعل مواقع الويكي أكثر ديناميكية وسهولة في الاستخدام. دمج الروابط الجديدة في يمكن تصميمها لتتناسب مع المتطلبات الفريدة لبوابة الجامعة أو الوثائق الداخلية للشركة.
إحدى المجالات التي تستحق الاستكشاف هي توطين خيارات القائمة المضافة حديثًا. على سبيل المثال، التأكد من ترجمة تسمية "النسخة القابلة للطباعة" ديناميكيًا بناءً على تفضيلات اللغة الخاصة بالمستخدم يضيف طبقة من الشمولية. استخدام أساليب الترجمة المضمنة في MediaWiki، مثل ، يسمح للمطورين بمواءمة تخصيصاتهم مع معايير MediaWiki العالمية. يعد هذا مفيدًا بشكل خاص في المؤسسات متعددة الجنسيات حيث يصل الموظفون أو المساهمين إلى الويكي بلغات متعددة. 🌍
هناك اعتبار مهم آخر وهو التفاعل بين التخصيصات وموضوع MediaWiki المحدد. ال ، على سبيل المثال، يستخدم بنية فريدة تتطلب اختبار أي تغييرات بدقة لضمان التوافق. على سبيل المثال، قد يحتاج عنصر التنقل البارز بشكل مرئي مثل "الإصدار القابل للطباعة" إلى تعديلات CSS إضافية للحفاظ على مظهره عبر الأجهزة. تضمن هذه التعديلات الدقيقة أن تظل الواجهة بديهية واحترافية بغض النظر عن جهاز المستخدم أو حجم الشاشة. 📱
- كيف يمكنني تعديل الشريط الجانبي لميدياويكي؟
- يمكنك تحرير الشريط الجانبي عن طريق تعديل صفحة MediaWiki:الشريط الجانبي. استخدم أوامر مثل و لتحديد الروابط الجديدة.
- ما هو الموضوع "الخالد" وكيف يؤثر على التخصيص؟
- السمة الخالدة هي واجهة MediaWiki حديثة ذات تصميم سريع الاستجابة. قد تتطلب التخصيصات، مثل تغييرات الشريط الجانبي، اختبارات إضافية للتأكد من عرضها بشكل صحيح.
- هل من الممكن إضافة الترجمة لخيارات الشريط الجانبي الجديدة؟
- نعم، يمكنك استخدام لجلب تسميات محلية لعناصر القائمة الخاصة بك، مما يضمن التوافق مع مواقع الويكي متعددة اللغات.
- هل يمكنني إضافة ميزات جديدة دون تعديل كود الواجهة الخلفية؟
- نعم، حلول JavaScript للواجهة الأمامية مثل الاستخدام تسمح لك بإضافة روابط أو ميزات ديناميكيًا دون إجراء تغييرات على الواجهة الخلفية.
- كيف يمكنني اختبار ميزات الشريط الجانبي الجديدة؟
- باستخدام اختبارات وحدة PHP أو إطار عمل اختبار مثل PHPUnit، يمكنك محاكاة تعديلات الشريط الجانبي للتأكد من أنها تعمل كما هو متوقع.
تؤدي إضافة خيار "الإصدار القابل للطباعة" إلى التنقل عبر MediaWiki إلى زيادة سهولة الاستخدام والتنظيم إلى موقع wiki الخاص بك. من خلال الأساليب المفصلة هنا، بدءًا من برمجة PHP النصية إلى JavaScript، أصبح التخصيص متاحًا وفعالاً لجميع المسؤولين.
ومن خلال إعطاء الأولوية للترجمة والتوافق مع السمات، يصبح موقع wiki الخاص بك مصدرًا موثوقًا لجماهير متنوعة. لا تعمل هذه التحسينات على تحسين الوظائف فحسب، بل توفر أيضًا تجربة سهلة الاستخدام، مما يعكس نظامًا أساسيًا يتم صيانته جيدًا ويمكن الوصول إليه. 🌟
- وثائق MediaWiki الرسمية حول تخصيص الشريط الجانبي: دليل الشريط الجانبي لميدياويكي
- مناقشة المجتمع وأمثلة على تكوينات السمات الخالدة: موضوع ميدياويكي الخالدة
- مثال لصورة توضح تخطيط قائمة التنقل: مثال على قائمة التنقل
- وثائق PHP للخطافات والإضافات: دليل PHP