Rozszerzenie jest domyślnie wyłączone, ale może być dostępne na żądanie.

DynamicPageList (DPL) to potężne rozszerzenie MediaWiki, które pozwala automatycznie tworzyć listy stron na podstawie wybranych kryteriów – na przykład przynależności do kategorii lub użycie określonego szablonu. Listy te są „dynamiczne” tzn. aktualizują się same, gdy tylko zmienią się informacje na stronach, których dotyczą.

Na przykład, jeśli chcesz sprawdzić listę elfów będących jednocześnie mieszkańcami Novigradu w Wiedźminie 3 to DPL zrobi to bez problemu. Jeśli potrzebujesz odpowiedzi na pytanie jaka osoba postronna narodowości brytyjskiej została piratem w Assassin's Creed IV: Black Flag? DPL powinien pomóc ci znaleźć taką osobę szukając jej w Kategorii:Piraci oraz Kategorii:Brytyjczycy ale nie w Kategorii:Asasyni.

Ponieważ DPL korzysta z wielu parametrów i aplikacji niemal niemożliwe jest przekazanie całej wiedzy o nim na jednej stronie pomocy, toteż zachęcamy do zapoznania się z poszczególnymi sekcjami tego artykułu: „Efektywne używanie DPL” oraz „Więcej o DynamicPageList”.

Fandom korzysta z rozszerzenia DynamicPageList3. Pełny poradnik korzystania z DPL znajdziesz tutaj. (ang.)

Korzyści z używania DPL

DPL jest bardzo efektywnym rozwiązaniem, ponieważ niewielka ilość kodu może wygenerować długą i szczegółową listę informacji, której ręczne stworzenie zajęłoby dużo czasu. Rozszerzenie pozwala na:

  • tworzenie dynamicznych list stron na podstawie wielu parametrów, takich jak nazwy stron, przestrzenie nazw, obecność do kategorii, dołączone szablony i więcej. Na przykład możesz utworzyć stronę wyświetlającą wszystkie strony należące do dwóch kategorii, ale nie do trzeciej.
  • wyświetlenie informacji o stronie, takich jak data ostatniej edycji czy nazwa użytkownika ostatniego edytora.
  • prezentowanie listy w formie tabeli, listy wypunktowanej lub numerowanej, w stylu kategorii oraz wewnątrz linii.
  • tworzenie list z niestandardowymi stylami oraz zawartym formatowaniem.

Jak umieścić DPL na stronie

