Jak dodać „Wersję do druku” do menu nawigacyjnego MediaWiki

Sidebar

Udoskonalanie menu nawigacyjnego MediaWiki

Dostosowywanie menu nawigacyjnego MediaWiki może znacznie poprawić komfort użytkownika, umożliwiając korzystanie z bardziej dostępnych i funkcjonalnych narzędzi. Jeśli używasz MediaWiki 1.39 z motywem Timeless, dodanie określonych opcji, takich jak „Wersja do druku”, może stanowić wyzwanie. Zadanie to nie jest proste ze względu na unikalną konfigurację menu paska bocznego.

Jednym ze wspólnych celów administratorów jest zapewnienie użytkownikom szybkiego dostępu do stron, które można wydrukować. Ta funkcja jest niezbędna w środowiskach, w których często odwołuje się do materiałów offline lub drukowanych, takich jak akademickie lub korporacyjne wiki. Jednak wielu uważa, że ​​proces ten jest mniej intuicyjny, niż oczekiwano. 🖨️

W tym przewodniku dowiemy się, jak umieścić link „Wersja do druku” w menu nawigacyjnym, szczególnie w opcji „Losowa strona”. Używanie MediaWiki:Sidebar do modyfikacji wymaga solidnego zrozumienia jego składni i zachowania w motywie Timeless.

Jeśli utkniesz lub napotkasz problemy, nie martw się! Pod koniec tego przewodnika nie tylko będziesz wiedział, jak wdrożyć zmianę, ale także zyskasz wgląd w działanie paska bocznego MediaWiki. Zagłębmy się w to praktyczne ulepszenie. 🌟

Rozkaz Przykład użycia
$wgHooks['SkinBuildSidebar'][] To polecenie rejestruje niestandardowy hak w MediaWiki, który umożliwia modyfikowanie struktury paska bocznego podczas jego renderowania. Dotyczy to dynamicznego dostosowywania menu nawigacyjnych.
$skin->$skin->msg() Pobiera zlokalizowane wiadomości lub łącza w MediaWiki. W tym kontekście dynamicznie pobiera adres URL funkcji „Wersja do druku”, korzystając z wbudowanych ustawień językowych.
document.addEventListener('DOMContentLoaded') Zapewnia, że ​​logika JavaScript będzie wykonywana dopiero po pełnym załadowaniu modelu DOM, co ma kluczowe znaczenie w przypadku dynamicznego modyfikowania istniejącego menu nawigacyjnego.
document.createElement() Tworzy nowe elementy HTML, takie jak li i tagi, które są dynamicznie dodawane do menu nawigacyjnego w rozwiązaniu front-end.
arrayHasKey Używany w testach jednostkowych w celu sprawdzenia, czy określony klucz istnieje w tablicy, zapewniając, że opcja „Wersja do druku” została poprawnie dodana do struktury paska bocznego.
if (!defined('MEDIAWIKI')) Zapewnia wykonanie skryptu w środowisku MediaWiki, zapobiegając nieautoryzowanemu lub samodzielnemu wykonaniu.
$GLOBALS['wgHooks'] Dostęp do globalnych haków w MediaWiki, umożliwiając programistom dynamiczne dodawanie lub modyfikowanie funkcjonalności w określonych momentach cyklu życia aplikacji.
link.href Ustawia adres URL nowo utworzonego hiperłącza dynamicznie w JavaScript, dodając parametry zapytania, takie jak ?printable=yes, aby aktywować wersję do druku.
SkinBuildSidebar Specyficzny hak MediaWiki, który umożliwia bezpośrednią manipulację elementami paska bocznego, dzięki czemu jest bardzo przydatny przy dodawaniu nowych łączy lub elementów menu.
TestCase::createMock() Tworzy obiekty próbne do testów jednostkowych, symulując klasę Skin MediaWiki w celu sprawdzania modyfikacji paska bocznego bez konieczności posiadania pełnej instancji MediaWiki.

Jak dostosować menu nawigacyjne MediaWiki

