• Zájemci
  • Zákazníci
  • Nápověda
  • Newsletter IS/STAG
  • Pravidla pro zasílání požadavků
  • Instalační příručka
  • Uživatelská příručka
  • Formulářový klient
  • Licenční čísla
  • Poplatky za studium
  • Pomocná spisová služba
  • Hromadná korespondence
  • Elektronické podepisování
  • Mobilní aplikace
  • Doktorandi
  • Návrh stipendií
  • Propojení s e-learningovými systémy
  • Animace a prezentace funkcí
  • Zápis strukturovaných textů
  • Funkce dle role uživatele
  • Hlášení o pojištění
  • Adresa v IS/STAG
  • Rodná čísla cizinců
  • Uživatelská podpora
  • Další odkazy
  • Čárové kódy ve výstupech
  • Kontroly studia
  • Úvazky (vytíženost) učitelů
  • Kontakt
  • Pravidla pro objednávky
  • Změny podle novely VŠ zákona
  • EWP
  • GDPR v IS/STAG
  • Plán vývoje
  • Soubory a studenti
  • XML schémata
  • Přístupnost
  • Přihlášení na seminář

Zápis strukturovaných textů v IS/STAG

ÚVOD

IS/STAG používá několik technologií pro tvorbu výstupů (reportů) - především JasperReports, dobíhající technologii Oracle Reports a pro několik reportů TeX. Zároveň existuje několik metod zadávání dat do IS/STAG - přes tlustého klienta (formulářová políčka), webové formuláře (čistá formulářová políčka či políčka s jednoduchým HTML editorem umožňujícím zadat například základní formátování) a další. Na několika místech v IS/STAG se tak setkávají zcela rozdílné světy - "svět TeXu" a "svět HTML". Narážejí zde na sebe dva jazyky, které v našem případě používáme pro značkování částí textu (například část tučně atd.) a je třeba řešit problém vzájemného převodu mezi HTML a TeX podobami.

Od ledna 2026 se konečně podařilo sjednotit řešení na úrovni celého IS/STAG tak, jak je popsáno v následujícím textu:

Řešení

Veškeré aplikace, v nichž je třeba, aby uživatelé vyplňovali strukturované/formátované texty (tedy texty s různými řezy písma, odrážkami či číslovanými seznamy atd - bude detailně popsáno níže), fungují od ledna 2026 na následujícím principu. Uživatelé pracují v HTML prostředí (portálová aplikace) a pro úpravy textu mají k dispozici JavaScriptovou komponentu "CK Editor", který umožňuje klasická textová pole obohatit o jednoduchý "editor ala Word" (několik ikonek nahoře pro tučné, kurzívu, odrážky a případné další námi podporované formátovací příkazy). V HTML prostředí proto aplikace pracuje s HTML formátovacími příkazy a zároveň jsou zadaná data v databázi IS/STAG uložena ve formě HTML.

  • Na webu se edituje HTML podoba, byla zvolena malá množina používaných formátovacích znaků, které jsou podporovány dálě napříč celou aplikací a pro něž funguje HTML editor
  • Při ukládání do databáze se HTML uloží tak, jak je. Speciální či UTF-8 znaky (veškeré HTML entity a znaky, které nejde uložit do databáze s kódováním ISO-8859-2) jsou zapsány textově jako HTML entity, tedy například znak "řecké alfa α" s UTF kódem U+03B1 je uložen jako α
    • Aplikace při ukládání textu kontroluje správnost zadaného HTML a případné nepodporované HTML tagy (či nepodporované atributy) odstraňuje.
  • Při vytváření reportu nad danými daty záleží na použitém reportovacím nástroji a náš reportovací modul data příslušně konvertuje:
    • Je-li použita technologie JasperReports, jsou konverze minimální - ona jednoduché HTML podporuje a proto dochází pouze k několika "technickým" změnám. Report samozřčjmě musí být na daném místě na HTML připraven, nicméně to není nijak složité.
    • Je-li použita technologie TeX, jsou konverze výraznější - pro podporovanou množinu HTML tagů jsou konverze do TeX zdrojového kódu kompletně připraveny, data se tedy při předáván íTeXu převedou na příslušné TeX sekvence a text se do PDF vytiskne tak, jak uživatel očekává. TeX je od ledna 2026 tedy pouze "výstupním / cílovým" formátem a nikde v IS/STAG se zdrojová data ve formě TeX kódu již nevyskytují.
  • Pří (případných) exportech dat do dalších systémů (například do knihoven, Theses a dalších), kde nejsou formátovací příkazy žádané, je HTML podoba konvertována do čistě textové podoby (HTML elementy jsou defakto odstraněny, HTML entity převedeny na UTF reprezentaci).
  • V desktopovém klientovi IS/STAG bohužel není k dispozici žádný použitelný HTML editor (jako zmíněný webový CK editor), máme pouze komponentu, která umí HTML zobrazit. Proto:
    • Pro zobrazení bez možnosti editace ve formulářích IS/STAG je k dispozici komponenta. Je například použíta v AN0030 na záložce "Zásady,Literatura"
    • Pokud je nutno nechat uživatele hodnotu i upravovat, jsou dvě možnosti. Jednak může prostě editovat HTML kód v běžném textovém políčku ve formuláři (nouzová varianta, případně varianta tam, kde se HTML vyskytuje sporadicky). Druhá varianta použitá například u VŠKP a AN0030 je použití speciální webové aplikace, která umožní úpravu části těch dat provádět na webu v portálu. Například z AN0030 odkaz na "Web editor" - viz popis v dokumentaci formuláře.

