2009-06-26 14 views
11

Nie jestem do końca pewien, czy jest to możliwe w MediaWiki.Przekoduj kategorię w MediaWiki

Mam kilka kategorii, z których każda zawiera kilka stron. Jeśli otworzysz stronę kategorii, zobaczysz zawartość kategorii, która zwykle składa się z tych trzech części:

  1. Tekst zdefiniowany przez użytkownika (który można edytować za pomocą linku edycji).
  2. Wszystkie podkategorie dołączone do tej kategorii.
  3. Wszystkie strony przypisane do tej kategorii.

Moim celem jest stworzenie strony zawierającej co najmniej część 3 z kilku kategorii. Strona, która pokazuje mi wszystkie nazwy stron, które są połączone z wieloma wybranymi przeze mnie kategoriami, pogrupowane według kategorii.

Moje pierwsze podejście było użyć standardowego transclude składni MediaWiki:

 
    Category A contains these pages: 
    {{:Category:A}} 
    Category B contains these pages: 
    {{:Category:B}} 
    Category C contains these pages: 
    {{:Category:C}} 
    ... 

Niestety, to tylko dołączany część 1 z kategorii: tekst zdefiniowany przez użytkownika. Brak nazwy strony.

Moim drugim pomysłem było obejrzenie funkcji parsera. Być może istnieją pewne funkcje, które oferują wyliczanie poprzez strony kategorii. Ale nie znalazłem żadnego.

Być może jest to rozszerzenie MediaWiki tam ...

Czy jest sprytny sposób, aby zrealizować to?

Odpowiedz

3

Jeśli chcesz mieć większą kontrolę nad tym, jak są wyświetlane wyniki, może chcesz dać Semantic Mediawiki spróbować.

Składnia będzie wyglądać następująco:

Pages in Category A: 

{{#ask:[[Category:A]] 
|format=ul 
}} 

Nawet jeśli nie używasz właściwości semantyczne, można użyć mechanizmu zapytań do wyświetlania stron w oparciu o kategorie.

0

MediaWiki rozszerzenie Dynamiczny Lista Page (http://www.mediawiki.org/wiki/Extension:DynamicPageList_(third-party)) robi to z łatwością, produkujących list punktowanych artykułów w kategorii:

Pages in Category A: 
<dpl> 
category=A 
</dpl> 

bez ciężkiej rozwiązania jak Semantic MediaWiki. Po prostu zainstaluj i gotowe.

DPL ma bogatą składnię dla potężniejszych list dynamicznych. Na przykład, aby utworzyć listę numerowaną w 3 kolumnach:

<dpl> 
category=A 
mode=ordered 
columns=3 
</dpl> 
Powiązane problemy