$lang['tuto'] = "tutorials"; ?>$lang['tuto'] = "tutorials"; ?>$lang['tuto'] = "tutorials"; ?> Com afegir Versió imprimible al menú de navegació de

Com afegir "Versió imprimible" al menú de navegació de MediaWiki

Com afegir Versió imprimible al menú de navegació de MediaWiki
Com afegir Versió imprimible al menú de navegació de MediaWiki

Millora del menú de navegació de MediaWiki

Personalitzar el menú de navegació de MediaWiki pot millorar significativament l'experiència de l'usuari, permetent eines més accessibles i funcionals. Si feu servir MediaWiki 1.39 amb el tema Timeless, és possible que us resulti difícil afegir opcions específiques com la "Versió imprimible". Aquesta tasca no és senzilla a causa de les configuracions úniques del menú de la barra lateral.

Un objectiu comú entre els administradors és oferir als usuaris una manera ràpida d'accedir a les pàgines imprimibles. Aquesta característica és essencial per als entorns on sovint es fa referència a materials fora de línia o en paper, com ara wikis acadèmics o corporatius. Tanmateix, molts consideren que el procés és menys intuïtiu del que s'esperava. 🖨️

En aquesta guia, explorarem com incorporar l'enllaç "Versió imprimible" al menú de navegació, concretament a l'opció "Pàgina aleatòria". L'ús del MediaWiki:Sidebar per a modificacions requereix una comprensió sòlida de la seva sintaxi i comportament dins del tema Timeless.

Si estàs encallat o tens problemes, no et preocupis! Al final d'aquesta guia, no només sabreu com implementar el canvi, sinó que també obtindreu informació sobre com funciona la barra lateral de MediaWiki. Endinsem-nos en aquesta millora pràctica. 🌟

Comandament Exemple d'ús
$wgHooks['SkinBuildSidebar'][] Aquesta ordre registra un ganxo personalitzat a MediaWiki que permet modificar l'estructura de la barra lateral durant la seva representació. És específic per personalitzar els menús de navegació de manera dinàmica.
$skin->$skin->msg() Recupera missatges o enllaços localitzats a MediaWiki. En aquest context, obté de forma dinàmica l'URL de la funció "Versió imprimible" mitjançant la configuració d'idioma integrada.
document.addEventListener('DOMContentLoaded') Assegura que la lògica de JavaScript només s'executa després que el DOM estigui completament carregat, cosa que és fonamental per modificar dinàmicament un menú de navegació existent.
document.createElement() Crea nous elements HTML, com ara etiquetes li i a, que s'afegeixen al menú de navegació de manera dinàmica a la solució frontal.
arrayHasKey S'utilitza en proves unitàries per verificar si una clau concreta existeix en una matriu, assegurant que l'opció "Versió imprimible" s'ha afegit correctament a l'estructura de la barra lateral.
if (!defined('MEDIAWIKI')) Assegura que l'script s'executa dins del marc de MediaWiki, evitant l'execució no autoritzada o autònoma.
$GLOBALS['wgHooks'] Accedeix a ganxos globals dins de MediaWiki, que permet als desenvolupadors afegir o modificar funcionalitats de manera dinàmica en punts específics del cicle de vida de l'aplicació.
link.href Estableix l'URL d'un hiperenllaç de nova creació dinàmicament a JavaScript, afegint paràmetres de consulta com ?printable=yes per activar la versió imprimible.
SkinBuildSidebar Un ganxo específic de MediaWiki que permet la manipulació directa dels elements de la barra lateral, per la qual cosa és molt rellevant per afegir nous enllaços o elements de menú.
TestCase::createMock() Crea objectes simulats per a proves unitàries, simulant la classe Skin de MediaWiki per validar les modificacions de la barra lateral sense requerir una instància completa de MediaWiki.

Com personalitzar el menú de navegació de MediaWiki

Els scripts proporcionats anteriorment se centren en millorar el menú de navegació de MediaWiki afegint una opció "Versió imprimible" a sota de l'enllaç "Pàgina aleatòria". Aquesta modificació es pot aconseguir mitjançant la personalització del backend mitjançant ganxos o scripts d'interfície amb JavaScript. Per exemple, l'script PHP aprofita el $wgHooks matriu i el ganxo "SkinBuildSidebar" per inserir dinàmicament un nou element de navegació. Aquest enfocament garanteix que l'addició s'integra perfectament amb l'estructura de la barra lateral existent, adaptant-se a diferents aspectes com el tema Timeless. 🖥️

La solució JavaScript d'interfície ofereix una alternativa més dinàmica, orientada al menú de navegació després que el DOM s'hagi carregat completament. Mitjançant ordres com document.createElement i afegint elements de llista recentment creats al menú de navegació, aquest mètode no requereix modificar el codi de fons. Per exemple, un wiki universitari podria desplegar ràpidament la funció "Versió imprimible" per als estudiants que accedeixen als materials del curs, garantint una interrupció mínima al lloc en directe. Aquesta flexibilitat el fa ideal per a situacions en què l'accés al backend és limitat o no està disponible. 📄

Un altre aspecte clau dels scripts proporcionats és la seva modularitat i se centren en les millors pràctiques. L'script PHP inclou la gestió d'errors per assegurar-se que només s'executa dins del marc de MediaWiki. De la mateixa manera, la lògica de JavaScript valida la presència del menú de navegació abans d'intentar modificar-lo, reduint el risc d'errors d'execució. Per exemple, en una wiki corporativa, garantir la fiabilitat és crucial, ja que la barra lateral és sovint un centre de navegació central per als empleats que accedeixen als documents o informes del projecte.