Nejčastější aplikace a databázové objekty, kde se HTML podoba textu takto vyskytuje:

  • ABN_DIPLOMOVE_PRACE - tabulka s VŠKP - mnoho sloupečků - názvy práce, zásady, literatura, anotace, průběh obhajoby atd.
  • ABN_PODKLADY_TEMA - tabulka s podklady/nabídkou VŠKP - sloupce se zásadami a literaturou.
  • ZNAMKY - Sloupec PRUBEH_ZKOUSKY, zadává se u státnicových předmětů.

Důvody odebrání podpory TeX příkazů přímo v datech IS/STAG

Důvodů k opuštění podpory zadávání přímo TeX příkazů v datech v IS/STAG bylo několik.

Hlavním důvodem byla stabilita a spolehlivost řešení. Při provozování reportů sázených systémem TeX totiž nelze jakkoliv řešit situace, kdy některé TeX konstrukce zadané uživatelem jsou neplatné/vadné/chybné atd. TeXu nelze říct "zde máš data a pokud jsou špatně, ignoruj to". Daný report se prostě nevygeneruje, TeX skončí s chybou, která je uživatelsky naprosto nečitelná a nelze z ní skoro nikdy zjistit, co se stalo.

Vzhledem k tomu, že drtivá většina uživatelů takové speciality nepotřebuje, způsobovala tato funkce nečekané a nechtěné problémy typickoy právě jim. Těm, kteří si rádi na webové stránce pouze zadají název své kvalifikační práce a maximálně chtějí mít něco tučně či mít text v několika odrážkách. Na to použijí existující HTML komponenty a chtějí, aby setext takto vysázel v TeXu. Možnost podpory TeX příkazů však způsobovala nechtěné komplikace (už jen zadání lomítka a nějakého textu znamenalo potenciaální TeX příkaz a nečekané komplikace).

Otevření možnosti zadávat TeX příkazy zároveň donutilo vývojáře řešit poměrně komplexně možnost tzv. "TeX injection". Bylo možné zneužít TeX příkazy k tomu, aby "nepřátelský student" šikovným zadáním TeX příkazů například do políčka se zásaddami VŠKP donutil náš server vrátit mu obsah nějakého souboru na serveru. A to i poměrně důležitého souboru... řešení bylo významně složitě, pro zákazníky ovšem neviditelné a těžko prodejné (ano, za bezpečnost se těžko získávají peníze. Navíc pokud funguje, není vidět). Toto "TeX injection" je s novým řešením již vyloučeno. Veškeré texty jsou již převedeny tak, že nemůžou TeX donutit brát něco jako příkaz.

Udržování reportů v systému TeX je zároveň významně složitější než v JasperReports - tento systém je již dávno taktéž špičkový, navíc se nejedná o sázecí systém (což je často výhoda) a nás již nic nenutí u některých reportů nepřejít z TeXu na Jasper (a časme například reportovací řešení zcela sjednotit). Nepředpokládáme to například u diploma supplementu, ale u reportů "Zadání VŠKP" či "Údaje o ˇVŠKP" si to dovedeme představit.

TeX jako takový využívala opravdu minimální skupina uživatelů, často pouze historicky, protože to šlo odjakživa. Vzhledem k převažujícím výhodám nového řešení jsme tuto možnost zrušili. Pokud někdo vyžaduje tvobu vysoce specializovaného reportu (např. obsahujícícho matematické vzorce a podobně), musí prostě počítat s tím, že mu informační systém studijní agendy tuto možnost nenabídne a musí si report vytvořit sám (ostatně jako v případě i jiných potřeb, funkcí a procesů, které prostě informační systém nepokrývá).

Popis podporovaných formátovacích příkazů

Jsou podporovány následující HTML příkazy. Rozdělujeme je na dvě skupiny, nejprve menší skupina pro texty, které nemají být dlouhé a strukturované, ale pouze krátké "online" texty (například název diplomové práce):

  • <b>, <strong> - tučný text
  • <i>, <em> - italic text
  • <u> - podtržený text
  • <sub> - dolní index
  • <sup> - horní index

U strukturovanějších delších textů navíc podporujeme toto:

  • <br> - odřádkování
  • <p> - odstavec
  • <ul> obsahující jednotlivé <li> - odrážkový seznam
  • <ol> obsahující jednotlivé <li> - číslovaný seznam

ZČU 2009-2026 CIV-SIS ZČU, Aktualizováno 17.01.2026                                                      IS/STAG | Kontakt | Mapa stránek | Přihlášení | Webmaster