Extension:Page Forms/Input types

From mediawiki.org
This page is a translated version of the page Extension:Page Forms/Input types and the translation is 100% complete.

Tato stránka se zabývá různými typy vstupů, které jsou k dispozici v rámci formulářů stránek, a parametry a další přizpůsobení, které lze pro ně nastavit.

Typy vstupů

text

Výchozí typ vstupu; odpovídá "textovému" vstupu HTML.

Speciální parametry:

size=velikost Určuje šířku vstupu ve znacích.
maxlength=maximální délka Určuje maximální povolenou délku vstupu.
placeholder=zástupný text Určuje text nápovědy, který se zobrazí ve vstupu, dokud na něj uživatel neklikne.
autocapitalize=hodnota parametr autocapitalize v odpovídající značce HTML na jakoukoli hodnotu nastavenou pro tento parametr; příklady zahrnují on, off, sentences atd.

textarea

Odpovídá HTML značce ‎<textarea>.

Speciální parametry:

rows=počet řádků Určuje počet řádků.
cols=počet sloupců Určuje počet sloupců.
maxlength=maximální délka Určuje maximální povolenou délku vstupu.
autogrow Nastaví textovou oblast tak, aby její výška "automaticky rostla", aby odpovídala výšce jejího obsahu, takže posuvník nebude potřeba.
editor=typ editoru Přidává do textové oblasti editor založený na JavaScriptu, aby úpravy jejího obsahu byly uživatelsky přívětivější. Podporovány jsou následující hodnoty:
  • wikieditor - používá rozšíření WikiEditor , které je nutné nainstalovat. Bohužel pouze jeden vstup ve formuláři může mít přiřazený WikiEditor, kvůli omezení v rozšíření WikiEditor. Pokud chcete do WikiEditoru přidat další custom toolbars , budete je muset přidat v JavaScriptu do ('#free_text').wikiEditor, stejně jako existují za ('#wpTextbox1').wikiEditor.
Všimněte si, že došlo ke změně kódu WikiEditor ve verzi, která odpovídá verzi MediaWiki 1.34, která tuto funkci narušila. Byl obnoven ve verzi 1.36 WikiEditoru s odpovídající změnou ve verzi 5.1 Page Forms. Pokud pro WikiEditor používáte verzi někde uprostřed a nechcete aktualizovat MediaWiki, můžete ručně použít potřebnou změnu v kódu, který najdete zde. Také byste měli upgradovat na verzi 5.1 nebo novější Page Forms, pokud používáte starší verze. Nebo můžete použít opravu Page Forms zde.
  • tinymce - používá rozšíření TinyMCE , které je nutné nainstalovat. Toto nefunguje se šablonami s více instancemi.
  • visualeditor - používá rozšíření VisualEditor , které je nutné nainstalovat. Další rozšíření, VEForAll , musí být také nainstalováno. Pokud chcete, aby se panel nástrojů zobrazoval v horní části pole úprav, nikoli ve spodní části (výchozí), musíte také přidat |class=toolbarOnTop
max height=maximální výška Pokud se používá VisualEditor, určuje maximální výšku (v pixelech) pro textovou oblast, protože VE používá autogrow. Výchozí hodnota je nastavena proměnnou $wgPageFormsVisualEditorMaxHeight, která je ve výchozím nastavení 400.
placeholder=zástupný text Určuje text nápovědy, který se zobrazí ve vstupu, dokud na něj uživatel neklikne.

text s automatickým doplňováním, textová oblast s automatickým doplňováním

Dříve to byly skutečné typy vstupů, ale od verze 5.0 byly aliasy pro "kombobox" nebo "tokeny" (v závislosti na tom, zda vstup obsahuje seznam hodnot nebo pouze jednu).

combobox

Combobox vstup

Typ vstupu "combobox" poskytuje rozhraní combo box: vstup, který funguje jako běžné pole automatického doplňování, ale má další ikonu šipky dolů, jako je rozbalovací nabídka, která uživateli umožňuje zobrazit všechny dostupné hodnoty najednou. Je implementován pomocí knihovny OOUI .

Speciální parametry:

size=velikost Určuje šířku vstupu ve znacích.
height="výška" Určuje výšku pole se seznamem v pixelech.
existing values only Zakáže libovolné hodnoty v poli.
placeholder=zástupný text Určuje text nápovědy, který se zobrazí ve vstupu, dokud na něj uživatel neklikne.

tokens

Vstup tokenů

Tento typ vstupu "tokenizuje" hodnoty v poli, tj. umístí kolem každé hodnoty blok, aby se z ní stala jedna jednotka namísto pouhého řetězce znaků. Tyto "tokeny"“ pak lze také přeskládat. Tento vstup je implementován pomocí JavaScriptové knihovny Select2.

Speciální parametry:

size=velikost Určuje šířku vstupu ve znacích.
max values=maximální hodnoty Určuje maximální počet povolených hodnot.
existing values only Zakáže libovolné hodnoty v poli.
placeholder=zástupný text Určuje text nápovědy, který se zobrazí ve vstupu, dokud na něj uživatel neklikne.

Ve výchozím nastavení se "tokeny" zobrazují jako jednořádkový vstup a poté se v případě potřeby vertikálně rozšíří, pokud jsou přidány další hodnoty. V některých případech můžete chtít, aby se tento vstup na začátku jevil vyšší než jeden řádek, aby bylo uživatelům jasnější, že se rozšíří. Chcete-li to provést pro jeden vstup, přidejte do značky pole parametr class, například "|class=ClassName", a poté do MediaWiki:Common.css přidejte něco jako následující:

.ClassName, .ClassName .select2-choices {
        min-height:60px;
}

Pokud chcete, aby to platilo pro všechny vstupy "tokenů" na wiki, přidejte místo toho do MediaWiki:Common.css něco takového:

#pfForm .select2-container-multi .select2-choices {
        min-height: 60px;
}

radiobutton

Vstup "radiobutton" odpovídá HTML vstupu "radio". Zobrazuje sadu hodnot, ze kterých si uživatel může vybrat pouze jednu.

Ve výchozím nastavení je první hodnota přepínacího tlačítka "None" (žádné), což uživateli umožňuje vybrat prázdnou hodnotu. Chcete-li zabránit zobrazení "None", musíte pole nastavit jako "povinné" (mandatory) a také nastavit jednu z povolených hodnot jako hodnotu "default=" (výchozí).

dropdown

Vstup "dropdown" (rozbalovací) odpovídá HTML značce <select>. Zobrazuje rozbalovací seznam hodnot, z nichž si uživatel může vybrat pouze jednu.

checkboxes

Vstup "checkboxes" (zaškrtávací políčka) zobrazuje zaškrtávací políčka, která umožňují uživateli vybrat libovolný počet hodnot. Pokud je zaškrtávacích políček více než určitý počet, nad sadou zaškrtávacích políček se automaticky zobrazí odkazy"Select all" (vybrat vše) a "Select none" (nevybrat žádné), což uživatelům umožní automaticky zaškrtnout všechna nebo žádná z nich. Toto číslo je diktováno proměnnou $wgPageFormsCheckboxesSelectAllMinimum, která je ve výchozím nastavení 10, i když ji lze změnit v LocalSettings.php.

Speciální parametry:

hide select all skrýt odkazy "Select all" (vybrat vše) a "Select none" (nevybrat nic) pro tento vstup bez ohledu na počet hodnot
show select all zobrazit odkazy "Select all" (vybrat vše) a "Select none" (nevybrat nic) pro tento vstup bez ohledu na počet hodnot

listbox

Vstup "listbox" odpovídá HTML značce <select> s přidaným atributem "multiple". Zobrazuje vertikální seznam možností, kde si uživatel může vybrat libovolný počet hodnot.

Speciální parametry:

size=velikost Určuje výšku seznamu podle počtu zobrazených řádků

tree

Typ vstupu "tree" (strom) umožňuje hierarchické zadávání ve stromovém stylu, kde všechny hodnoty mají vedle sebe buď přepínací tlačítka, nebo zaškrtávací políčka, v závislosti na tom, zda pole může obsahovat jednu nebo více položek. Hodnoty mohou pocházet buď ze stromu kategorií v rámci wiki, nebo mohou být nastaveny ručně v definici formuláře.

