Rozšíření:Page Forms/Navázání na formulář
Jak přivádíte uživatele k formulářům?
Standardním způsobem je volání funkce parseru #forminput
, která uživatelům zobrazí jediný vstup pro zadání názvu stránky. Pokud zadají takový název a kliknou na tlačítko, jsou odesláni do formuláře pro vytvoření dané stránky – pokud stránka s tímto názvem již neexistuje, v takovém případě jsou odesláni do formuláře pro úpravu existující stránky.
To je to, co je známé jako "dvoustupňový proces".
Důvodem prvního kroku, kdy uživatel nejprve zadá název stránky, je zajistit, aby uživatelé náhodně nepřepsali existující stránky.
Tento proces je tak standardní, že je zabudován do výchozích formulářů vytvořených stránkami Page Forms Special:CreateForm
a Special:CreateClass
. Každá stránka s definicí formuláře vytvořená pomocí Page Forms obsahuje v horní části volání #forminput
, takže uživatelé, kteří přejdou na stránku formuláře, mohou formulář automaticky začít používat.
Je však také možné, aby uživatelé vynechali první krok, zadání názvu stránky – to byste měli udělat, pokud formulář obsahuje vzorec pro nastavení názvu stránky na základě vstupu uživatele.
To je "jednokrokový proces" a používá funkci analyzátoru #formlink
místo #forminput
.
Formuláře dotazů, které používají Special:RunQuery
, mají vlastní metodu propojení pomocí funkce analyzátoru #queryformlink
.
Dvoufázový proces
Dvoustupňový proces, tedy standardní způsob, jak dostat uživatele k formulářům, se provádí pomocí funkce #forminput
parser.
Pomocí #forminput
Zde je syntaxe funkce analyzátoru #forminput
:
{{#forminput:form=|size=|default value=|button text=|query string=query string parameters|autocomplete on category=|autocomplete on namespace=|placeholder=|namespace selector=|super_page=|popup|reload|no autofocus|returnto=}}
Všechny argumenty jsou volitelné. Vysvětlení parametrů:
Parametr | Popis |
---|---|
form=
|
Název formuláře PF, který se má použít. Pokud je předán seznam formulářů oddělených čárkami, zobrazí se rozbalovací nabídka, která uživateli umožní vybrat si z těchto formulářů. Pokud tento parametr ponecháte prázdný, zobrazí se rozbalovací nabídka, která uživateli umožní vybrat ze všech existujících formulářů. |
size=
|
Velikost zadávaného textu. Tento parametr je bohužel ignorován, protože se ve Page Forms v5.0 změnilo používání OOUI. |
default value=
|
Počáteční hodnota vstupu |
button text=
|
Text, který se objeví na tlačítku "odeslat".
(Ve výchozím nastavení "Create or edit page" (vytvořit nebo upravit stránku).) |
query string=
|
Tuto možnost můžete použít k předání informací do formuláře. Tato informace má obecně formu název_šablony[název_pole]=hodnota. Měl by vypadat jako typický řetězec URL dotazu. Příklad by byl "query string=namespace=User&User[Is_employee]=yes". Kromě toho lze jakékoli hodnoty řetězce dotazu předat přímo jako parametry – takže výše uvedené hodnoty lze místo toho předat jako "|namespace=User|User[Is_employee]=yes". Řetězec dotazu lze také použít k automatickému přidání souhrnu úprav |
autocomplete on category=
|
Přidá ke vstupu automatické dokončování pomocí názvů všech stránek v konkrétní kategorii. |
autocomplete on namespace=
|
Přidá ke vstupu automatické doplňování pomocí názvů všech stránek v konkrétním jmenném prostoru (lze použít pouze jednu z těchto dvou). Pro hlavní jmenný prostor použijte Main
|
placeholder=
|
"Zástupný" text, který se objeví ve formulářovém vstupu předtím, než uživatel cokoli zadá. |
namespace selector=
|
Určuje, že před vstup pro název stránky by měl být umístěn rozevírací seznam, který uživateli umožní vybrat si ze sady možných jmenných prostorů pro tuto stránku. Hodnota pro tento parametr obsahuje sadu jmen jmenných prostorů oddělených čárkami. (Pro hlavní jmenný prostor stačí mít prázdnou hodnotu, například ,User,Project .)
|
popup
|
Otevře formulář ve vyskakovacím okně. |
no autofocus
|
Výchozí stav. Formulářový vstup získá autofokus, tj. kurzor se umístí do vstupu při načítání stránky. Tento parametr určuje, že se to nemá dělat. |
returnto=
|
Název stránky, na kterou bude uživatel přesměrován po odeslání formuláře, místo aby jednoduše přešel na uloženou stránku. |
reload
|
Pokud je zadáno "popup" nebo "returnto", způsobí, že stránka, na kterou uživatel skončí po odeslání formuláře, bude znovu načtena s "action=purge". |
super_page=
|
Tím se na začátek názvu stránky, který uživatel zadá, přidá "aktuální-název-stránky/". Viz #Přidávání podstránek |
Přidání stránek konkrétního jmenného prostoru
Formulář pro zadání stránky může ve výchozím nastavení vytvářet stránky v konkrétním jmenném prostoru (například 'User:'), aniž byste museli uživatele pokaždé do tohoto jmenného prostoru zadávat. Chcete-li to provést, přidejte "namespace=namespace-name" k parametru "query string=".
Příklad volání na #forminput
by byl:
{{#forminput:form=ExampleForm |query string=namespace=ExampleNamespace&={{PAGENAME}} }}
(Všimněte si, že pokud chcete použít SMW ve vlastním jmenném prostoru, musíte jmenný prostor přidat do $smwgNamespacesWithSemanticLinks.)
Přidávání podstránek
V MediaWiki můžete vytvořit podstránky přidáním lomítka do názvu stránky. Chcete-li, aby přidaná stránka byla automaticky podstránkou, můžete do řetězce dotazu přidat hodnotu "super_page=". Chcete-li z ní udělat podstránku aktuální stránky, můžete tuto hodnotu nastavit na "super_page={{FULLPAGENAME}}". Tím se na začátek názvu stránky, kterou uživatel zadá, přidá "current-page-name/".
Jednokrokový proces
Název stránky vytvořené formulářem můžete nastavit automaticky přidáním parametru page name
do tagu info
definice formuláře.
Existují dva typy "proměnných", které lze zahrnout do hodnoty tohoto parametru:
<template-name[field-name]>
- bude nahrazena hodnotou pro zadané pole název-pole v zadané šabloně název-šablony. Poznámka: Toto nebude fungovat, pokud je tagfor template
deklarován jakomultiple
.<unique number>
– ve výchozím nastavení je nahrazeno nejnižším číslem, pro které je vygenerovaný název stránky jedinečný. Normálně tato hodnota začíná jako prázdná, pak jde na 2, pak na 3 atd. Počáteční číslo pro tuto hodnotu však lze nastavit ručně přidáním parametrustart=
. Toto číslo musí být 0 nebo vyšší. Chcete-li například, aby číslo začínalo na 1 a stoupalo nahoru, měli byste značku nastavit na "<unique number;start=1>
". Můžete jej také nastavit jako náhodné šestimístné číslo přidáním parametru "random" (náhodné), takže značka bude vypadat jako "<unique number;random>
". Můžete také nastavit počet číslic na něco jiného než 6 přidáním čísla místo "náhodné", například "<unique number;random;4>
". Všimněte si, že parametry jsou ve všech těchto případech odděleny středníky.- Všimněte si, že hodnota
page name=
nemůže obsahovat znak#
, protože MediaWiki tento znak v názvech stránek nepovoluje.
- Všimněte si, že hodnota
Viz here pro příklad formuláře, který používá vzorec názvu stránky.
Jako další příklad si představte formulář pro ukládání pozoruhodných citátů.
Jeho tag {{{info}}}
by mohl mít parametr "page name=<Quote[jméno autora]> citát <unikátní číslo;start=1>".
To by zahrnovalo jméno autora v názvu každé stránky s citací a také číslo, které zaručí jedinečnost každé přidané stránky s názorem.
Uživatel by pak mohl přejít na URL "http://mywiki.com/Special:FormEdit/Quote"
a vyplnit formulář. Pokud nastaví autora na "Ernest Hemingway"
a žádné další uvozovky na wiki ho jako autora neuvádějí, pak stisknutí tlačítka "Uložit stránku" povede k vytvoření nové stránky s názvem "Ernest Hemingway quote 1"
.
Hodnota start
může mít úvodní nuly; například hodnota 001
by vedla ke stránkám, které měly hodnotu 001
, poté 002
atd.
Hodnota page name=
je analyzována analyzátorem MediaWiki, takže do hodnoty můžete přidat také funkce analyzátoru, předdefinované proměnné atd.
Všimněte si, že uživatelé musí být odesláni na stránku Special:FormEdit/název formuláře
, aby toto automatické nastavení stránky fungovalo. Pokud nějak skončí u volání #forminput
a budou vyzváni k zadání názvu stránky, toto jméno přepíše jakýkoli automatický název stránky.
Pomocí #formlink
Pokud chcete, můžete tento odkaz vygenerovat pomocí funkce analyzátoru #formlink
namísto přímého vytváření adresy URL. Tato funkce se nazývá:
{{#formlink:form=|link text=|link type=|query string=query string parameters|target=|tooltip=|popup|reload|new window|returnto=}}
Argumenty form=
, řetězec dotazu a popup
fungují v #formlink
podobně jako jejich ekvivalenty v #forminput
.
Vysvětlení dalších parametrů:
link text=
|
Funguje jako button text= (viz výše).
|
link type=
|
Nastaví zobrazení odkazu:
|
target=
|
Obvykle by se neměl používat, ale nastavuje "cílovou" stránku, která se má upravit, pokud chcete odkazovat na úpravu konkrétní stránky. |
tooltip=
|
Zobrazí nápovědu, která se zobrazí, pokud uživatel na odkaz umístí kurzor. |
popup
|
Zobrazí nápovědu, která se zobrazí, pokud uživatel na odkaz umístí kurzor. (Poznámka: Vyskakovací formuláře nemusí fungovat, pokud máte nainstalované rozšíření ConfirmEdit – uživatelé nemusí vidět CAPTCHA, kterou potřebují vyplnit.) |
new window
|
Otevře formulář v novém okně nebo kartě, v závislosti na prohlížeči. |
returnto=
|
Název stránky, na kterou bude uživatel přesměrován po odeslání formuláře, místo aby jednoduše přešel na uloženou stránku. |
reload
|
Pokud je zadáno "popup" nebo "returnto", způsobí, že stránka, na kterou uživatel skončí po odeslání formuláře, bude znovu načtena s 'action=purge '.
|
Příklad volání na #formlink
by byl:
{{#formlink:form=Quote|link text=Add a quote for this author|link type=button|query string=Quote[Author]={{PAGENAME}} }}
Tím se ze stránky prostřednictvím tlačítka odkáže na formulář pro přidání nabídky s polem "Autor" vyplněným názvem aktuální stránky.
Pokud existuje více hodnot, měly by být odděleny znakem &
.
{{#formlink:form=Quote|link text=Add a quote for this author|link type=button|query string=Quote[Author]={{PAGENAME}}&Quote[Editor]=The MIT Press }}
Všimněte si, že pokud jakákoli část vašeho řetězce dotazu – například název stránky nebo cokoli jiného – obsahuje znaky, jako jsou apostrofy ('
), ampersandy (&
) nebo znaménka plus (+
), budete muset tuto hodnotu zakódovat do adresy URL.
K tomu můžete použít funkci urlencode
z rozšíření ParserFunctions.
Výše uvedený příklad by se například musel změnit na: Quote[Author]={{urlencode:{{PAGENAME}}}}
.
Možná budete chtít, aby odkaz na formulář byl obrázek, nikoli text nebo tlačítko. Za to můžete zavolat něco jako:
{{#formlink:form=Quote|link text=[[File:edit.png|link=]]}}
Propojení s formuláři dotazů
Pomocí funkce analyzátoru #queryformlink
můžete odkazovat na formuláře dotazů, tj. formuláře spuštěné na stránce Special:RunQuery
x.
Volá se stejným způsobem jako #formlink
, kromě toho, že zde není parametr "target".
Pro úplnější vysvětlení viz Creating links to query forms .
Odkazující červené odkazy na formuláři
V MediaWiki se odkazy na neexistující stránky nazývají "červené odkazy", protože jsou obvykle zbarveny červeně. Ve výchozím nastavení tyto odkazy směřují na stránku pro přidání článku na wiki pomocí standardního rozhraní pro úpravy. Místo toho však můžete nastavit červené odkazy tak, aby odkazovaly přímo na formulář pro vytvoření dané stránky, pokud je správný formulář znám předem. Navíc můžete nechat všechny ostatní červené odkazy směřovat na pomocnou stránku, která uživateli umožňuje vybrat, který z formulářů wiki použít (pokud existuje).
Pomocí #formredlink
Chcete-li, aby konkrétní odkaz (buď samostatně nebo v rámci šablony) ukazoval na formulář, pokud stránka, na kterou odkazuje, neexistuje, použijte funkci analyzátoru #formredlink
.
Typické volání na #formredlink
půjde do šablony a bude vypadat takto:
{{#formredlink:target={{{PageNameParameter|}}}|form=FormName}}
Celková syntaxe #formredlink
je:
{{#formredlink:form=|link text=|existing page link text=|link type=|query string=query string parameters|target=|tooltip=|popup|reload|new window|create page}}
Tyto parametry jsou velmi podobné parametrům #formlink
(viz výše).
Má dva další parametry:
- "existing page link text=" - nastavuje text odkazu, když cílová stránka, na kterou odkazuje, již existuje (parametr "
link text=
" se projeví pouze v případě, že cíl neexistuje). - "create page" - způsobí, že stránky s červenými odkazy budou systémem automaticky vytvořeny. Je třeba poznamenat, že vytvoření každé stránky může chvíli trvat, protože vytvoření stránky se provádí prostřednictvím MediaWiki "jobs ", což může trvat od několika sekund až po několik hodin nebo více, v závislosti na délce fronta práce. Stránky vytvořené touto metodou budou spojeny s ID uživatele 1 (první uživatel vytvořený na wiki), pokud nenastavíte
$wgPageFormsAutoCreateUser
na jiné uživatelské jméno.
Mohou nastat situace, kdy si nejste jisti, jaký formulář odkazovaná stránka použije. Může to být jedna z mnoha možností.
Můžete jej nastavit tak, aby uživatel po kliknutí na červený odkaz získal další možnosti přidáním jednoho nebo více parametrů řetězce dotazu alt_form
k volání #formredlink, z nichž každý má své vlastní číslo.
Jako příklad viz tato stránka. Autor i zdroj jsou červeně propojeny, ale odkazy vás zavedou na formuláře pro přidání těchto dvou stránek (tyto formuláře prosím ve skutečnosti nevyplňujte a neodesílejte, protože by to zničilo příklad). Když se dostanete k formulářům pro každou stránku, můžete nahoře vidět, že existují alternativní formuláře, které můžete vybrat pro přidání každé stránky. To je umožněno následujícími dvěma voláními #formredlink v šabloně, kde jsou tyto odkazy definovány:
Pro zdroj:
{{#formredlink:target={{{source|}}}|alt_form[0]=Source|alt_form[1]=Magazine|alt_form[2]=Online magazine}}
Pro autora:
{{#arraymap:{{{author|}}}|,|xx|{{#set:Was written by=xx}}{{#formredlink:target=xx|form=Author|alt_form[0]=Editorial board}}}}
Na ukázkové stránce vytvoří volání "source" odkaz na Special:FormEdit/The_Denver_Post?alt_form[0]=Source&alt_form[1]=Magazine&alt_form[2]=Online magazine&redlink=1
.
Všimněte si, že není zadán žádný hlavní/výchozí formulář. Pouze alternativní formy.
Volání "author" je složitější, protože toto pole může obsahovat seznam hodnot.
#arraymap
se používá k volání na #formredlink
pro každou jednotlivou hodnotu. A také k uložení každé jednotlivé hodnoty pomocí vlastnosti SMW.
Všimněte si, že interní "proměnná" použitá pro toto volání #arraymap
je "xx", nikoli "x" - zde by mohlo být použito i "x", ale pokud by volání #formredlink
použilo svůj "link text=" nebo "existing link text=" parametry, ty by selhaly, protože obsahují písmeno "x". "xx" je zde bezpečnější.
Jmenné prostory spojené s formulářem
Pokud jste definovali jmenný prostor jako s výchozím formulářem , přejdou také červené odkazy, které vedou na stránku v tomto jmenném prostoru do správného formuláře 'přidat data', aniž by to vyžadovalo další práci.
Ukazující červené odkazy na "výběr formuláře"
U červených odkazů, které nejsou definovány #formredlink
a nesměřují na jmenný prostor spojený s formulářem, můžete mít každý takový odkaz směřovat na pomocnou stránku, která uživateli umožňuje vybrat, který z formulářů wiki použít k vytvoření této stránky – nebo formu vůbec nepoužít.
Tuto funkci můžete povolit jednoduše přidáním následujícího do LocalSettings.php
pod zahrnutím formulářů stránky:
$wgPageFormsLinkAllRedLinksToForms = true;
Příklad tohoto rozhraní si můžete prohlédnout kliknutím na červený odkaz zde (tuto stránku prosím nevytvářejte).
Předběžné načítání dat
Můžete chtít, aby formulář již obsahoval nějaká data, když na něj uživatel přejde. (Všimněte si, že to platí pouze pro přidávání nových dat nebo pro dotazy. Pro úpravu existující stránky neexistuje žádný způsob, jak nastavit obsah formuláře na něco jiného než aktuální obsah dané stránky.) Existují různé způsoby, jak to udělat:
- Zadejte "výchozí" hodnotu pro všechna pole, pro která chcete mít hodnotu ve formuláři.
- Zadejte stránku "preload" pro vstup "free text", čímž se do pole volného textu předem načte obsah dané stránky.
- Přidejte
preload=preload-page-name
k hodnotě řetězce dotazu ve volání 'forminput'. Tím se předběžně načte celý formulář s obsahem dané stránky. - Podobně můžete přidat hodnotu "preload=..." do řetězce dotazu pro adresu URL "FormStart" nebo "FormEdit".
- Přidejte
template-name[field-name]=field-value
k hodnotě řetězce dotazu ve volání 'forminput', abyste nastavili hodnotu pro konkrétní pole. Chcete-li předem načíst hodnoty pro více než jedno pole, použijte "&":template-name[field-name-1]=field-value-1&template-name[field-name-2]=field-value-2
- Chcete-li předem načíst hodnoty pro šablony s více instancemi, přidejte za název šablony číslo instance. Takže byste mohli mít něco jako
template-name[1][field-name]=field-value&template-name[2][field-name]=field-value
pro dva případy. - Podobně můžete do řetězce dotazu adresy URL pro 'FormStart' nebo 'FormEdit' přidat hodnotu pro konkrétní pole.
- Nakonec si můžete vytvořit své vlastní zpracování pomocí háčku 'sfEditFormPreloadText'. Pokud jiné rozšíření zavolá tento háček, může předem načíst data, jak chce. Funkce registrovaná s tímto háčkem by měla mít záhlaví jako
function-name(&$page_contents, $page_title, $form_title)
.
Předávání v "kontextu"
Volání #forminput nebo #formlink může obsahovat libovolné parametry řetězce dotazu, které pak může formulář použít k úpravě aspektů, jako je zobrazení, hodnoty automatického doplňování atd. To lze provést pomocí rozšíření UrlGetParameters , které poskytuje funkci analyzátoru #urlget, která dokáže číst příslušné parametry řetězce dotazu.
Řekněme například, že existuje formulář s názvem "Document", který obsahuje pole "Owner", které chcete automaticky doplňovat s různými názvy v závislosti na oddělení společnosti, pro které je formulář volán.
Volání #forminput
nebo #formlink
pro tento formulář by pak mohlo obsahovat parametr |query string=department=Finance
.
Pokud používáte rozšíření Cargo, značka pro toto pole ve formuláři by pak mohla vypadat takto:
{{{field|Owner|input type=combobox|cargo table=Employees|cargo field=_pageName|cargo where=Department='{{#urlget:department}}' }}}
Pokud používáte tento přístup, je pravděpodobně nejlepší nemít kartu "Upravit pomocí formuláře" pro stránky vytvořené pomocí tohoto formuláře; místo toho by každá stránka měla zobrazovat (prostřednictvím své šablony) sadu volání #formlink
pro úpravu stránky, jedno pro každou možnou hodnotu (v tomto případě každé oddělení).
Automatická úprava stránek
Pomocí #autoeditu
Pomocí funkce analyzátoru #autoedit
můžete vytvářet odkazy, které po kliknutí automaticky vytvoří nebo upraví stránky na pozadí s předem načtenou sadou hodnot.
Tato funkce se volá a zobrazuje velmi podobným způsobem jako #formlink
– rozdíl je v tom, že odkaz pouze provádí akci na pozadí, místo aby uživatele přivedl k formuláři.
Syntaxe pro #autoedit
je:
{{#autoedit:form=|target=|link text=|link type=|summary=|minor|tooltip=|query string=query string parameters|reload|confirm|confirm text=}}
Všechny tyto parametry fungují stejně jako v #formlink
, se čtyřmi výjimkami:
minor
- pokud je přidán do hovoru, označí všechny úpravy provedené pomocí tohoto odkazu jako drobné úpravy.reload
- pokud je přidán do hovoru, po kliknutí na odkaz znovu načte aktuální stránku.confirm
- pokud je přidán do hovoru, zobrazí se pro uživatele potvrzovací okno před provedením skutečné úpravy.confirm text=
- ifconfirm
was added, specifies the text (presumably, a question) that users will see before they agree to the edit.- Stejně jako u
#formlink
,link type
nastavuje typ zobrazení a může být nastaven na "link" nebo "button" ("tlačítko post" není možnost). Pro#formlink
je však chybějící hodnota pro "link type" stejná jako nastavení hodnoty na "link". Zatímco na#autoedit
jsou oba rozdílné. V#autoedit
chybějící hodnota pro "link type" zobrazí text jako text bez odkazu, zatímco nastavení "link type=link
" jej zobrazí jako odkaz.
Příklad
Řekněme například, že chcete vytvořit jednoduché schéma hlasování, které uživatelům umožní hlasovat mezi "Vanilla" (vanilkou), "Chocolate" (čokoládou) a "Strawberry" (jahodou).
Pro každou máte stránku a každá obsahuje šablonu nazvanou "Flavor" (příchuť) s polem nazvaným "Num votes" (počet hlasů) - toto pole zase nastavuje pole Cargo s názvem Num_votes
.
A existuje také formulář, nazývaný také "Flavor" (příchuť), na úpravu takových stránek.
Chcete-li vytvořit odkaz, který po kliknutí zvýší počet hlasů na stránce "Vanilla" o jeden, můžete na stránku zavolat následujícím způsobem:
{{#autoedit:form=Flavor|target=Vanilla|link text=Vote for Vanilla|link type=link|query string=Flavor[Num votes]={{#expr:{{#cargo_query:table=Flavors| field=Num_votes |no html}} + 1}}|summary=Adding vote {{#expr:{{#cargo_query:table=Flavors| field=Num_votes |no html}} + 1}}.}}
Úprava seznamu hodnot
Můžete přidat nebo odebrat hodnotu ze seznamu hodnot pro pole, která obsahují seznam hodnot (jako jsou pole upravitelná pomocí vstupních typů checkboxes
nebo tokens
).
Chcete-li do takového seznamu přidat hodnotu, místo volání jako template name[field name]=value
v řetězci dotazu použijte volání jako template name[field name]+=value
.
A k odstranění hodnoty použijte volání jako template name[field name]-=value
.
Bohužel tato funkce aktuálně funguje pouze pro pole, jejichž oddělovačem je čárka.
Pokud při přidávání hodnoty do seznamu tato hodnota již byla. Nebo když odeberete hodnotu, tato hodnota tam nebyla, toto volání nebude mít žádný účinek.
Úprava šablon pro více instancí
Pomocí #autoedit
můžete upravit existující nebo vytvořit nové instance šablony s více instancemi.
Chcete-li to provést, místo vložení řetězce dotazu něco jako template name[field name]=value
, vložte něco jako template name[instance number][field name]=value
, kde číslo instance je celé číslo, které je 0 nebo vyšší.
Pokud číslo instance odpovídá instanci, která již na stránce je, existující instance šablony bude upravena; pokud je vyšší, bude vytvořena nová instance s touto hodnotou pro toto pole.
Pro další jmenné prostory
Ve výchozím nastavení je funkce automatických úprav dostupná pouze pro kterýkoli z takzvaných 'jmenných prostorů obsahu', což je ve výchozím nastavení pouze hlavní jmenný prostor. To však lze změnit úpravou globální proměnné $wgPageFormsAutoeditNamespaces v LocalSettings.php. Chcete-li například, aby se automatické úpravy vztahovaly také na stránky v oboru názvů "User:", měli byste přidat následující řádek:
$wgPageFormsAutoeditNamespaces[] = NS_USER;
Pomocí #autoedit_rating
Další funkcí analyzátoru, která funguje podobně jako #autoedit, je #autoedit_rating
– ačkoli namísto zobrazení odkazu nebo tlačítka zobrazuje řadu hvězdiček ve stylu hodnocení; a počet hvězdiček, které uživatel vybere, je to, co se odešle k naplnění nebo aktualizaci cílové stránky.
Seznam povolených parametrů pro #autoedit_rating
:
form
- formulář, který se má použíttarget
- cílová stránka, která má být upravenarating field
- pole, které má být upraveno na cílové stránce. Jeho název by měl odpovídat syntaxitemplate-name[field-name]
num stars
- počet hvězdiček k zobrazení (výchozí je 5)allow half stars
- pokud je přidán do hovoru, umožňuje uživateli vybrat půlhvězdičkové hodnotystar width
- šířka každé hvězdy v pixelech (výchozí je 24)summary
- souhrn úprav pro každou takovou editaciminor
- pokud je přidán do hovoru, označí všechny úpravy provedené pomocí tohoto odkazu jako drobné úpravy.confirm
- pokud je přidán do hovoru, zobrazí se pro uživatele potvrzovací okno před provedením skutečné úpravy.
API
Funkce automatických úprav je k dispozici také prostřednictvím MediaWiki API jako akce pfautoedit
– to umožňuje externím skriptům a robotům snadno upravovat volání šablon na stránkách wiki.
Úplnou dokumentaci si můžete přečíst na této stránce.
Delaying reload
The parser functions #forminput, #formlink, #formredlink and #autoedit all allow a reload
parameter, to reload the page that holds this parser function after the other page is modified, usually so that any relevant queries on that page can be refreshed. (For all but #autoedit, the reload
parameter has to be paired with either returnto=
or popup
.) By default, the reload happens right after the change is made, which in some cases is too soon, before the underlying data has changed. If this is the case on your wiki, you can add the following line to LocalSettings.php, which introduces a slight delay before the reload, hopefully giving the data enough time to be modified first:
$wgPageFormsDelayReload = true;