Powyższe skrypty koncentrują się na ulepszaniu menu nawigacyjnego MediaWiki poprzez dodanie opcji „Wersja do druku” pod linkiem „Losowa strona”. Modyfikację tę można osiągnąć poprzez dostosowanie backendu za pomocą hooków lub skryptów frontendowych z JavaScript. Na przykład skrypt PHP wykorzystuje array i hak „SkinBuildSidebar”, aby dynamicznie wstawić nowy element nawigacyjny. Takie podejście gwarantuje, że dodatek bezproblemowo integruje się z istniejącą strukturą paska bocznego, dostosowując się do różnych skórek, takich jak motyw Ponadczasowy. 🖥️

Frontendowe rozwiązanie JavaScript zapewnia bardziej dynamiczną alternatywę, ukierunkowaną na menu nawigacyjne po pełnym załadowaniu modelu DOM. Używając poleceń takich jak i dołączanie nowo utworzonych elementów listy do menu nawigacji, metoda ta nie wymaga modyfikowania kodu zaplecza. Na przykład uniwersytecka wiki mogłaby szybko wdrożyć funkcję „Wersja do druku”, aby umożliwić studentom dostęp do materiałów szkoleniowych, zapewniając minimalne zakłócenia w działaniu witryny. Ta elastyczność sprawia, że ​​idealnie nadaje się do sytuacji, w których dostęp do zaplecza jest ograniczony lub niedostępny. 📄

Kolejnym kluczowym aspektem dostarczanych skryptów jest ich modułowość i skupienie się na najlepszych praktykach. Skrypt PHP zawiera obsługę błędów, aby mieć pewność, że działa tylko w środowisku MediaWiki. Podobnie logika JavaScript sprawdza obecność menu nawigacyjnego przed próbą jego modyfikacji, zmniejszając ryzyko błędów w czasie wykonywania. Na przykład na korporacyjnej wiki zapewnienie niezawodności ma kluczowe znaczenie, ponieważ pasek boczny jest często centralnym węzłem nawigacyjnym dla pracowników uzyskujących dostęp do dokumentów i raportów projektu.

Testy jednostkowe uzupełniają skrypty, sprawdzając, czy łącze „Wersja do druku” jest poprawnie dodane w różnych scenariuszach. Symulując środowisko MediaWiki przy użyciu próbnych obiektów, testy te zapewniają, że rozwiązanie działa w różnych konfiguracjach. Ten proces testowania jest szczególnie cenny dla programistów zarządzających wieloma wiki, ponieważ zapewnia zabezpieczenie przed problemami z wdrażaniem. Ostatecznie, czy to poprzez zaczepy backendu PHP, frontendowy JavaScript, czy solidne testy jednostkowe, skrypty oferują wszechstronne metody ulepszania nawigacji MediaWiki z optymalną wydajnością i niezawodnością. 🌟

Dodanie opcji „Wersja do druku” w nawigacji MediaWiki

Skrypt po stronie serwera do modyfikowania konfiguracji paska bocznego MediaWiki przy użyciu 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
//

Używanie konfiguracji paska bocznego MediaWiki do dodawania nowych łączy

Ręczna metoda edycji strony MediaWiki:Sidebar w motywie 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.

Dynamiczne rozwiązanie JavaScript typu front-end

Skrypt po stronie klienta wykorzystujący JavaScript do dynamicznego dodawania opcji „Wersja do druku”.

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

Testy jednostkowe modyfikacji paska bocznego

Testy jednostkowe PHP w celu sprawdzenia integracji „wersji do druku” z backendem.

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.

Ulepszanie MediaWiki za pomocą zaawansowanych dostosowań

Dodawanie niestandardowych funkcji do instancji MediaWiki może wykraczać poza proste modyfikacje menu nawigacyjnego. Na przykład administratorzy często szukają sposobów na ulepszenie funkcjonalności pod kątem konkretnych potrzeb użytkowników, takich jak integracja opcji eksportu lub dostosowywanie układów w oparciu o role użytkowników. Te ulepszenia, w tym dodanie „wersji do druku”, są niezbędne, aby uczynić wiki bardziej dynamicznymi i przyjaznymi dla użytkownika. Integracja nowych linków w można dostosować do unikalnych wymagań portalu uniwersyteckiego lub wewnętrznej dokumentacji firmy.

