$lang['tuto'] = "سبق"; ?>$lang['tuto'] = "سبق"; ?>$lang['tuto'] = "سبق"; ?> میڈیا ویکی نیویگیشن مینو میں

میڈیا ویکی نیویگیشن مینو میں "پرنٹ ایبل ورژن" کیسے شامل کریں۔

Sidebar

آپ کے میڈیا ویکی نیویگیشن مینو کو بڑھانا

اپنے MediaWiki نیویگیشن مینو کو اپنی مرضی کے مطابق بنانا صارف کے تجربے کو نمایاں طور پر بڑھا سکتا ہے، جس سے زیادہ قابل رسائی اور فعال ٹولز مل سکتے ہیں۔ اگر آپ ٹائم لیس تھیم کے ساتھ MediaWiki 1.39 چلا رہے ہیں، تو آپ کو مخصوص اختیارات جیسے "پرنٹ ایبل ورژن" شامل کرنا مشکل ہو سکتا ہے۔ سائڈبار مینو کی منفرد ترتیب کی وجہ سے یہ کام سیدھا نہیں ہے۔

منتظمین کے درمیان ایک مشترکہ مقصد صارفین کو پرنٹ ایبل صفحات تک رسائی کا فوری طریقہ فراہم کرنا ہے۔ یہ خصوصیت ان ماحول کے لیے ضروری ہے جہاں آف لائن یا ہارڈ کاپی مواد کا اکثر حوالہ دیا جاتا ہے، جیسے کہ تعلیمی یا کارپوریٹ وکی۔ تاہم، بہت سے لوگوں کو یہ عمل توقع سے کم بدیہی لگتا ہے۔ 🖨️

اس گائیڈ میں، ہم دریافت کریں گے کہ "پرنٹ ایبل ورژن" لنک ​​کو نیویگیشن مینو میں کیسے شامل کیا جائے، خاص طور پر "رینڈم پیج" کے اختیار کے تحت۔ ترمیم کے لیے MediaWiki:Sidebar کو استعمال کرنے کے لیے اس کے نحو اور طرز عمل کی ٹھوس سمجھ کی ضرورت ہوتی ہے۔

اگر آپ پھنس گئے ہیں یا مسائل کا سامنا کر رہے ہیں، تو پریشان نہ ہوں! اس واک تھرو کے اختتام تک، آپ نہ صرف یہ جان لیں گے کہ تبدیلی کو کیسے لاگو کرنا ہے بلکہ میڈیا ویکی سائڈبار کے کام کرنے کے طریقے کے بارے میں بصیرت بھی حاصل کر لیں گے۔ آئیے اس عملی اضافہ میں غوطہ لگائیں۔ 🌟

