Rozšíření:DynamicPageList (Wikimedia)
![]() Stav rozšíření: stabilní |
|
---|---|
Zavádění | Tag , Funkce parseru |
Popis | Vytiskne seznam s odrážkami nejnovějších položek umístěných v kategorii nebo průsečík několika kategoriemi. |
Napsal(i) | IlyaHaykinson and Amgine |
Nejnovější verze | Continuous updates |
Zásady kompatibility | Vydání snímků následuje MediaWiki. Hlavní vývojová větev není zpětně kompatibilní. |
MediaWiki | 1.23+ |
PHP | 5.4+ |
Změny v databázi | nedělá |
Licence | GNU General Public License 2.0 nebo pozdější |
Zdrojový kód | |
Příklad |
|
<DynamicPageList> |
|
Používání veřejných wikin | 835 (Ranked 315th) |
Přeložte rozšíření DynamicPageList (Wikimedia) | |
Problémy | Otevřené úkoly · (Wikimedia) Nahlásit chybu |
- Toto rozšíření používá Wikimedie, nezaměňovat s Rozšíření:DynamicPageList (third-party) nebo Rozšíření:DynamicPageList3 .
Rozšíření DynamicPageList umožňuje uživatelům wiki vytvořit seznam stránek, které jsou uvedeny v sadě kategorií. Obecné informace viz m:Help:DPL.
Původ
Původně byl vyvinut pro Wikinews. V současnosti je nainstalován na většině jazykových projektů Wikinews (viz n:Wikinews:DynamicPageList), Meta, MediaWiki.org a několika dalších malých projektech. Nebude nainstalován na žádné další wiki Wikimedie kvůli problémům s výkonem.
Toto rozšíření bylo dříve známé jako DynamicPageList/old a později jako Intersection. Také by vás mohl zajímat DynamicPageList3 , který má více funkcí.
Instalace a nastavení
Instalace
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
intersection
ve vaší složceextensions/
. - Následující kód přidejte na konec vašeho souboru
LocalSettings.php
:wfLoadExtension( 'intersection' );
- Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Pro ty, kteří používají MediaWiki 1.27 a starší:
Výše uvedené instrukce se týkají instalace přes wfLoadExtension()
, což je novější způsob instalace rozšíření.
Pokud potřebujete toto rozšíření nainstalovat na starší verzi (MediaWiki 1.27 či starší), musíte místo wfLoadExtension( 'intersection' );
použít:
require_once "$IP/extensions/intersection/intersection.php";
Konfigurace
Rozšíření také podporuje několik konfiguračních proměnných. Normálně byste nechtěli změnit výchozí nastavení, ale pokud to uděláte, můžete je přidat do svého "LocalSettings.php" za řádek require_once. Zde jsou podporované konfigurační proměnné spolu s jejich výchozími hodnotami:
# Configuration variables. Warning: These use DLP instead of DPL
# for historical reasons (pretend Dynamic list of pages)
$wgDLPmaxCategories = 6; // Maximum number of categories to look for
$wgDLPMaxResultCount = 200; // Maximum number of results to allow
$wgDLPAllowUnlimitedResults = false; // Allow unlimited results
$wgDLPAllowUnlimitedCategories = false; // Allow unlimited categories
// How long to cache pages using DPL's in seconds. Default to 1 day. Set to
// false to use the normal amount of page caching (most efficient), Set to 0 to disable
// cache altogether (inefficient, but results will never be outdated)
$wgDLPMaxCacheTime = 60*60*24; // How long to cache pages in seconds
Použití
DynamicPageList lze použít se syntaxí podobnou XML v zobrazení úprav wiki. Parametry řídí seznam stránek, pořadí a režim zobrazení. Informace o jednotlivých parametrech naleznete v následujících částech. Například níže je pět nejstarších stránek na této wiki, které byly nedávno přesunuty na MediaWiki.org.
<DynamicPageList> category = Pages recently transferred from Meta count = 5 order = ascending addfirstcategorydate = true </DynamicPageList>
Příklad opravdu složitého DynamicPageList:
<DynamicPageList> category=foo count=20 namespace=file addfirstcategorydate=ymd imagewidth=70 galleryshowfilesize=yes galleryshowfilename=yes imagesperrow=7 gallerycaption=Galleries! ordermethod=sortkey order=ascending mode=gallery offset=12 </DynamicPageList>
Zobrazí seznam 12-ti až 31-ti stránek v prostoru názvů souborů, které jsou také v kategorii foo, zformátuje je do galerie obrázků s datem, kdy byly přidány do kategorie foo v titulku ve formátu rok měsíc den a obrázky mají šířku 70 pixelů
Výběr stránky
category
category uvádí kategorie, které se mají protínat. DynamicPageList zobrazí seznam stránek, které se nacházejí v každé uvedené kategorii. Minimální a maximální počet položek k seznamu je nastaven ve zdrojovém kódu rozšíření. V názvu kategorie můžete použít kouzelná slova jako {{CURRENTMONTHNAME}}.
Syntaxe je category = název kategorie
<DynamicPageList> category = Demo category = Demo 1 </DynamicPageList>
notcategory
notcategory omezuje seznam stránek na ty, které nejsou v konkrétní kategorii. V názvu kategorie můžete použít kouzelná slova jako {{CURRENTMONTHNAME}}.
<DynamicPageList> category = Demo notcategory = Demo 1 </DynamicPageList>
namespace
namespace omezuje seznam výše uvedených stránek na stránky v konkrétním jmenném prostoru, určeném jménem nebo číslem (viz Seznam výchozích jmenných prostorů). Jakýkoli neplatný název je ekvivalentní jmennému prostoru hlavního článku.
<DynamicPageList> category = Demo namespace = Help </DynamicPageList>
redirects
redirects určuje, zda zahrnout přesměrované stránky či nikoli. Hodnota může být exclude (výchozí, neuvádět přesměrování), include (uvádět přesměrování) nebo only (neuvádět stránky, které nejsou přesměrovány).
<DynamicPageList> category = Demo redirects = only </DynamicPageList>
stablepages
stablepages určuje, zda zahrnout stabilní (označené) stránky při použití Extension:FlaggedRevisions . Hodnota může být exclude (nevypisovat), include (vypsat stabilní a nestabilní - výchozí) nebo only (uvést pouze stabilní stránky). Aby fungoval, vyžaduje instalaci FlaggedRevs.
qualitypages
qualitypages určuje, zda se při použití Extension:FlaggedRevisions zahrnou stránky kvality (označené na 'nečisté' úrovni) či nikoli. Hodnota může být exclude (neuvádět), include (uvést kvalitu i nekvalitní) nebo only (uvést pouze kvalitní stránky).
Poznámka: Chování stránek kvality se oproti starším verzím změnilo. Ve starších verzích qualitypages=exclude automaticky vytvořené stablepages=pouze nastavit. To už neplatí.
count
count omezuje počet zobrazených výsledků. Ve výchozím nastavení se zobrazují stránky přidané do kategorie naposledy (viz objednávka). Všimněte si, že rozšíření neuvede více výsledků, než je maximum definované ve zdrojovém kódu rozšíření.
<DynamicPageList> category = Demo count = 2 </DynamicPageList>
offset
offset spustí seznam odjinud než z první stránky seznamu. To lze například použít s count k vytvoření rozvržení s více sloupci.
<DynamicPageList> category = Demo offset = 2 </DynamicPageList>
Demo sloupce
<table> <tr><th colspan="3"> recent articles in [[:category:Demo|:category:Demo]]</th></tr> <tr><td> <DynamicPageList> category = Demo count=5 </DynamicPageList> </td> <td> <DynamicPageList> category = Demo offset = 5 count= 5 </DynamicPageList> </td> <td> <DynamicPageList> category = Demo offset = 10 count=5 </DynamicPageList> </td></tr></table>
Zobrazené podrobnosti
shownamespace
shownamespace zobrazuje jmenný prostor v názvech stránek.
Hodnota může být true
(výchozí, zobrazit v názvu: Help:Contents ) nebo false
(nezobrazit v názvu: Contents ).
<DynamicPageList> category = Demo shownamespace = false </DynamicPageList>
addfirstcategorydate
addfirstcategorydate zobrazuje datum přidání každého článku do kategorie. Hodnota může být true (zobrazit datum), false (výchozí, nezobrazovat datum) nebo specifikátor data (ymd, md, dm, dmy, mdy a ISO 8601). Pokud je zadáno mnoho kategorií, použije se první kategorie. Před názvy odkazovaných stránek je uvedeno datum ve formátu podle vašich místních preferencí zobrazení data na MediaWiki.
<DynamicPageList> category = Demo addfirstcategorydate = true </DynamicPageList>
mode
mode určuje formát seznamu. Hodnota může být:
- unordered — seznam s odrážkami
- ordered — číslovaný seznam
- none — jednoduché odkazy se zalomením řádků
- gallery — galerie obrázků, například
<gallery>
- inline — čárkami oddělený seznam
unordered: <DynamicPageList> category = Demo mode = unordered </DynamicPageList> nařízené: <DynamicPageList> category = Demo mode = ordered </DynamicPageList> obyčejné odkazy: <DynamicPageList> category = Demo mode = none </DynamicPageList> inline: <DynamicPageList> category = Demo mode = inline </DynamicPageList>
mode=gallery
Gallery je speciální režim, kde výstupem je galerie obrázků. Je-li nainstalován Rozšíření:PageImages , pak se pro nesouborové stránky použije obrázek stránky, pokud existuje. V opačném případě budou stránky jiného než souborového prostoru jmen pouze prázdným místem.
<DynamicPageList> category = Demo mode = gallery namespace= file </DynamicPageList>
Režim gallery také podporuje možnosti imagewidth (jak široké by měly být obrázky v galerii, možná budete muset nastavit také výšku obrázku, pokud toto používáte), imageheight (jak vysoký by měl být obrázek) galleryshowfilesize' ' (zobrazit velikost obrázku, jako na stránkách kategorií), galerieshowfilename (zobrazit název souboru jako na stránkách kategorie), imagesperrow (počet obrázků na řádek v galerii), gallerycaption (popis pro galerie).
Pokud se používá addfirstcategorydate, datum se připojí k titulku obrázku.
Poznámka, popis galerie v tuto chvíli nemůže přijímat odkazy. (ale může přijímat věci jako {{CURRENTMONTHNAME}})
Složitým příkladem galerie může být:
<DynamicPageList> count=20 namespace=file addfirstcategorydate=ymd imagewidth=70 galleryshowfilesize=yes galleryshowfilename=yes imagesperrow=7 gallerycaption=Look at my pretty gallery. mode=gallery shownamespace=false </DynamicPageList>
suppresserrors
supresserrors skrývá chyby. Hodnota může být true (skrýt chyby) nebo false (výchozí, zobrazit chyby).
true: <DynamicPageList> category = Dem suppresserrors = true </DynamicPageList> false: <DynamicPageList> category = Dem suppresserrors = false </DynamicPageList>
nofollow
nofollow nastavuje na odkazy rel="nofollow"
.
To zabrání spiderům dostat se na stránku prostřednictvím odkazu z DynamicPageList.
Obecně je to zbytečné, protože spideři buď budou moci indexovat stránku z jiných odkazů nebo vůbec ne kvůli robots.txt/$wgDefaultRobotPolicy .
Obecně byste tuto možnost neměli používat, pokud nevíte, co děláte, a nemáte dobrý důvod.
Primárním případem použití je, že na anglických Wikinews považují Zprávy Google za článek cokoli, na co odkazuje hlavní stránka.
<DynamicPageList> category = Demo nofollow = true </DynamicPageList>
googlehack
Toto je hack pro wikinews. Dříve Zprávy Google považovaly za zpravodajské články pouze články s čísly [1], takže se připojí ?dpl_id=<id článku> na konec URL adres v seznamu. Tuto možnost byste neměli používat, pokud k tomu nemáte dobrý důvod (nic tím však nepokazíte). Toto nahradí možnost showcurid, která již není podporována.
<DynamicPageList> category = Demo googlehack = true </DynamicPageList>
Nařízení
ordermethod
ordermethod určuje pořadí a datum k zobrazení. Hodnota může být:
- categoryadd — výchozí, podle data seřazené stránky zařadí do první kategorie
- lastedit — seřadí stránky podle data kdy byly naposledy upraveny
- length — podle délky článku
- created — podle data vytvoření článku
- categorysortkey — v podstatě v abecedním pořadí podle klíče řazení první kategorie
- sortkey — alias pro categorysortkey.
Nutno podotknout, že lastedit opravdu řadí podle posledního dotyku stránky.
V některých případech to není ekvivalentní poslední úpravě (například to zahrnuje změny oprávnění, vytvoření nebo odstranění propojených stránek a změnu obsažených šablon).
Pokud neurčíte kategorii, některé z těchto metod nařízení nebudou fungovat – konkrétně, categoryadd a categorysortkey přejde na created, pokud není klauzule category
.
<DynamicPageList> category = Demo addfirstcategorydate = true ordermethod = lastedit </DynamicPageList>
abecední příklad:
<DynamicPageList> category = Demo ordermethod = sortkey </DynamicPageList>
order
order určuje směr řazení. Hodnota může být descending (výchozí, od nejnovější po nejstarší) nebo ascending (od nejstarší po nejnovější).
<DynamicPageList> category = Demo order = ascending </DynamicPageList>
Šablony
Chcete-li použít uvnitř šablony a předat parametry, použít funkce parseru atd., použijte funkci {{#tag:
:
{{#tag:DynamicPageList| category = {{{1}}} count = {{#if: {{{2|}}} | 10 | 20 }} ordermethod = sortkey order = ascending }}
Samotná stránka šablony zobrazí chybovou zprávu, protože hodnota kategorie je na stránce šablony prázdná, pokud šablonu nevložíte mezi značky <includeonly>
. Například:
Error: Musíte zahrnout alespoň jednu kategorii nebo určit jmenný prostor!
Odvozená rozšíření
- Odvozená rozšíření: DPLforum výstupy ve stylu fóra. Extension:GoogleNewsSitemap je takto, ale vydává RSS kanál. Rozšíření:DynamicPageList (third-party) je upravená verze s více funkcemi, ale také náročnější na zdroje. Ani jedno z toho se na stránkách Wikimedie nepoužívá.
- Version 1.8.4 of Rozšíření:DynamicPageList (third-party) is fully downward compatible with the extension described here. So the way is open for a re-unification of the different development paths. This is not true any more for the current versions since version 2.01 of DynamicPageList (third-party) does not support
ordermethod=sortkey
. - Extension:DynamicPageListEngine - zpřístupňuje dynamické seznamy stránek modulům Scribunto .
- Extension:Multi-Category Search - poskytuje podobné funkce.
Toto rozšíření se používá na jednom nebo více Wikimediálních projektech. Pravděpodobně to znamená, že rozšíření je stabilní a funguje dostatečně dobře, aby jej mohly používat weby s tak vysokou návštěvností. Vyhledejte tento název rozšíření v konfiguračních souborech Wikimedie CommonSettings.php a InitialiseSettings.php, abyste viděli, kde je nainstalováno. Úplný seznam rozšíření nainstalovaných na konkrétní wiki lze vidět na stránce wiki Special:Version. |
Toto rozšíření je zahrnuto v následujících balíčcích a/nebo wiki farmách: Toto není autoritativní seznam. Některé wiki farmy/hostitelé mohou obsahovat tento extension, i když zde nejsou uvedeny. Pro potvrzení se vždy obraťte na své wiki farmy/hostitele nebo balíček. |