A "Nyomtatható verzió" hozzáadása a MediaWiki navigációs menüjéhez

Sidebar

A MediaWiki navigációs menüjének bővítése

A MediaWiki navigációs menüjének testreszabása jelentősen javíthatja a felhasználói élményt, elérhetőbb és funkcionálisabb eszközöket tesz lehetővé. Ha a MediaWiki 1.39-et Timeless témával futtatja, akkor kihívást jelenthet speciális beállítások, például a „Nyomtatható verzió” hozzáadása. Ez a feladat nem egyszerű az oldalsáv menüjének egyedi konfigurációi miatt.

Az adminisztrátorok egyik közös célja, hogy a felhasználóknak gyors hozzáférést biztosítsanak a nyomtatható oldalakhoz. Ez a funkció elengedhetetlen olyan környezetekben, ahol gyakran hivatkoznak offline vagy nyomtatott anyagokra, például tudományos vagy vállalati wikikre. Sokan azonban a vártnál kevésbé intuitívnak tartják a folyamatot. 🖨️

Ebben az útmutatóban megvizsgáljuk, hogyan építheti be a „Nyomtatható verzió” hivatkozást a navigációs menübe, különösen a „Véletlenszerű oldal” lehetőség alatt. A MediaWiki:Sidebar módosításokhoz való használata megköveteli a szintaxis és a Timeless témán belüli viselkedésének alapos megértését.

Ha elakad vagy problémákba ütközik, ne aggódjon! Ennek a bemutatónak a végére nemcsak a változtatás végrehajtásának módját fogja tudni, hanem betekintést nyerhet a MediaWiki oldalsávjának működésébe is. Merüljünk el ebbe a gyakorlati fejlesztésbe. 🌟

Parancs Használati példa
$wgHooks['SkinBuildSidebar'][] Ez a parancs egy egyéni horgot regisztrál a MediaWikiben, amely lehetővé teszi az oldalsáv szerkezetének módosítását a megjelenítés során. Kifejezetten a navigációs menük dinamikus testreszabására vonatkozik.
$skin->$skin->msg() Lekéri a honosított üzeneteket vagy hivatkozásokat a MediaWikiben. Ebben az összefüggésben dinamikusan lekéri a „Nyomtatható verzió” funkció URL-jét a beépített nyelvi beállítások segítségével.
document.addEventListener('DOMContentLoaded') Biztosítja, hogy a JavaScript logika csak a DOM teljes betöltése után fusson le, ami kritikus fontosságú egy meglévő navigációs menü dinamikus módosításához.
document.createElement() Új HTML-elemeket hoz létre, mint például a li és a címkék, amelyek dinamikusan adódnak hozzá a navigációs menühöz a front-end megoldásban.
arrayHasKey Egységtesztekben használják annak ellenőrzésére, hogy egy adott kulcs létezik-e egy tömbben, biztosítva ezzel, hogy a „Nyomtatható verzió” opció megfelelően került hozzáadásra az oldalsáv szerkezetéhez.
if (!defined('MEDIAWIKI')) Gondoskodik arról, hogy a szkript a MediaWiki keretrendszeren belül legyen végrehajtva, megakadályozva a jogosulatlan vagy önálló végrehajtást.
$GLOBALS['wgHooks'] Hozzáfér a MediaWikin belüli globális hookokhoz, lehetővé téve a fejlesztők számára, hogy dinamikusan adják hozzá vagy módosítsák a funkciókat az alkalmazás életciklusának adott pontjain.
link.href Dinamikusan beállítja az újonnan létrehozott hiperhivatkozás URL-címét a JavaScriptben, és a nyomtatható verzió aktiválásához olyan lekérdezési paramétereket ad hozzá, mint a ?printable=yes.
SkinBuildSidebar Egy speciális MediaWiki hook, amely lehetővé teszi az oldalsáv elemeinek közvetlen manipulálását, így rendkívül fontos új hivatkozások vagy menüelemek hozzáadásához.
TestCase::createMock() Létrehoz egy álobjektumokat az egységteszthez, szimulálva a MediaWiki Skin osztályát az oldalsáv módosításainak érvényesítéséhez anélkül, hogy teljes MediaWiki példányra lenne szükség.

