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

DynamicPageList (DPL) jest rozszerzeniem MediaWiki umożliwiającym tworzenie dynamicznych list stron korzystając z kryteriów takich jak przynależność do kategorii czy umieszczenie danego szablonu. Są one dynamiczne gdyż aktualizują się automatycznie wraz ze zmianami tych kryteriów na stronach.

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.

Ze względu na wysokie zapotrzebowanie na zasoby, DPL mocno obciąża wydajność serwera wpływając tym samym na wyraźnie wolniejsze ładowanie stron na wiki które z niego korzystają. Ponadto, ponieważ samo rozszerzenie 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”.

Korzyści z używania DPL[]

DPL

DPL jest bardzo efektywnym rozwiązaniem, gdyż przy użyciu małej ilości kodu można wygenerować długą i szczegółową listę

  • Tworzenie dynamicznych list stron bazowanych na parametrach takich jak: nazwy stron, przestrzenie nazw, obecność w kategoriach, dołączone szablony etc. Na przykład możesz utworzyć listę stron znajdujących się w dwóch kategoriach, ale nie w trzeciej.
  • Może umieszczać informacje o stronie takie jak ostatnia edycja, nick ostatniego edytora etc.
  • Może wyświetlać listy w formie tabeli, listy wypunktowanej lub numerowanej, w stylu kategorii oraz wewnątrz linii.
  • Umożliwia tworzenie list z niestandardowymi stylami oraz zawartym formatowaniem.

Jak umieścić DPL na stronie[]

Zapytanie DPL zaczyna się tagiem <DPL> a zamyka </DPL>. Wewnątrz tych tagów użytkownicy mogą umieścić szerokie spektrum parametrów, aby dopasować zapytanie do swoich potrzeb. Możesz również użyć {{#dpl: ...}} jako alternatywy .

Poniżej znajduje się bardzo prosty przykład zapytania DPL
<DPL>
    category = Postacie
</DPL>

Zapytanie to wyświetliłoby listę wszystkich stron w kategorii Postacie.

Może być to również dostosowywane...
<DPL>
    category    = Postacie
    notcategory = Postacie z 1 sezonu
    namespace   = Postać
    mode        = ordered
</DPL>

To zapytanie 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ć.

Efektywne używanie DPL[]

DynamicPageList można znacząco obciążyć serwer, wpływając niekorzystnie na wydajność strony. Poniższe wskazówki pomogą tego uniknąć.

Po pierwsze, zastanów się czy użycie DPL jest konieczne. Jeśli robisz to tylko dlatego że jest fajne to możesz zapewnić użytkownikom równie fajne rozszerzenia jak np. ankietę, kalendarz, osadzony kanał RSS lub video oraz wiele innych.

Po drugie, jeśli zdecydujesz że DPL jest niezbędnym narzędziem w tym co robisz dodaj wynikowi DPL dostęp do pamięci podręcznej!. Możesz zrobić to bardzo łatwo dodając poniższą linię do twojego zapytania:

allowcachedresults = true

Użyj innych narzędzi do tworzenia list[]

Tworzenie prostego drzewa kategorii
Aby stworzyć proste drzewo kategorii możesz użyć tagu <categorytree> (dokumentacja). 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 Losowej Selekcji.
Lista użytkowników
Użyj Listy użytkowników.
Zaawansowane użycie
W przypadku bardziej zaawansowanego wykorzystania, przed użyciem DPL sprawdź dostępność bardziej wyspecjalizowanego rozszerzenia. Na przykład zamiast tworzyć kalendarz w DPL-u użyj dostępnego rozszerzenia kalendarza. Jeśli nie jesteś pewien lub nie widzisz rozszerzenia którego potrzebujesz, skontaktuj się z pracownikiem lub napisz do jednego z helperów a z przyjemnością ci pomogą.

Rzeczy których należy się wystrzegać[]

  • Używanie funkcji randomcount; nie obsługuje pamięci podręcznej.
  • Wykorzystanie DPL w szablonach dostępnych na całej witrynie; wywoła to dziesiątki ukrytych zapytań i będzie to miało bardzo negatywny wpływ na wydajność.
  • Duże zapytania; nie wyświetlaj 500 wyników , jeśli 20 spełni zadanie.
  • Używanie więcej niż jednego lub dwóch zapytań na jednej stronie.

Czasami wymaga czyszczenia[]

Jeśli widzisz dziwny wynik zapytania DPL spróbuj umieścić ?action=purge (lub &action=purge jeśli ? jest już w użyciu) na końcu adresu URL strony. Może to rozwiązać problemy powstające w momencie gdy zapytanie jest aktualizowane, ale pamięć podręczna serwera się nie odświeża.

Typowe zastosowania dla 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ąca praca[]

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>

Więcej o DynamicPageList[]

Advertisement