Rozšíření:DynamicPageList3

From mediawiki.org
This page is a translated version of the page Extension:DynamicPageList3 and the translation is 100% complete.
Základní informace k tomuto rozšíření MediaWiki
DynamicPageList3
Stav rozšíření: stabilní
Zavádění Značka , Funkce analyzátoru
Popis Vytváří seznamy jiných článků na základě jejich kategorie, jmenného prostoru, názvu, odkazů nebo použití šablony a zahrnování obsah nebo argumentů volání šablon těchto článků do vaší stránky.
Napsal(i) Universal Omega, Alexia E. Smith, Algorithmix, Dangerville, IlyaHaykinson, Theaitetos, Unendlich~dewiki
Nejnovější verze 3.5.2 (2023-01-14)
MediaWiki 1.39.0+
Změny v databázi Ano
Composer universal-omega/dynamic-page-list3
Licence GNU General Public License 3.0 nebo pozdější
Zdrojový kód
Příklad DPL:Manual - Gamepedia Help Wiki
  • $wgDplSettings
  • dpl_param_update_rules
  • dpl_param_delete_rules
Přeložte rozšíření DynamicPageList3
Toto je pokračování a rozvětvení Rozšíření:DynamicPageList (third-party) . Jedná se o plně přepracovanou objektově orientovanou kódovou základnu, výrazné zlepšení rychlosti kódu a databáze a je plně zpětně kompatibilní s předchozími verzemi.

Rozšíření DynamicPageList3 je nástroj pro vytváření zpráv pro MediaWiki, který uvádí členy kategorií a průniky s různými formáty a podrobnostmi. Úplnou dokumentaci naleznete v příručce.

Při vyvolání se základní sadou parametrů výběru DPL zobrazí seznam stránek v jedné nebo více kategoriích. Výběr může být také založen na faktorech, jako je autor, jmenný prostor, datum, vzor názvu, použití šablon nebo odkazy na jiné články. Výstup má různé formy, z nichž některé obsahují prvky vybraných článků.