A MediaWiki navigációs menü testreszabása

A fent megadott szkriptek a MediaWiki navigációs menüjének fejlesztésére összpontosítanak azáltal, hogy hozzáadnak egy "Nyomtatható verzió" opciót a "Véletlenszerű oldal" link alatt. Ezt a módosítást a backend testreszabásával érheti el hoook segítségével, vagy előlapi szkriptek segítségével JavaScripttel. Például a PHP szkript kihasználja a tömb és a "SkinBuildSidebar" kampó egy új navigációs elem dinamikus beszúrásához. Ez a megközelítés biztosítja, hogy a kiegészítés zökkenőmentesen integrálódjon a meglévő oldalsáv-struktúrába, és alkalmazkodik a különböző felületekhez, például a Timeless témához. 🖥️

A frontend JavaScript-megoldás dinamikusabb alternatívát kínál, amely a DOM teljes betöltése után célozza meg a navigációs menüt. Olyan parancsok használatával, mint pl és az újonnan létrehozott listaelemek hozzáfűzése a navigációs menühöz, ez a módszer nem igényli a háttérkód módosítását. Például egy egyetemi wiki gyorsan telepítheti a „Nyomtatható verzió” funkciót a tananyagokhoz hozzáférő hallgatók számára, minimális fennakadást biztosítva az élő webhelyen. Ez a rugalmasság ideálissá teszi olyan helyzetekben, amikor a háttér-hozzáférés korlátozott vagy nem érhető el. 📄

A rendelkezésre álló szkriptek másik kulcsfontosságú szempontja a modularitásuk és a legjobb gyakorlatokra való összpontosítás. A PHP-szkript hibakezelést is tartalmaz annak biztosítására, hogy csak a MediaWiki keretrendszeren belül fusson. Hasonlóképpen, a JavaScript logika ellenőrzi a navigációs menü jelenlétét, mielőtt megpróbálná módosítani, csökkentve a futásidejű hibák kockázatát. Például egy vállalati wikiben a megbízhatóság biztosítása kulcsfontosságú, mivel az oldalsáv gyakran egy központi navigációs központ a projektdokumentumokhoz vagy jelentésekhez hozzáférő alkalmazottak számára.

Az egységtesztek kiegészítik a szkripteket azáltal, hogy ellenőrzik, hogy a „Nyomtatható verzió” hivatkozás megfelelően van-e hozzáadva a különböző forgatókönyvekben. A MediaWiki környezet álobjektumokkal történő szimulálásával ezek a tesztek biztosítják, hogy a megoldás különböző konfigurációkban működjön. Ez a tesztelési folyamat különösen értékes a több wikit kezelő fejlesztők számára, mivel védelmet nyújt a telepítési problémák ellen. Végső soron, legyen szó PHP backend hook-ról, frontend JavaScriptről vagy robusztus egységtesztelésről, a szkriptek sokoldalú módszereket kínálnak a MediaWiki navigáció optimális teljesítménnyel és megbízhatósággal történő javítására. 🌟

"Nyomtatható verzió" opció hozzáadása a MediaWiki Navigációhoz

Szerveroldali szkript a MediaWiki oldalsáv konfigurációjának PHP használatával történő módosításához.

//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
//

A MediaWiki oldalsáv konfigurációjának használata új hivatkozások hozzáadásához

Manuális módszer a MediaWiki:Sidebar oldal szerkesztésére a Timeless témában.

* 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.

Dinamikus front-end JavaScript megoldás

Kliensoldali szkript JavaScript használatával a „Nyomtatható verzió” opció dinamikus hozzáadásához.

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

Egységtesztek az oldalsáv módosításaihoz

A PHP Unit teszteli a "Nyomtatható verzió" integrációt a háttérben.

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.

A MediaWiki fejlesztése speciális testreszabásokkal