حکم استعمال کی مثال
$wgHooks['SkinBuildSidebar'][] یہ کمانڈ میڈیا وکی میں ایک حسب ضرورت ہک کو رجسٹر کرتی ہے جو اس کی رینڈرنگ کے دوران سائڈبار کے ڈھانچے کو تبدیل کرنے کی اجازت دیتی ہے۔ یہ نیویگیشن مینو کو متحرک طور پر اپنی مرضی کے مطابق کرنے کے لیے مخصوص ہے۔
$skin->$skin->msg() میڈیا ویکی میں مقامی پیغامات یا لنکس کو بازیافت کرتا ہے۔ اس تناظر میں، یہ بلٹ ان لینگوئج سیٹنگز کا استعمال کرتے ہوئے "پرنٹ ایبل ورژن" فیچر کے لیے متحرک طور پر یو آر ایل حاصل کرتا ہے۔
document.addEventListener('DOMContentLoaded') اس بات کو یقینی بناتا ہے کہ JavaScript منطق DOM کے مکمل لوڈ ہونے کے بعد ہی عمل میں آتی ہے، جو موجودہ نیویگیشن مینو کو متحرک طور پر تبدیل کرنے کے لیے اہم ہے۔
document.createElement() نئے HTML عناصر بناتا ہے، جیسے li اور a tags، جو نیویگیشن مینو میں متحرک طور پر سامنے والے حل میں شامل کیے جاتے ہیں۔
arrayHasKey یونٹ ٹیسٹوں میں اس بات کی تصدیق کرنے کے لیے استعمال کیا جاتا ہے کہ آیا کوئی خاص کلید کسی صف میں موجود ہے، اس بات کو یقینی بناتے ہوئے کہ "پرنٹ ایبل ورژن" کا اختیار سائڈبار کے ڈھانچے میں صحیح طریقے سے شامل کیا گیا ہے۔
if (!defined('MEDIAWIKI')) اس بات کو یقینی بناتا ہے کہ اسکرپٹ کو میڈیا وکی فریم ورک کے اندر عمل میں لایا گیا ہے، غیر مجاز یا اسٹینڈ اکیکوشن کو روکتا ہے۔
$GLOBALS['wgHooks'] MediaWiki کے اندر عالمی ہکس تک رسائی حاصل کرتا ہے، جس سے ڈویلپرز کو ایپلی کیشن کے لائف سائیکل میں مخصوص پوائنٹس پر فعالیت کو متحرک طور پر شامل کرنے یا اس میں ترمیم کرنے کے قابل بناتا ہے۔
link.href جاوا اسکرپٹ میں متحرک طور پر نئے بنائے گئے ہائپر لنک کا URL سیٹ کرتا ہے، پرنٹ ایبل ورژن کو چالو کرنے کے لیے ?printable=yes جیسے استفسار کے پیرامیٹرز کو شامل کرتا ہے۔
SkinBuildSidebar ایک مخصوص MediaWiki ہک جو سائڈبار عناصر کی براہ راست ہیرا پھیری کی اجازت دیتا ہے، اسے نئے لنکس یا مینو آئٹمز کو شامل کرنے کے لیے انتہائی متعلقہ بناتا ہے۔
TestCase::createMock() یونٹ ٹیسٹنگ کے لیے فرضی آبجیکٹ بناتا ہے، میڈیاویکی کی سکن کلاس کو نقل کرتے ہوئے سائڈبار میں ترمیم کی توثیق کرنے کے لیے مکمل میڈیاویکی مثال کی ضرورت نہیں ہوتی۔

میڈیاویکی نیویگیشن مینو کو کس طرح اپنی مرضی کے مطابق بنائیں

اوپر فراہم کردہ اسکرپٹس "رینڈم پیج" لنک ​​کے نیچے "پرنٹ ایبل ورژن" کا آپشن شامل کرکے میڈیا ویکی نیویگیشن مینو کو بڑھانے پر توجہ مرکوز کرتی ہیں۔ یہ ترمیم جاوا اسکرپٹ کے ساتھ ہکس یا فرنٹ اینڈ اسکرپٹنگ کا استعمال کرتے ہوئے بیک اینڈ حسب ضرورت کے ذریعے حاصل کی جاسکتی ہے۔ مثال کے طور پر، پی ایچ پی اسکرپٹ کا فائدہ اٹھاتا ہے۔ ایک نئی نیویگیشن آئٹم کو متحرک طور پر داخل کرنے کے لیے سرنی اور "SkinBuildSidebar" ہک۔ یہ نقطہ نظر اس بات کو یقینی بناتا ہے کہ اضافہ بغیر کسی رکاوٹ کے موجودہ سائڈبار ڈھانچے کے ساتھ ضم ہو جائے، مختلف جلدوں جیسے ٹائم لیس تھیم کے مطابق ہو۔ 🖥️

فرنٹ اینڈ JavaScript حل ایک زیادہ متحرک متبادل فراہم کرتا ہے، DOM کے مکمل لوڈ ہونے کے بعد نیویگیشن مینو کو نشانہ بناتا ہے۔ جیسے کمانڈز کا استعمال کرکے اور نیویگیشن مینو میں نئی ​​تخلیق کردہ فہرست اشیاء کو شامل کرنا، اس طریقہ کار کے لیے بیک اینڈ کوڈ میں ترمیم کی ضرورت نہیں ہے۔ مثال کے طور پر، ایک یونیورسٹی ویکی کورس کے مواد تک رسائی حاصل کرنے والے طلباء کے لیے "پرنٹ ایبل ورژن" فیچر کو تیزی سے تعینات کر سکتا ہے، لائیو سائٹ میں کم سے کم رکاوٹ کو یقینی بناتا ہے۔ یہ لچک اسے ایسے حالات کے لیے مثالی بناتی ہے جہاں بیک اینڈ تک رسائی محدود یا دستیاب نہ ہو۔ 📄