Toto rozšíření je vyvoláno funkcí analyzátoru {{#dpl: .... }} nebo tagem analyzátoru ‎<DPL>. Implementaci určitých funkcí kompatibilních s Wikimedií lze vyvolat pomocí ‎<DynamicPageList>.

Složité vyhledávání může mít za následek výpočetně nákladné databázové dotazy. Ve výchozím nastavení je však veškerý výstup ukládán do mezipaměti po dobu jedné hodiny, aby se snížila potřeba opakovat dotaz při každém načtení stránky. Příručka DPL:Parameters: Other Parameters obsahuje informace o parametrech, které lze použít k deaktivaci mezipaměti a k umožnění okamžitých aktualizací.

Příručka a kompletní dokumentace
Dokumentace na Gamepedia Help Wiki
Zdrojový kód
Zdrojový kód na GitHubu
Chyby a požadavky na funkce na GitHubu
[1]
Licence
DynamicPageList3 je vydán pod GNU General Public License, verze 3.

Instalace

Konfigurace

Toto jsou konfigurační nastavení DPL3 spolu s jejich výchozími hodnotami.

Chcete-li je změnit, ujistěte se, že jsou definovány před přidáním rozšíření na wiki.

Ve verzi 3.0.4 byl název konfigurační proměnné změněn z $dplSettings na $wgDplSettings. To mělo usnadnit kompatibilitu se změnou registrace rozšíření MediaWiki 1.25.
Nastavení Výchozí Popis
$wgDplSettings['allowedNamespaces'] null Ve výchozím nastavení jsou při inicializaci DPL3 použity všechny existující jmenné prostory. Upravte toto nastavení pomocí pole konstant jmenného prostoru, abyste omezili DPL3 na práci pouze v těchto jmenných prostorech.
$wgDplSettings['allowUnlimitedCategories'] false Nastavte toto na true, chcete-li ignorovat 'maxCategoryCount' a povolit neomezený počet kategorií. Vezměte, prosím, na vědomí, že velké množství kategorií v dotazu může zpomalit nebo selhat servery.
$wgDplSettings['allowUnlimitedResults'] false Chcete-li ignorovat 'maxResultCount' a umožnit neomezené výsledky, nastavte toto na true. Upozorňujeme, že velké sady výsledků mohou způsobit pomalé nebo neúspěšné načítání stránek.
$wgDplSettings['alwaysCacheResults'] false Set this to true to ignore 'allowcachedresults' and always enable the parser cache.
$wgDplSettings['categoryStyleListCutoff'] 6 Maximální počet položek v seznamu kategorií před oříznutím.
$wgDplSettings['functionalRichness'] 3 Nastavte úroveň parametrů dostupných koncovým uživatelům.
$wgDplSettings['maxCategoryCount'] 4 Maximální počet kategorií, které lze v dotazech povolit.
$wgDplSettings['minCategoryCount'] 0 Minimální počet kategorií povolených v dotazech.
$wgDplSettings['maxResultCount'] 500 Maximální počet výsledků, které se mají vrátit z dotazu.
$wgDplSettings['recursiveTagParse'] false Proveďte rekurzivní analýzu značek na analyzátorových značkách ‎<dpl> a převádějte značky a funkce, jako jsou kouzelná slova jako {{PAGENAME}}. Je to podobné volání funkce analyzátoru {{#dpl}}, ale nemusí ve všech případech fungovat úplně stejně.
$wgDplSettings['runFromProtectedPagesOnly'] false Nastavte toto na true, abyste umožnili DPL3 spouštět pouze z chráněných stránek. To se doporučuje, pokud mají správci wiki problémy s uživateli se zlými úmysly vytvářejícími výpočetně náročné dotazy.
$wgDplSettings['handleSectionTag'] false Nastavte toto na true, aby DPL3 zpracovával ‎<section> tagy mimo tagy analyzátoru DPL.
$wgDplSettings['maxQueryTime'] 10000 Maximum allowed time for database queries in milliseconds.
$wgDplSettings['queryCacheTime'] 0 Configure query cache time. The query cache cannot be purged. Suggested value between 30 to 600.

DPL3 automaticky respektuje globální proměnnou $wgNonincludableNamespaces .

Zabrání tomu, aby se obsah uvedených jmenných prostorů objevil ve výstupu DPL3.

$wgDplSettings['maxResultCount'] je LIMIT na samotný SQL dotaz. Některé parametry dotazu DPL, jako je includematch, jsou však aplikovány po SQL dotazu, takže výsledky zde mohou být snadno zavádějící.

Funkční bohatství

DynamicPageList3 má mnoho funkcí, které se odemykají na základě maximální úrovně funkčnosti.

Některé mohou způsobit vysoké zatížení procesoru nebo databáze a měly by být používány střídmě.

  • $wgDplSettings['functionalRichness'] = 0 - ekvivalent DynamicPageList (průsečík) Wikimedie
  • $wgDplSettings['functionalRichness'] = 1 - přidává další parametry formátování
  • $wgDplSettings['functionalRichness'] = 2 - přidává funkce ekvivalentní výkonu pro šablony a odkazy na stránky
  • $wgDplSettings['functionalRichness'] = 3 - umožňuje vzácnější funkce vkládání stránek a dotazy na regulární výrazy
  • $wgDplSettings['functionalRichness'] = 4 - umožňuje exotické a potenciálně nebezpečné operace dávkové aktualizace a mazání; nedoporučuje se pro veřejné weby. Zahrnuje parametry ladění pro testování a vývoj.

Použití

Rozšířená funkčnost DPL

Rozšířené DPL se vyvolá pomocí funkce analyzátoru {{#dpl: .... }} nebo tagu rozšíření analyzátoru ‎<DPL>...‎</DPL>.

Viz Příručka - Obecné použití a syntaxe vyvolání a DPL:Parameters: Kritéria pro výběr stránky

Zpětná kompatibilita

Funkčnost kompatibilní s rozšířením DPL Wikimedia lze vyvolat na ‎<DynamicPageList>...‎</DynamicPageList>.

Další informace lze nalézt na příručce o kompatibilitě.


Filozofie použití a přehled

Za předpokladu, že existují články napsané o "zemích", tyto články budou mít obvykle tři společné věci:

  • Budou patřit do společné kategorie
  • Budou mít podobnou strukturu kapitol, tj. budou obsahovat odstavce s názvem 'Religion' (náboženství) nebo 'History' (historie).
  • Budou používat šablonu, která se používá k prezentaci vysoce strukturovaných krátkých datových položek ('Capital' (kapitál), 'Inhabitants' (obyvatelé), ..) vhodným způsobem (např. jako wikitable)

Vytvoření zprávy podle zemí

Pokud by bylo potřeba sestavit zprávu o tom, které země vyznávají určité náboženství, lze to snadno provést pomocí parametrů category a linksto.

{{#dpl:
category=countries
|linksto=Pastafarianism
}}

S DPL by bylo možné:

  • Vygenerujte seznam všech těchto článků (nebo náhodný vzorek)
  • Zobrazí metadata článků (oblíbenost, datum poslední aktualizace, ..)
  • Zobrazí jednu nebo více kapitol článků (přeloží obsah)
  • Zobrazí hodnoty parametrů, které jsou předány společné šabloně
  • Vhodně řadí články
  • Prezentujte výsledek v setříditelné tabulce (např.)
  • Generování výstupu s více sloupci

Jaké kroky jsou nutné?

Najděte články, které chcete uvést:

  • Vybírejte podle logické kombinace (A, NEBO, NE) kategorií
  • Zadejte rozsah počtu kategorií, do kterých musí být článek zařazen
  • Vybírejte pomocí logické kombinace (AND,OR,NOT) jmenných prostorů
  • Definujte vzor, který se musí shodovat s názvem článku
  • Pojmenujte stránku, na kterou článek musí nebo nesmí odkazovat
  • Pojmenujte šablonu, kterou článek musí nebo nesmí používat
  • Pojmenujte textový vzor, který se musí vyskytovat v externích odkazech ze stránky
  • Vyloučit nebo zahrnout přesměrování
  • Omezte vyhledávání na stabilní stránky nebo stránky kvality ("označené revize")
  • Pro výběr použijte další kritéria, jako je autor, datum poslední změny atd.
  • Definujte regulární výrazy tak, aby odpovídaly obsahu stránek, které chcete zahrnout

Řaďte výsledkovou listinu článků podle

  • Název článku
  • Velikost článku
  • Datum poslední změny
  • Poslední uživatel, který provedl úpravu

Definujte atributy, které chcete vidět

  • Název článku
  • Jmenný prostor článku
  • Velikost článku
  • Datum poslední změny
  • Datum posledního přístupu
  • Poslední uživatel, který provedl úpravu

Definujte obsah, který chcete zobrazit

  • Celý článek
  • Obsah určitých sekcí (označených nadpisy)
  • Textové části (definované speciálními značkami v článku)
  • Hodnoty volání šablon
  • K zobrazení výstupu použijte vlastní šablonu

Definujte výstupní formát

  • Zadejte záhlaví a zápatí pro výchozí výstup
  • Použít uspořádaný seznam, neuspořádaný seznam
  • Použijte tabulky
  • Formátujte pole tabulky jednotlivě použitím šablon na jejich obsah
  • Použijte seznam ve stylu kategorie
  • Truncate title or contents to a certain maximum length
  • Přidejte odkaz na článek nebo na jednu či více jeho částí

Úvahy

Výkon

Spouštění kódu a přístup k databázi DPL3 je obvykle rychlý pro typické vyhledávání kategorií a článků.

Použití volných shodných parametrů LIKE a REGEXP a/nebo vyžádání velkých datových sad však může mít za následek dlouhé doby přístupu k databázi.

Je také třeba vzít v úvahu čas analyzátoru.

Pokud například dotaz na výsledky obrázků přidáte do šablony, která je zobrazí, povede to k transformaci médií analyzátoru pro každý z nich.

To může rychle spotřebovat 2 MB RAM na transformaci média.

Version 3.4.0 introduces two new configuration options, $wgDplSettings['maxQueryTime'], which allows configuration the max execution length for queries, in milliseconds, and $wgDplSettings['queryCacheTime'], which allows configuration of query cache. It also adds support for PoolCounter to limit query concurrency.

Související odkazy

Další čtení

DPL3 umí mnohem více, než zde můžeme vysvětlit.

Kompletní příručka je k dispozici s úplnou dokumentací parametrů.