Architektura » Historie » Revize 7
« Předchozí |
Revize 7/14
(rozdíl)
| Další »
Tomáš Pašek, 2021-05-23 16:21
Architektura aplikace¶
Ve výše přiloženém diagramu představuje každá "bublina" vlastní složku a logický celek. Jak je ze schématu patrné, uživatelům jsou přímo přístupné celé stránky z kořenového adresáře (changes.php, contacts.php, atd...). Tyto soubory využívají položek z view, jmenovitě to jsou položky header.html, menu.php, footer.html, style.css a pak příslušné položky z view/contents představující samotný obsah stránek. Aplikace byla strukturována do těchto modulů z důvodu snížení duplicit kódu a zjednodušení orientace případným správcům. Aplikace využívá pro responzivní zobrazení (aka správně zobrazení v různých rozlišení) bootsrap. Pro příjemnější vzhled aplikace využívá ikony font awesome.
view¶
fonts¶
Aplikace obsahuje dva volně dostupné fonty připojené globálně ve style.css přes definovací funkci @font-face. Font impacted je využit v hlavičce aplikace v položce header.html. Druhý font charis-sil je využit na veškerý zbylý text aplikace.
img¶
Veškeré obrázky aplikace jsou uloženy a načítány z této složky. V momentální verzi je v této složce obsaženo logo zču, ikona pro dropboxy(nejjednodušší sjednocení stylu ikonky) a dvojice gifů použitých v uživatelských příručkách, jež jsou součástí samotné aplikace.
js-scripts¶
V této složce jsou obsaženy hlavní javascriptové metody využívané aplikací (nicméně ne všechny). Některé javascriptové funkce byly zachovány v jejich původních místech, to se týký zejména funkcionalit ovládající modali a samotné volání ovladačů. Tyto "vyjímečné" scripty je možné najít přímo v segmentech tématicky týkajících se příslušné funkcionality.
Soubor convertors.js obsahuje utilky (ne vždy se jedná o metody, mnohdy jsou to pouze objekty nebo pole) pro převod kódů získaných z databáze do uživatelsky pochopitelného textu. Tento soubor je ideální prostudovat pro pochopení zkratek využívaných v aplikaci (většina z nich zavedena již z předchozí aplikace a databáze).
library¶
Aplikace využívá dvě knihovny pro přestylování a rozšírení funkcionality komponenty multiselectu. Komponenta vanillaSelect je využívána pro reprezentaci filteru manuscriptu v normálních částech aplikace (momentálně pouze v searchContent.php) a komponenta jQueryMulti je používána za obdobným účelem v jQuery generovaných modalech (momentálně pouze v editModal.html).
modals¶
Modaly aplikace jsou vytvářeny za využití jQuery a volají-li php script, je volání těchto scriptů děláno ručně přes FormData. Jinak řečeno v modalech není využívan tag form, důvodem toho je nutnost preprocessingu na klientu před předáním scriptům serveru. Modaly editModal.html a editUserModal.html jsou využívány nejenom pro editaci, ale i pro přidávání (prevence duplicity kódu), z tohoto důvodu je v těchto souborech rozlišován účel modalu (a tudíž i volaný script) podle titulku modalu. Tyto dva modaly rovněž řeší předvyplnění daty, aby nebylo nutné opět získávat data ze serveru přes dříve definovaná pole v view/contents/searchContent.php a view/contents/userContent.php. Do pole je přistupováno přes modalu předané pseudo-id (aka kolikátá položka v poli má být v modalu načtena.
contents¶
Soubory v této složce představují samotný obsah jednotlivých stránek. Příslušnost stránce je patrná z názvů, jež by měli odpovídat názvu stránek (viz obrázek). Soubory contactsContent.html, manualContent.html, userManualContent.html, indexContent.html a materialContent.html je jednoduchý, jedná se jenom o obyčejný text. Zbylé soubory obsahují i jednoduché js scripty pro dotažení dat do tabulek, nebo využívají již dříve zmíněné scripty ze složky view/js-scripts. Jelikož výsledky jsou stránkovány a filtovány pouze v searchContent.php, soubory view/js-scripts/paging.js a view/js-scripts/filterControl.js jsou využívány pouze tímto souborem.
controller¶
CreateChangeRequestController.php¶
Tento controller se volá pro vytváření záznamu změnového požadavku od uživatelů. V $_POST očekává 2 parametry a to: wordform_id (id slova), a message (zprávu od uživatele o navržené změně)
DeleteUserController.php¶
Tento controller vymaže vybraného uživatele z databáze. Vyžaduje 1 parametr v $_POST, a to userId (id uživatele pro smazání). Dále je nutné aby byl při volání tohoto controlleru uživatel přihlášen pod účtem s administrátorskými právy, jinak se nic nevykoná.
GetChangeRequests.php¶
Tento controller vrátí seznam návrhů změnových požadavků z databáze. Pro jeho zavolání je nutné být přihlášen.
InsertController.php
TODO¶
LoginController.php¶
Tento controller slouží k přihlášení uživatele. V $_POST očekává parametry username a password. V případě správně zadaných údajů se poté do $_SESSION uloží informace o přihlášení.
LogoutController.php¶
Tento controller odhlásí momentálně přihlášeného uživatele a vymaže informace uložené v $_SESSION.
RegistrationController.php¶
Tento controller slouží pro vytvoření nového uživatele. V $_POST očekává celkem 3 údaje, a to username, password a role. Jako role může být vložen libovolný string, nicméně aplikace v současnosti používá pouze 2 role a to admin a editor, tudíž se předpokládá vložení některé z nich.
RemoveChangeRequest¶
Tento controller slouží k odstranění záznamu návrhu změny od uživatele. V $_POST očekává requestId , což je id záznamu změny v databázi. Pro zavolání tohoto controlleru je nutné být přihlášen, jinak se smazání nevykoná.
RemoveController
TODO¶
TableController¶
Tento controller slouží k vytažení záznamů slov z databáze.
model¶
TODO
Aktualizováno uživatelem Tomáš Pašek před více než 3 roky(ů) · 7 revizí