فراہم کردہ اسکرپٹس کا ایک اور اہم پہلو ان کی ماڈیولریٹی اور بہترین طریقوں پر توجہ مرکوز کرنا ہے۔ پی ایچ پی اسکرپٹ میں غلطی کو سنبھالنا شامل ہے تاکہ یہ یقینی بنایا جا سکے کہ یہ صرف میڈیا وکی فریم ورک کے اندر چلتا ہے۔ اسی طرح، جاوا اسکرپٹ کی منطق نیویگیشن مینو میں ترمیم کرنے کی کوشش کرنے سے پہلے اس کی موجودگی کی توثیق کرتی ہے، رن ٹائم کی غلطیوں کے خطرے کو کم کرتی ہے۔ مثال کے طور پر، ایک کارپوریٹ ویکی میں، وشوسنییتا کو یقینی بنانا بہت ضروری ہے کیونکہ سائڈبار اکثر پراجیکٹ دستاویزات یا رپورٹس تک رسائی حاصل کرنے والے ملازمین کے لیے مرکزی نیویگیشن ہب ہوتا ہے۔

یونٹ ٹیسٹ اس بات کی تصدیق کرتے ہوئے اسکرپٹ کی تکمیل کرتے ہیں کہ مختلف منظرناموں میں "پرنٹ ایبل ورژن" کا لنک درست طریقے سے شامل کیا گیا ہے۔ فرضی اشیاء کا استعمال کرتے ہوئے MediaWiki ماحول کی تقلید کرتے ہوئے، یہ ٹیسٹ اس بات کو یقینی بناتے ہیں کہ حل مختلف کنفیگریشنز میں کام کرتا ہے۔ یہ جانچ کا عمل خاص طور پر ایک سے زیادہ وکی کا انتظام کرنے والے ڈویلپرز کے لیے قابل قدر ہے، کیونکہ یہ تعیناتی کے مسائل کے خلاف تحفظ فراہم کرتا ہے۔ آخر کار، چاہے پی ایچ پی بیک اینڈ ہکس، فرنٹ اینڈ جاوا اسکرپٹ، یا مضبوط یونٹ ٹیسٹنگ کے ذریعے، اسکرپٹس میڈیا ویکی نیویگیشن کو بہترین کارکردگی اور بھروسے کے ساتھ بڑھانے کے لیے ورسٹائل طریقے پیش کرتی ہیں۔ 🌟

میڈیا ویکی نیویگیشن میں "پرنٹ ایبل ورژن" کا آپشن شامل کرنا

پی ایچ پی کا استعمال کرتے ہوئے میڈیا ویکی سائڈبار کنفیگریشن میں ترمیم کرنے کے لیے سرور سائیڈ اسکرپٹ۔

//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:Sidebar صفحہ میں ترمیم کرنے کا دستی طریقہ۔

* 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);
    }
});

سائڈبار میں ترمیم کے لیے یونٹ ٹیسٹ

پی ایچ پی یونٹ بیک اینڈ پر "پرنٹ ایبل ورژن" انضمام کی توثیق کرنے کے لیے ٹیسٹ کرتا ہے۔

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 کے عالمی معیارات کے ساتھ ہم آہنگ کریں۔ یہ خاص طور پر کثیر القومی تنظیموں میں مفید ہے جہاں ملازمین یا تعاون کنندگان متعدد زبانوں میں ویکی تک رسائی حاصل کرتے ہیں۔ 🌍

