MediaWiki:Gadget-citace.js/dokumentace
Základní informace
MediaWiki:Gadget-citace.js |
---|
|
Tento skript vytváří editační tlačítko Citace, které umožňuje bez hlubší znalosti šablony {{Citace}} generovat bibliografické záznamy, citace a reference s pomocí jednoduchého formuláře.
Spolupracuje s CSS stylem MediaWiki:Gadget-citace.css, který musí být vytvořen pro správnou funkci formulářů.
Texty
Proměnná baseTextCitace
obsahuje základní text, který se objevuje na každé stránce formuláře.
Pomocné funkce
Funkce getScrollXY()
Tato funkce je takřka kompletně převzatá ze stránky http://www.howtocreate.co.uk/tutorials/javascript/browserwindow. Je určená ke zjištění, na jaké pozici je právě v tuto chvíli narolované okno prohlížeče. Používá se pro pozicování a souřadnice vrací v jedné proměnné (array[x, y]).
Funkce zpracovatCitace()
Tato funkce upravuje vstup zadaný uživatelem a generuje z něj šablonu {{Citace}} s danými parametry. Do parametrů funkce se zadává odkaz na formulář, druhým parametrem je pak typ citace (kniha, článek, apod.).
Pokud byly parametry vyplňovány automaticky dle isbn z databáze a záznam je třeba do databáze přidat či upravit, volá se funkce opravZaznamVDatabazi().
Na konci zpracování je zavřen box s citačním formulářem a je vložen text citační šablony na místo pomocné sekvence znaků (--//--//--).
Funkce vlozitTextAreaSpletZnaku()
Funkce vkládá pomocnou sekvenci znaků do textového pole určeného jediným parametrem funkce (kam se vkládá ID pole). Tato sekvence je vložena buď na místo kurzoru, nebo – pakliže to prohlížeč nepodporuje – na konec textu v zadaném textovém poli.
Funkce vlozitTlacitkoCitace()
Funkce vkládá tlačítko Citace mezi editační tlačítka do příslušné lišty na konkrétní místo. Každou sekundu se kontroluje pozice až do té chvíle, kdy je tlačítko na svém místě.
Funkce classPovinneCitace()
V parametru této funkce jsou uvedeny všechny povinné parametry. Funkce pak přidá k daným vstupním polím CSS třídu, aby povinná pole byla adekvátně zvýrazněna.
Hlavní funkce
Funkce createCitationButton()
Funkce tvoří tlačítko do editační lišty a pomocí funkce vlozitTlacitkoCitace()
jej vkládá na své místo. Dále je vytvořena poloprůhledná vrstva překrývající zbývající obsah stránky a vrstva se samotným citačním formulářem.
Funkce closeCitationBox()
Funkce ruší citační box a zobrazuje článek.
Funkce createCitationFormRow()
Funkce tvoří řádek tabulky pro zadaný parametr šablony Citace.
Funkce používá tři parametry:
- "popis": udává popis políčka
- "parametr": udává parametr šablony Citace
- "typ": udává typ vstupu (text, checkbox, aj.)
Funkce createCitationInput()
Tato funkce centralizuje správu citačních parametrů. Po zadání žádaného parametru vrací celý řádek tabulky vytvořený s pomocí funkce createCitationFormRow()
.
Funkce createCitationForm()
Tato funkce tvoří úvodní stránku citačního formuláře s odkazy na jednotlivé typy citací.
Funkce createCitationTypeForm()
Tato funkce vytváří specifický formulář pro každý typ citace. Dále obsahuje informace o povinných param,etrech a obhospodařuje také animace některých prvků formuláře.
Funkce získávající data z jiných zdrojů
Údaje dle PMID
- využívá PHP skript lokalizovaný na https://www.wikiskripta.eu/extensions/citace/pmid.php s parametrem pmid zadaným metodou GET
- funkce zpracovatPMID() — z výše uvedeného skriptu pomocí AJAXu získá finální verzi šablony, uzavře citační box a vloží do editačního okna výslednou šablonu
Údaje dle ISBN
Využívá skripty isbn.php a isbn-uprav.php.
- funkce vyplnitDleISBN() — ze skriptu isbn.php získá parametry specifikované pomocí notace JSON, jednotlivé parametry vloží do políček, které jinak běžně vyplňuje uživatel
- funkce fieldChanged() — Volá se pokud, je uživatelem změněno nějaké políčko s citačním parametrem. Rozhodne, zdali se jedná o parametry z citace knižní publikace, které jsou pokryté databází, pokud ano, změní proměnnou zmenaPredvyplneneCitace na true, což pak slouží k rozhodování o tom, zdali se má volat funkce opravZaznamVDatabazi().
- funkce opravZaznamVDatabazi() — volá skript isbn-uprav.php se všemi danými parametry, čímž opraví záznam v databázi podle toho, jak uživatel změnil obsah políček v udělátku. Záznam v databázi se upraví při žádosti serveru Ajaxem.