Egyéni funkciók hozzáadása egy MediaWiki-példányhoz túlmutat a navigációs menü egyszerű módosításán. Például az adminisztrátorok gyakran keresik a lehetőségeket a funkcionalitás bővítésére bizonyos felhasználói igényekhez, például exportálási lehetőségek integrálásával vagy az elrendezések felhasználói szerepkörök alapján történő testreszabásával. Ezek a fejlesztések, beleértve a „Nyomtatható verzió” hozzáadását, létfontosságúak a wikik dinamikusabbá és felhasználóbarátabbá tételéhez. Az új linkek integrálása a személyre szabható egy egyetemi portál vagy belső cégdokumentáció egyedi követelményeihez.

Az egyik terület, amelyet érdemes felfedezni, az újonnan hozzáadott menüopciók lokalizálása. Ha például gondoskodik arról, hogy a „Nyomtatható verzió” címke dinamikusan legyen lefordítva a felhasználó nyelvi preferenciái alapján, akkor az inkluzivitást növel. A MediaWiki beépített lokalizációs módszereinek használatával, mint pl , lehetővé teszi a fejlesztők számára, hogy testreszabásaikat a MediaWiki globális szabványaihoz igazítsák. Ez különösen hasznos a multinacionális szervezetekben, ahol az alkalmazottak vagy a közreműködők több nyelven is hozzáférnek a wikihez. 🌍

Egy másik fontos szempont a testreszabások és a kiválasztott MediaWiki-téma közötti kölcsönhatás. A például egyedi struktúrát használ, amely a kompatibilitás biztosítása érdekében minden változtatást alaposan tesztel. Például egy vizuálisan feltűnő navigációs elem, például a „Nyomtatható verzió” további CSS-módosításokat igényelhet, hogy megőrizze megjelenését az eszközökön. Ezek az árnyalt módosítások biztosítják, hogy a kezelőfelület intuitív és professzionális maradjon, függetlenül a felhasználó eszközétől vagy képernyőjének méretétől. 📱

  1. Hogyan szerkeszthetem a MediaWiki oldalsávot?
  2. Az oldalsávot a MediaWiki:Sidebar oldal módosításával szerkesztheti. Használjon olyan parancsokat, mint pl és új linkek meghatározásához.
  3. Mi az „Időtlen” téma, és hogyan befolyásolja a testreszabást?
  4. A Timeless téma egy modern MediaWiki felület, reszponzív dizájnnal. A testreszabások, például az oldalsáv módosításai további tesztelést igényelhetnek a helyes megjelenítés érdekében.
  5. Hozzá lehet adni lokalizációt az új oldalsáv opciókhoz?
  6. Igen, használhatod honosított címkék lekéréséhez a menüelemekhez, biztosítva a kompatibilitást a többnyelvű wikikkel.
  7. Hozzáadhatok új funkciókat a háttérkód módosítása nélkül?
  8. Igen, a frontend JavaScript megoldások, mint a használata lehetővé teszi hivatkozások vagy szolgáltatások dinamikus hozzáadását a háttérrendszer módosítása nélkül.
  9. Hogyan tesztelhetem az oldalsáv új funkcióit?
  10. PHP egységtesztekkel vagy olyan tesztelési keretrendszerrel, mint a PHPUnit, szimulálja az oldalsáv módosításait, hogy biztosítsa az elvárásoknak megfelelő működést.

A "Nyomtatható verzió" opció hozzáadása a MediaWiki navigációhoz nagyobb használhatóságot és rendszerezést tesz lehetővé a wikiben. Az itt részletezett megközelítésekkel, a PHP-szkripttől a JavaScriptig, a testreszabás minden rendszergazda számára elérhető és hatékony.

A lokalizáció és a téma-kompatibilitás előtérbe helyezésével a wiki megbízható forrássá válik a különböző közönségek számára. Ezek a fejlesztések nemcsak a funkcionalitást javítják, hanem felhasználóbarát élményt is biztosítanak, ami egy jól karbantartott és hozzáférhető platformot tükröz. 🌟

  1. Hivatalos MediaWiki dokumentáció az oldalsáv testreszabásáról: MediaWiki oldalsáv kézikönyv
  2. Közösségi beszélgetés és példák Timeless témakonfigurációkra: MediaWiki időtlen téma
  3. Példakép, amely a navigációs menü elrendezését illusztrálja: Példa a navigációs menüre
  4. PHP dokumentáció a horgokhoz és bővítményekhez: PHP kézikönyv