ایک اور اہم غور حسب ضرورت اور منتخب میڈیا وکی تھیم کے درمیان تعامل ہے۔ دی مثال کے طور پر، ایک منفرد ڈھانچہ استعمال کرتا ہے جس میں مطابقت کو یقینی بنانے کے لیے کسی بھی تبدیلی کو اچھی طرح جانچنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، بصری طور پر نمایاں نیویگیشن عنصر جیسے "پرنٹ ایبل ورژن" کو آلات پر اپنی ظاہری شکل برقرار رکھنے کے لیے اضافی CSS ایڈجسٹمنٹ کی ضرورت پڑ سکتی ہے۔ یہ باریک بینی ترمیمات اس بات کو یقینی بناتی ہیں کہ صارف کے آلے یا اسکرین کے سائز سے قطع نظر انٹرفیس بدیہی اور پیشہ ورانہ رہے۔ 📱

  1. میں میڈیا وکی سائڈبار میں کیسے ترمیم کرسکتا ہوں؟
  2. آپ MediaWiki:Sidebar صفحہ میں ترمیم کر کے سائڈبار میں ترمیم کر سکتے ہیں۔ جیسے کمانڈ استعمال کریں۔ اور نئے لنکس کی وضاحت کرنے کے لیے۔
  3. "ٹائم لیس" تھیم کیا ہے، اور یہ کس طرح حسب ضرورت کو متاثر کرتا ہے؟
  4. ٹائم لیس تھیم ایک ذمہ دار ڈیزائن کے ساتھ ایک جدید میڈیا ویکی جلد ہے۔ سائڈبار کی تبدیلیوں جیسی تخصیصات کو یہ یقینی بنانے کے لیے اضافی جانچ کی ضرورت ہو سکتی ہے کہ وہ صحیح طریقے سے ظاہر ہوں۔
  5. کیا سائڈبار کے نئے اختیارات کے لیے لوکلائزیشن شامل کرنا ممکن ہے؟
  6. جی ہاں، آپ استعمال کر سکتے ہیں کثیر لسانی وکی کے ساتھ مطابقت کو یقینی بناتے ہوئے، اپنے مینو آئٹمز کے لیے مقامی لیبلز لانے کے لیے۔
  7. کیا میں بیک اینڈ کوڈ میں ترمیم کیے بغیر نئی خصوصیات شامل کر سکتا ہوں؟
  8. ہاں، فرنٹ اینڈ جاوا اسکرپٹ حل جیسے استعمال کرنا آپ کو بیک اینڈ تبدیلیوں کے بغیر متحرک طور پر لنکس یا خصوصیات شامل کرنے کی اجازت دیتا ہے۔
  9. میں سائڈبار کی نئی خصوصیات کی جانچ کیسے کروں؟
  10. PHP یونٹ ٹیسٹ یا PHPUnit جیسے ٹیسٹنگ فریم ورک کا استعمال کرتے ہوئے، یہ یقینی بنانے کے لیے سائڈبار میں ترمیم کریں کہ وہ توقع کے مطابق کام کرتے ہیں۔

MediaWiki نیویگیشن میں "پرنٹ ایبل ورژن" کا اختیار شامل کرنے سے آپ کی ویکی میں زیادہ استعمال اور تنظیم ہوتی ہے۔ پی ایچ پی اسکرپٹنگ سے لے کر جاوا اسکرپٹ تک تفصیلی طریقوں کے ساتھ، حسب ضرورت تمام منتظمین کے لیے قابل رسائی اور موثر ہے۔

لوکلائزیشن اور تھیم کی مطابقت کو ترجیح دینے سے، آپ کا ویکی متنوع سامعین کے لیے ایک قابل اعتماد وسیلہ بن جاتا ہے۔ یہ اضافہ نہ صرف فعالیت کو بہتر بناتا ہے بلکہ صارف کے لیے دوستانہ تجربہ بھی فراہم کرتا ہے، جو ایک اچھی طرح سے برقرار رکھنے اور قابل رسائی پلیٹ فارم کی عکاسی کرتا ہے۔ 🌟

  1. سائڈبار حسب ضرورت پر سرکاری میڈیا وکی دستاویزات: میڈیاویکی سائڈبار دستی
  2. کمیونٹی ڈسکشن اور ٹائم لیس تھیم کنفیگریشنز کی مثالیں: میڈیاویکی ٹائم لیس تھیم
  3. نیویگیشن مینو لے آؤٹ کی مثال دینے والی تصویر: نیویگیشن مینو کی مثال
  4. ہکس اور ایکسٹینشن کے لیے پی ایچ پی دستاویزات: پی ایچ پی دستی