Zapytania DPL zaczynają się tagiem <dpl> a zamyka </dpl>. Można również użyć funkcji parsera {{#dpl: .... }}, jeśli konieczne jest rozszerzenie funkcji parsera w parametrach DPL przed wykonaniem zapytania. Tworzenie zapytań DPL, wymaga użycia edytora źródłowego.

Poniżej znajduje się bardzo prosty przykład zapytania DPL wyświetlającego wszystkie strony w kategorii Postacie:

<dpl>
    category = Postacie
</dpl>

Powyższe zapytanie może być dodatkowo rozszerzone — przykładowo, poniższa wersja wyświetla numerowaną listę stron w kategorii Postacie, ale nie w kategorii Postacie z 1 sezonu, znajdujących się jednocześnie w przestrzeni nazw Postać.

<dpl>
    category    = Postacie
    notcategory = Postacie z 1 sezonu
    namespace   = Postać
    mode        = ordered
</dpl>

Efektywne używanie DPL

DynamicPageList można znacząco obciążyć serwer, spowalniając działanie wiki, która intensywnie z niego korzysta. Poniższe wskazówki pomogą tego uniknąć.

Po pierwsze, zastanów się czy użycie DPL jest konieczne. Przykładowo, jeśli chcesz tylko uzyskać listę stron w kategorii — wystarczy link do strony kategorii. Jeśli używasz tej funkcji tylko dlatego, że jest fajna, możesz w tym samym miejscu umieścić coś równie fajnego, np. osadzić film.

Po drugie, upewnij się, czy DPL korzysta z pamięci podręcznej, by zmniejszyć obciążenie serwera. Z reguły jest ona włączona automatycznie — jeśli potrzebujesz zaktualizować wynik zapytania na stronie, odśwież ją.

Po trzecie, staraj się unikać nadmiernego stosowania:

  • funkcji używających randomcount – takie wyniki nie mogą być buforowane.
  • DPL w szablonach używanych globalnie w całej wiki – mogą powodować ukryte wywołania DPL na wielu stronach.
  • zbyt dużych zapytań – nie wyświetlaj 500 wyników, jeśli 20 w zupełności wystarczy.
  • więcej niż jednego lub dwóch zapytań DPL na stronę.

Używanie innych narzędzi do tworzenia list

Nie zawsze DPL jest najlepszym wyborem. W niektórych sytuacjach lepiej skorzystać z innych dostępnych narzędzi. Poniżej przedstawiono przykłady, kiedy warto rozważyć alternatywy:

Proste drzewo kategorii
Aby stworzyć proste drzewo kategorii możesz użyć tagu <categorytree>.
Na przykład, aby uzyskać listę artykułów w kategorii Społeczność użyj poniższego kodu:
<categorytree mode="pages" hideroot=on>Społeczność</categorytree>
Losowa treść
Użyj rozszerzenia RandomSelection.
Lista użytkowników
Użyj listy użytkowników.
Lista podstron
Użyj Specjalna:Strony według prefiksu.
Na przykład, aby wygenerować listę podstron Pomoc:Infoboksy, możesz użyć {{Specjalna:Strony według prefiksu|prefix=Pomoc:Infoboksy/|stripprefix=1}}, co spowoduje wyświetlenie stron z prefiksem „Pomoc:Infoboksy/”.
Lista stron w przestrzeni nazw
Użyj Specjalna:Strony według prefiksu.
Na przykład, aby wyświetlić listę wszystkich stron pomocy (stron w przestrzeni nazw „Pomoc”, użyj {{Specjalna:Strony według prefiksu|prefix=Pomoc:|stripprefix=1}} lub {{Specjalna:Strony według prefiksu|stripprefix=1|namespace=12}}.
Parametr hideredirects=1 może być użyty do usunięcia przekierowań z wyników (które w przeciwnym razie są wyświetlane kursywą)
Parametr stripprefix=1 usuwa prefiks lub nazwę przestrzeni nazw z wyników
Parametr namespace ogranicza wyniki do określonej przestrzeni nazw (identyfikatory przestrzeni nazw).
Fora w stylu wiki
Zobacz Pomoc:Forum w stylu wiki, aby zapoznać się ze składnią <forum></forum>. Wykorzystuje ona DPL w tle, ale z funkcjonalnością dostosowaną do tworzenia systemu forów opartego na stronach wiki.
Zaawansowane zastosowania
W przypadku bardziej zaawansowanych zastosowań przed użyciem DPL sprawdź, czy nie jest dostępne bardziej specjalistyczne rozszerzenie.
Jeśli nie masz pewności lub nie widzisz potrzebnego rozszerzenia, skontaktuj się z nami, a chętnie Ci pomożemy!

Typowe zastosowania DPL

Galerie

DPL może zostać wykorzystany do automatycznego tworzenia galerii.

<dpl>
    namespace          = Plik
    category           = NazwaKategorii
    format             = <gallery widths="150" position="center">,%PAGE%\n,,</gallery>
    allowcachedresults = true
</dpl>

Oczekujące zadania

Możesz wykorzystać DPL to tworzenia list artykułów wymagających poprawy.

<dpl>
    category           = Zalążki artykułów
    format             = ,#%PAGE%\n,,
    allowcachedresults = true
</dpl>

...lub do tworzenia galerii obrazów do skategoryzowania.

<dpl>
    namespace = Plik
    notcategory = Sezon 1
    notcategory = Sezon 2
    notcategory = Sezon 3
    notcategory = Sezon 4
    format = <gallery widths="150" position="center">,%PAGE%\n,,</gallery>
    allowcachedresults = true
</dpl>

Uwagi

  • Fandom nie obsługuje funkcji opartych na liczniku wyświetleń strony.
  • Zarówno pamięć podręczna DPL, jak i cache serwera strony muszą zostać odświeżone, aby zmiany były widoczne.
    Jeśli widzisz dziwny wynik zapytania DPL spróbuj dodać ?action=purge (lub &action=purge jeśli ? jest już w użyciu) na końcu adresu URL strony.
  • DPL ma limit 500 zwracanych wyników. Aby wyświetlić kolejne elementy, należy użyć parametru offset.

Zobacz też

Dalsze wsparcie

Szukasz dalszego wsparcia lub masz pytanie? Sprawdź poniższe linki, aby dowiedzieć się więcej.