Les proves unitàries complementen els scripts comprovant que l'enllaç "Versió imprimible" s'afegeix correctament en diferents escenaris. En simular l'entorn MediaWiki utilitzant objectes simulats, aquestes proves asseguren que la solució funcioni en diverses configuracions. Aquest procés de prova és especialment valuós per als desenvolupadors que gestionen diversos wikis, ja que proporciona una protecció contra problemes de desplegament. En última instància, ja sigui mitjançant ganxos de fons de PHP, JavaScript d'interfície o proves d'unitats robustes, els scripts ofereixen mètodes versàtils per millorar la navegació de MediaWiki amb un rendiment i fiabilitat òptims. 🌟

Afegir una opció "Versió imprimible" a MediaWiki Navigation

Script del costat del servidor per modificar la configuració de la barra lateral de MediaWiki mitjançant 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
?>

Ús de la configuració de la barra lateral de MediaWiki per afegir nous enllaços

Mètode manual per editar la pàgina MediaWiki:Sidebar al tema Timeless.

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

Solució JavaScript de front-end dinàmic

Script del costat del client que utilitza JavaScript per afegir dinàmicament l'opció "Versió imprimible".

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

Proves unitàries per a modificacions de la barra lateral

Proves d'unitat de PHP per validar la integració de la "Versió imprimible" al backend.

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.

Millora de MediaWiki amb personalitzacions avançades

Afegir funcions personalitzades a una instància de MediaWiki pot anar més enllà de les simples modificacions del menú de navegació. Per exemple, els administradors sovint busquen maneres de millorar la funcionalitat per a necessitats específiques de l'usuari, com ara integrar opcions d'exportació o personalitzar dissenys basats en els rols d'usuari. Aquestes millores, inclosa l'addició d'una "versió imprimible", són vitals per fer que les wikis siguin més dinàmiques i fàcils d'utilitzar. La integració de nous enllaços al Barra lateral de MediaWiki es pot adaptar per adaptar-se als requisits únics d'un portal universitari o de la documentació interna de l'empresa.

Una àrea que val la pena explorar és la localització de les opcions de menú recentment afegides. Per exemple, assegurar-se que l'etiqueta "Versió imprimible" es tradueix de forma dinàmica en funció de les preferències d'idioma de l'usuari afegeix una capa d'inclusió. Utilitzant els mètodes de localització integrats de MediaWiki, com ara $skin->msg(), permet als desenvolupadors alinear les seves personalitzacions amb els estàndards globals de MediaWiki. Això és especialment útil a les organitzacions multinacionals on els empleats o els col·laboradors accedeixen al wiki en diversos idiomes. 🌍

Una altra consideració important és la interacció entre les personalitzacions i el tema de MediaWiki seleccionat. El Tema atemporal, per exemple, utilitza una estructura única que requereix provar tots els canvis a fons per garantir la compatibilitat. Per exemple, un element de navegació visualment destacat, com ara "Versió imprimible", pot necessitar ajustos CSS addicionals per mantenir-ne l'aspecte en tots els dispositius. Aquestes modificacions matisades garanteixen que la interfície segueixi sent intuïtiva i professional independentment del dispositiu o la mida de la pantalla de l'usuari. 📱

Preguntes freqüents sobre la personalització de MediaWiki

  1. Com puc editar la barra lateral de MediaWiki?
  2. Podeu editar la barra lateral modificant la pàgina MediaWiki:Barra lateral. Utilitzeu ordres com * navigation i option|label per definir nous enllaços.
  3. Què és el tema "Timeless" i com afecta la personalització?
  4. El tema Timeless és un aspecte modern de MediaWiki amb un disseny sensible. Les personalitzacions com els canvis a la barra lateral poden requerir proves addicionals per garantir que es mostrin correctament.
  5. És possible afegir localització per a noves opcions de barra lateral?
  6. Sí, pots utilitzar $skin->msg() per obtenir etiquetes localitzades per als elements del vostre menú, garantint la compatibilitat amb wikis multilingües.
  7. Puc afegir funcions noves sense modificar el codi de fons?
  8. Sí, solucions de JavaScript frontal com utilitzar document.createElement() us permeten afegir enllaços o funcions de manera dinàmica sense canvis de backend.
  9. Com puc provar les noves funcions de la barra lateral?
  10. Utilitzant proves unitàries de PHP o un marc de proves com PHPUnit, simuleu les modificacions de la barra lateral per assegurar-vos que funcionin com s'esperava.

Refinant la vostra navegació MediaWiki

Afegir l'opció "Versió imprimible" a la navegació de MediaWiki aporta una major usabilitat i organització al vostre wiki. Amb els enfocaments detallats aquí, des de l'script PHP fins a JavaScript, la personalització és accessible i efectiva per a tots els administradors.

En prioritzar la localització i la compatibilitat de temes, el vostre wiki es converteix en un recurs fiable per a diversos públics. Aquestes millores no només milloren la funcionalitat, sinó que també proporcionen una experiència fàcil d'utilitzar, reflectint una plataforma accessible i ben cuidada. 🌟

Fonts i referències
  1. Documentació oficial de MediaWiki sobre la personalització de la barra lateral: Manual de la barra lateral de MediaWiki
  2. Debat de la comunitat i exemples de configuracions del tema Timeless: Tema atemporal de MediaWiki
  3. Imatge d'exemple que il·lustra la disposició del menú de navegació: Exemple de menú de navegació
  4. Documentació PHP per a ganxos i extensions: Manual PHP