Jak tento vstup pozná, zda může obsahovat jednu nebo více hodnot, a měl by tedy zobrazovat přepínací tlačítka vs. zaškrtávací políčka? Kontroluje, zda je pole v šabloně definováno jako pole obsahující seznam hodnot (pomocí #arraymap) nebo ne. Tato kontrola však není dokonalá. Pokud stromový vstup zobrazuje přepínací tlačítka místo zaškrtávacích políček, stačí přidat parametr "|list" do značky pole v definici formuláře, abyste zjistili, že se jedná o seznam.

V závislosti na zdroji hodnot musíte zadat jeden z těchto dvou dalších parametrů:

  • top category= - nastaví název kategorie v horní části "stromu".
  • structure= - nastavuje celou stromovou strukturu. K nastavení úrovně hloubky by se měly používat odrážky ve stylu wikitextu.

Pokud použijete parametr "structure" (struktura), měl by vypadat nějak takto:

{{{field|Location|input type=tree|structure=*Universe
**Milky Way Galaxy
***Solar system
**Andromeda Galaxy
...etc.
}}}

Volitelně můžete také nastavit tyto parametry:

  • height= - nastavuje výšku pole, ve kterém se strom objeví, v pixelech.
  • width= - nastavuje šířku pole, ve kterém se strom objeví, v pixelech.
  • delimiter= - nastavuje oddělovač, kdy pole může obsahovat seznam hodnot. Výchozí hodnota je ','.
  • hideroot - skryje název nejvyšší kategorie.
  • depth= - nastavuje počet úrovní stromu, které jsou zobrazeny na začátku. Výchozí hodnota je 10.

Zde si můžete prohlédnout vzorový formulář, který používá tento typ vstupu.

Pro názvy kategorií

Pokud k zobrazení stromu kategorií používáte typ vstupu "strom", uvědomte si, že tento vstup vytiskne pouze názvy vybraných kategorií bez jmenného prostoru "Category:" před ním. Takže pokud chcete, aby se zobrazil i na stránce, šablona jej bude muset přidat.

Pokud pole určuje více kategorií a šablona k tomu používá #arraymap, mělo by volání #arraymap vypadat nějak takto:

{{#arraymap:{{{Categories|}}}|,|x|[[Category:x]] |<nowiki> </nowiki>}}

...jinými slovy, musíte zadat konečný paramet "delimiter"r (oddělovač) pro #arraymap a vytvořit z něj mezeru, prázdnou nebo něco podobného, ​​abyste se vyhnuli tisku čárek mezi značkami kategorií.

checkbox

Jediné zaškrtávací políčko používané pro booleovské hodnoty.

Speciální parametry:

label= specifikuje "label" pro toto zaškrtávací políčko, které by šlo do tagu <label>.

date

Tento vstup obsahuje tři samostatné položky pro rok, měsíc a den.

datetime

Vstup "datetime" je podobný vstupu "date", ale obsahuje další položky pro hodiny, minuty, sekundy a AM/PM.

Speciální parametry:

include timezone určuje, že by měla být zahrnuta také položka časového pásma.

year

"year" je jednoduchý textový vstup, který se používá k získání hodnoty pouze pro rok pro pole data.

datepicker

Vstup pro výběr data s otevřeným kalendářem

"datepicker" umožňuje uživateli vybrat si datum pomocí vyskakovacího kalendáře založeného na JavaScriptu.

Special parameters:

date format= nastaví vlastní formát data, který se používá pouze pro vstupní pole. Příkladem může být DD-MM-YYYY.
first date= nastavuje první datum, které může uživatel vybrat.
last date= nastavuje poslední datum, které může uživatel vybrat.

Počáteční den týdne (např. sobota, neděle nebo pondělí) je nastaven na základě jazyka wiki. To bohužel nelze nastavit nezávisle na jazyku. Pokud je vaše wiki v angličtině a chcete, aby týdny v kalendáři začínaly v pondělí místo v neděli (což je výchozí nastavení), můžete to udělat nastavením jazyka vaší wiki na "en-gb" místo "en".

datetimepicker

"datetimepicker" je typ vstupu založený na JavaScriptu velmi podobný "datepicker", ale obsahuje vyskakovací okna pro výběr data i času. Výchozí hodnota je rrrr/mm/dd hh:mm. Jeho sada parametrů zahrnuje všechny tyto "datepicker" a také následující:

mintime= minimální povolený čas
maxtime= maximální povolený čas
interval= interval (v minutách) mezi možnostmi zobrazenými uživateli

rating

Typ vstupu "rating" zobrazuje sadu hvězdiček, aby mohl uživatel zadat hodnocení.

Speciální parametry:

star width určuje šířku (a výšku) každé hvězdičky. Výchozí hodnota je 24 pixelů.
num stars určuje počet hvězdiček, které se mají zobrazit. Výchozí hodnota je 5.
allow half stars umožňují uživatelům vybrat půl hvězdičky. Výchozí hodnota je false. Nastavte na 'yes' (nebo jakoukoli jinou hodnotu), aby bylo true.

googlemaps, leaflet, openlayers

Typy vstupu "googlemaps", "leaflet" a "openlayers" vám umožňují zobrazit mapu pro získání hodnoty souřadnic pomocí služeb Google Maps, Leaflet nebo OpenLayers.

Pokud používáte vstup "googlemaps", možná budete muset získat Google Maps API klíč a poté jej nastavit na LocalSettings.php pomocí nastavení $wgPageFormsGoogleMapsKey, aby se vstup zobrazil.

Volitelně můžete také nastavit tyto parametry pro tyto typy vstupů:

height= nastavuje výšku mapy v pixelech.
width= nastavuje šířku mapy v pixelech.
K nastavení dimenze je potřeba dohromady height a width.
starting bounds= vezme pár souřadnic pro nastavení hranic zobrazené mapy. Tento parametr platí pouze v případě, že vstup nemá hodnotu. (Příklad hodnoty tohoto parametru: "-20,-15;50,55".)

Typ vstupu "leaflet" (leták) také umožňuje jeden další parametr:

image= nastaví zadaný obrázek (což musí být obrázek, který byl nahrán na wiki) jako pozadí mapy místo zeměpisné mapy.

Všechny mapové vstupy vám umožňují zadat adresu pro snadnější nalezení souřadnic. Pokud však formulář již obsahuje jedno nebo více polí pro zadání adresy, uživatel je možná bude muset zadat dvakrát – jednou pro skutečné uložení dat a podruhé pro nalezení souřadnic. Abyste se vyhnuli tomu, že by uživatelé museli dělat tuto dvojí práci, můžete pole adresy (polí) zadat své hodnoty přímo do mapy při lokalizaci bodu. Můžete to udělat pomocí parametru "feeds to map=" - hledejte "cesty do mapy" zde.

Všechny tyto formáty ve výchozím nastavení spoléhají na externí kód JavaScript. Můžete však nechat formát "openlayers" místo toho používat místní kód JavaScript, stačí nainstalovat rozšíření OpenLayers.

Zákazy

Všimněte si, že všechny tyto typy vstupů odesílají data vaší wiki (tj. data obsažená ve výsledcích dotazu) externím službám. Jsou jedinou částí kódu Page Forms, která odesílá data externě, kromě automatického doplňování na externích hodnotách, i když tato vyžaduje ke spuštění další konfiguraci. Pokud máte soukromou wiki a máte velké obavy z toho, aby se žádná data nedostala ven, možná budete chtít k LocalSettings.php přidat následující:

$wgPageFormsDisableOutsideServices = true;

To znemožní používání jakýchkoliv externích služeb stránkovými formuláři - což v tuto chvíli znamená zakázání těchto tří typů vstupu.

regexp

Typ vstupu "regexp" není skutečný typ vstupu, ale spíše schopnost zobrazit jiný vstup (nejčastěji "text") s dalším ověřením založeným na regulárních výrazech. Podívejte se na podrobnější vysvětlení tohoto typu vstupu a jeho parametrů.

Povolené vstupní typy pro datové typy

Každý definovaný datový typ při použití Cargo nebo Semantic MediaWiki má výchozí typ vstupu a případně také výchozí velikost vstupu. Některé datové typy mají navíc speciální zpracování, pokud pole obsahuje seznam hodnot s oddělovači, nikoli pouze jednu hodnotu.

Zde jsou výchozí hodnoty a další povolené typy vstupu pro každý typ dat pro jednotlivé hodnoty:

Typ dat Cargo Datový typ SMW Výchozí typ vstupu Výchozí velikost Další povolené typy vstupu
Page Page combobox 35 text, dropdown, textarea, tree
String N/A text 35 combobox, textarea
Text Text, Code textarea 5 x 30 text
URL URL text 100 textarea
Integer, Float Number text 10 textarea
Date, Start date, End date Date date datetime, year, datepicker
Datetime, Start datetime, End datetime N/A datetime datetimepicker, date, year
Boolean Boolean checkbox dropdown, radiobutton
Coordinates Geographic coordinate openlayers googlemaps, leaflet
Rating N/A rating
Enumeration (jakékoli pole Cargo se seznamem povolených hodnot) Enumeration (jakákoli vlastnost SMW s definovanými "povolenými hodnotami") dropdown radiobutton
Hierarchy (jakékoli pole Cargo s hierarchickou sadou povolených hodnot) N/A tree

A zde jsou výchozí a další povolené typy vstupu pro "oddělené seznamy" určitého datového typu:

Typ dat Cargo Datový typ SMW Výchozí typ vstupu Výchozí velikost Další povolené typy vstupu
Page Page tokens 100 text, textarea, tree, checkboxes
String Text text 100 textarea, tokens
Enumeration Enumeration checkboxes listbox
Hierarchy N/A tree



Nahrávání souborů

Pokud má pole ve formuláři obsahovat název nahraného souboru (řekněme obrázek), můžete uživatelům umožnit nahrát tento soubor přímo prostřednictvím formuláře. To se provádí jednoduše přidáním parametru "uploadable" do deklarace tohoto pole v definici formuláře. Tím se vedle tohoto pole ve formuláři přidá odkaz "Upload file" (nahrát soubor). Pokud uživatel klikne na tento odkaz, zobrazí se okno ve stylu "lightbox" (pomocí knihovny JavaScript FancyBox), které uživateli umožní nahrát soubor. Jakmile tak uživatel učiní, okno se zavře a pole bude obsahovat název nahraného souboru. Pokud je pole nakonfigurováno tak, aby obsahovalo seznam hodnot, bude nový název souboru připojen k tomu, co tam bylo předtím, Jinak název souboru přepíše jakékoli pole obsažené dříve.

Pamatujte, že parametr "uploadable" lze použít pouze v polích typu "text", "text s automatickým doplňováním", "combobox" nebo "tokens".

U polí, která lze nahrát, můžete také nastavit výchozí název souboru nahraných souborů nastavením parametru "default filename=" v definici pole. Hodnota tohoto parametru může zahrnovat funkce parseru, magická slova a podobně. Může také obsahovat proměnnou "<page name>", která je nahrazena názvem přidávané nebo upravované stránky. Přidání parametru "default filename=Image for <page name>" do definice pole, například pro stránku s názvem "Abc", by tedy nastavilo výchozí název jakéhokoli nahraného souboru na "Image for Abc". Všimněte si, že pokud chcete pouze zadat výchozí soubor, který se má použít, například "Imageneeded.png", postačí běžný parametr "default=Imageneeded.png".

Zde můžete vidět ukázku nahrávání souboru .

Upozorňujeme, že okno nahrávání nebude fungovat, pokud je $wgBreakFrames ve vašem souboru LocalSettings.php nastaveno na true.

Můžete také nastavit pole, do kterých lze nahrávat, tak, aby přímo používala vlastní nahrávání operačního systému namísto použití systému nahrávání MediaWiki – to dává uživateli méně možností, ale je to jednodušší proces a na mobilních zařízeních může představovat některé zajímavé možnosti, jako je nahrávání fotografií ihned po jejich pořízení. Chcete-li to provést, přidejte do souboru LocalSettings.php následující řádek:

$wgPageFormsSimpleUpload = true;

Speciální parametry pro pole, která lze nahrát, jsou:

  • uploadable - Určuje, že se jedná o pole, které lze nahrát.
  • image preview - Určuje, že pod polem ve formuláři má být umístěna miniatura nahraného obrázku.
  • default filename=filename - Určuje výchozí název souboru pro soubory nahrané pomocí tohoto pole.