- 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=1może być użyty do usunięcia przekierowań z wyników (które w przeciwnym razie są wyświetlane kursywą) - Parametr
stripprefix=1usuwa prefiks lub nazwę przestrzeni nazw z wyników - Parametr
namespaceogranicza wyniki do określonej przestrzeni nazw (identyfikatory przestrzeni nazw).
- Parametr
- 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=purgejeśli?jest już w użyciu) na końcu adresu URL strony.
- Jeśli widzisz dziwny wynik zapytania DPL spróbuj dodać
- DPL ma limit 500 zwracanych wyników. Aby wyświetlić kolejne elementy, należy użyć parametru
offset.
Zobacz też
- Strona rozszerzenia na MediaWiki.org.
- Poradnik DPL na Community Central (ang.)
- Oryginalna strona pomocy o DPL na Memory Alpha zawierająca przykłady użycia na Fandomie.
Dalsze wsparcie
Szukasz dalszego wsparcia lub masz pytanie? Sprawdź poniższe linki, aby dowiedzieć się więcej.
- Dowiedz się więcej, sprawdzając inne strony pomocy.
- Uzyskaj pomoc od innych użytkowników Fandomu w Dyskusjach na Centrum Społeczności.
- Skontaktuj się ze wsparciem Fandomu poprzez formularz kontaktowy.