Rozšíření:DynamicPageList (Wikimedia)

From mediawiki.org
This page is a translated version of the page Extension:DynamicPageList (Wikimedia) and the translation is 100% complete.
Základní informace k tomuto rozšíření MediaWiki
OOjs UI icon advanced-invert.svg
DynamicPageList
Stav rozšíření: stabilní
DynamicPageList extension example.PNG
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>
Public wikis using 915 (Ranked 278th)
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žce extensions/.
  • Následující kód přidejte na konec vašeho souboru LocalSettings.php :
    wfLoadExtension( 'intersection' );
    
  • Yes 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í