Obszarem wartym zbadania jest lokalizacja nowo dodanych opcji menu. Na przykład zapewnienie dynamicznego tłumaczenia etykiety „Wersja do druku” w oparciu o preferencje językowe użytkownika dodaje warstwę inkluzywności. Korzystanie z wbudowanych metod lokalizacji MediaWiki, takich jak , pozwala programistom dostosować swoje dostosowania do światowych standardów MediaWiki. Jest to szczególnie przydatne w organizacjach międzynarodowych, gdzie pracownicy lub współpracownicy uzyskują dostęp do wiki w wielu językach. 🌍

Kolejną ważną kwestią jest interakcja między dostosowaniami a wybranym motywem MediaWiki. The na przykład wykorzystuje unikalną strukturę, która wymaga dokładnego przetestowania wszelkich zmian, aby zapewnić kompatybilność. Na przykład wyróżniający się wizualnie element nawigacyjny, taki jak „Wersja do druku”, może wymagać dodatkowych dostosowań CSS, aby zachować swój wygląd na różnych urządzeniach. Te dopracowane modyfikacje zapewniają, że interfejs pozostaje intuicyjny i profesjonalny niezależnie od urządzenia użytkownika i rozmiaru ekranu. 📱

  1. Jak mogę edytować pasek boczny MediaWiki?
  2. Możesz edytować pasek boczny, modyfikując stronę MediaWiki:Pasek boczny. Użyj poleceń takich jak I w celu zdefiniowania nowych linków.
  3. Co to jest motyw „Ponadczasowy” i jaki ma wpływ na personalizację?
  4. Motyw Timeless to nowoczesna skórka MediaWiki o responsywnym wyglądzie. Dostosowania, takie jak zmiany paska bocznego, mogą wymagać dodatkowych testów, aby upewnić się, że wyświetlają się poprawnie.
  5. Czy można dodać lokalizację nowych opcji paska bocznego?
  6. Tak, możesz skorzystać aby pobrać zlokalizowane etykiety dla pozycji menu, zapewniając kompatybilność z wielojęzycznymi wiki.
  7. Czy mogę dodawać nowe funkcje bez modyfikowania kodu zaplecza?
  8. Tak, frontendowe rozwiązania JavaScript, takie jak using umożliwiają dynamiczne dodawanie linków lub funkcji bez zmian w zapleczu.
  9. Jak przetestować nowe funkcje paska bocznego?
  10. Korzystając z testów jednostkowych PHP lub środowiska testowego, takiego jak PHPUnit, symuluj modyfikacje paska bocznego, aby upewnić się, że działają zgodnie z oczekiwaniami.

Dodanie opcji „Wersja do druku” do nawigacji MediaWiki zwiększa użyteczność i organizację Twojej wiki. Dzięki opisanym tutaj podejściom, od skryptów PHP po JavaScript, dostosowywanie jest dostępne i skuteczne dla wszystkich administratorów.

Dzięki priorytetowemu traktowaniu lokalizacji i zgodności motywów Twoja wiki stanie się niezawodnym źródłem informacji dla różnorodnych odbiorców. Te ulepszenia nie tylko poprawiają funkcjonalność, ale także zapewniają przyjazną dla użytkownika obsługę, odzwierciedlającą dobrze utrzymaną i dostępną platformę. 🌟

  1. Oficjalna dokumentacja MediaWiki dotycząca dostosowywania paska bocznego: Podręcznik paska bocznego MediaWiki
  2. Dyskusja społeczności i przykłady konfiguracji motywów Timeless: Ponadczasowy motyw MediaWiki
  3. Przykładowy obraz ilustrujący układ menu nawigacji: Przykład menu nawigacji
  4. Dokumentacja PHP dla hooków i rozszerzeń: Podręcznik PHP