Tvorba webových stránok – Manuál k redakčnému systému Rheia 1.0, Roman Horváth, © 2015, powered by Rheia

Obsah stránky sa číta, prosím čakajte…

 TWS – Manuál k RS Rheia 1.0 – Obsah  « Článok s prílohou  |  Šablóny » 

Definície ponúk v RS Rehia netvoria len navigačné prvky webového sídla, definícia zároveň definuje štruktúru sídla a spresňuje správanie sa systému. Parametre položiek totiž môžu určovať, v akých zdrojových súboroch má byť očakávaný obsah, ktorý má byť zobrazený návštevníkovi po zvolení prislúchajúcej položky, resp. po zadaní takej webovej adresy do adresného poľa prehliadača, ktorá s položkou súvisí (v rámci definície ponúk).

 


Technická časť

Definície ponúk sú uložené v súboroch s príponou .txm (pozri kapitolu Spôsob uloženia informácií portálu). Predvolený názov definičného súboru je __basic-menu.txm. Zmenu je možné vykonať pri inicializácii inštancie triedy ConfigParser (v jazyku PHP otvárané v novom okne
(obvykle ide o externý odkaz)).

 

Súbory ponúk definujú zároveň štruktúru webového sídla. Každý odkaz (v zmysle odkazu zadaného do adresného poľa prehliadača) spracovaný v RS Rheia pozostáva z jednej až troch častí, ktoré sú oddelené znakmi ?&, vďaka ktorým ich dokáže Rheia automaticky rozlíšiť. (Protokol a doménový názov servera v tomto kontexte neberieme do úvahy.)

V terminológii systému Rheia sú pomenované takto:

  • kategória (category) – ide zároveň o pomenovanie PHP otvárané v novom okne
(obvykle ide o externý odkaz) súboru, ktorý poskytuje webový obsah (pozri nižšie),
  • zvolená položka (selectedItem)
  • a argument (argument).

Čiže všeobecný tvar poslednej (z pohľadu Rheia najdôležitejšej) časti webovej adresy stránok sídla spravovaného prostredníctvom RS Rheia je očakávaný v nasledujúcom tvare:

  «kategória»?«zvolená položka»&«argument»

Napríklad:

  student?komisie­‑statnice&2014­‑07­‑17

Zvolená položka (selectedItem) a argument (argument) môžu byť vynechané. Tie spresňujú požiadavku v rámci určeného informačného zdroja. Napríklad ak je kategória (category) typu articles a neobsahuje v definícii ponúk žiadne vnorené položky ponuky (submenu), tak zvolená položka (selectedItem) určuje identifikátor článku.

Ak kategória (category) obsahuje vnorené položky ponuky (submenu), tak sa význam môže posunúť tak, že zvolená položka (selectedItem) by určovala informačný zdroj (súbor s príponou .txh alebo .txa – pozri aj kapitolu Spôsob uloženia informácií portálu) a v prípade, že by aj vnorená položka ponuky (submenu) bola typu articles, tak by sa identifikátorom článku stával argument (argument).

Pred kategóriou (category) môže byť uvedená cesta smerujúca na niektorú z podriadených súčastí webového sídla (napríklad cesta katedrovej stránky), ale tá v definičnom súbore ponuky nehrá úlohu.

Kategória

Rheia vyžaduje takú konfiguráciu webového servera (napríklad Apache otvárané v novom okne
(obvykle ide o externý odkaz)), ktorá bude vykonávať vnútorné presmerovanie všetkých požiadaviek v tvare «kategória»?«atď.» do súboru s názvom «kagegória».php. Čiže ak je záverečná časť webového odkazu napríklad v tvare student?dokumenty, tak konfigurácia servera musí zariadiť to, aby bola požiadavka presmerovaná (nasmerovaná) do súboru student.php. (Podrobnosti sú v kapitole Konfigurácia webového servera.)

Administrátor musí zabezpečiť prítomnosť prislúchajúcich PHP otvárané v novom okne
(obvykle ide o externý odkaz) súborov na správnom mieste súborového systému (napríklad v koreni servera, ktorým často býva priečinok s názvom htdocs). To znamená, že pri vytvorení každej novej kategórie, musí zároveň vzniknúť prislúchajúci súbor PHP otvárané v novom okne
(obvykle ide o externý odkaz) s jej názvom. Tieto súbory sú vnútorne spravidla veľmi jednoduché, obsahujú len odkazy na knižnice RS Rheia, no Rheia sa bez nich nezaobíde. Obsah súboru môže vyzerať napríklad takto:

<?php
include 'pdf.php';
include 'design.php';
include 'content.php';
?>

Tento spôsob riešenia otvára možnosti rôzneho rozširovania systému.

 

Uniformita PHP otvárané v novom okne
(obvykle ide o externý odkaz) súborov slúžiacich na obsluhu kategórií RS Rheia je porušená v súbore index.php, kde sa navyše nachádza explicitná definícia kategórie RS Rheia (tretí riadok):

<?php
include 'pdf.php';
$category = 'index';
include 'design.php';
include 'content.php';
?>

Dôvodom je to, že k súboru index.php má návštevník možnosť pristupovať priamo bez určenia cesty a názvu súboru (t. j. kategórie) – napríklad zadaním a potvrdením adresy: http://pdf.truni.sk/. Rheia by nevedela s akou kategóriou má pracovať, preto je v tomto súbore napevno predvolená.

 


Definičná časť

Keď je zabezpečená prítomnosť všetkých potrebných súborov na požadovaných miestach, môžu byť ich názvy použité ako názvy kategórií v definícii ponuky. Definícia ponuky obsahuje nasledujúcu základnú štruktúru:

@«určenie cieľa»

$«identifikátor položky»: «text položky»
    #«parameter»: «hodnota»
    …

    @submenu
        ; Definícia vnorenej ponuky. Syntax je
        ; rovnaká ako pri nadradenej ponuke:

        $«identifikátor položky»: «text položky»
            #«parameter»: «hodnota»
            …

    @end-submenu

…

@end

…

Rôzne časti tejto syntaxe môžu alebo musia byť za rôznych okolností vynechané. Povinnosť vynechania platí pre dvojicu riadkov @«určenie cieľa»@end pri definovaní hlavnej ponuky. Táto dvojica riadkov slúži na vytvorenie definícií rôznych typov ponúk, ktoré sú súčasťou štruktúry (ľavá ponuka, ikony v päte stránky a pod. – pozri nižšie). Hlavná ponuka ich nepotrebuje – práve naopak pri jej definícii nesmie byť cieľ uvedený. (Tabuľka dovolených cieľov je uvedená nižšie.)

Identifikátor položky je unikátny identifikátor a môže zároveň označovať (resp. často označuje) kategóriu (category) alebo zvolenú položku (selectedItem). Text položky môže byť v niektorých prípadoch vynechaný, v takom prípade nie je za identifikátorom uvedená ani dvojbodka.

Parametre upravujú správanie položky. Aj niektoré parametre sú bez hodnoty (už len ich prítomnosť má pre Rheiu určitý význam) a aj v takom prípade platí, že za názvom parametra nie je uvedená dvojbodka. (Tabuľka parametrov s opisom ich významu je uvedená ešte nižšie – v sekcii Parametre položiek.)

Riadkom @submenu sa začína definícia vnorenej ponuky. RS Rheia umožňuje definovať len jednu úroveň vnorenia vedľajšej ponuky. Pokus o vytvorenie hlbšej kaskády skončí vytvorením chybového hlásenia, ktoré bude uložené vo vygenerovanej PHP otvárané v novom okne
(obvykle ide o externý odkaz) verzii zo zdrojového súboru ponuky.

Príklad jednoduchej hornej ponuky môže vyzerať takto:

$uchadzac: Uchádzač
$student: Študent
$zamestnanec: Zamestnanec
$verejnost: Verejnosť

Rheia v súčasnosti dovoľuje určenie nasledujúcich cieľov definície (@«určenie cieľa»):

Určenie cieľa Význam
left­‑menu dynamická časť ľavej ponuky zobrazujúca svoje položky podľa voľby 
položky v hornej (hlavnej) ponuke
left­‑menu­‑before permanentná časť ľavej ponuky uvedená pred dynamickou časťou
left­‑menu­‑after permanentná časť ľavej ponuky uvedená za dynamickou časťou
right­‑menu dynamická časť pravej ponuky zobrazujúca svoje položky podľa voľby 
položky v hornej (hlavnej) ponuke
right­‑menu­‑before permanentná časť pravej ponuky uvedená pred dynamickou časťou
right­‑menu­‑after permanentná časť pravej ponuky uvedená za dynamickou časťou
bottom­‑icons definícia položiek určujúcich ikony v päte stránky

Príklad použitia cieľa left­‑menu­‑before je na konci tejto kapitoly.

Rezervované identifikátory

Súčasťou hlavného prúdu definície môžu byť aj niektoré z nasledujúcich rezervovaných definícií:

Rezervovaný identifikátor Význam
rss určenie názvu súboru poskytujúceho RSS kanál. Príklad použitia je nižšie. O problematike RSS stručne informuje samostatná kapitola RSS kanál.
ical «rezervované pre formát iCalendar»

Tieto identifikátory sa nesmú vyskytnúť vo vnorených ponukách.

Nasledujúci príklad ukazuje definíciu súboru pre RSS kanál:

$rss: /rss.xml

Výsledkom tejto definície bude aktivácia ikony RSS umiestnenej v hlavičke dizajnu stránky, pričom ikona bude smerovať na určený súbor (/rss.xml).

V konfigurácii webového servera (napríklad Apache otvárané v novom okne
(obvykle ide o externý odkaz)) musí byť zabezpečené správne nasmerovanie servera na súbor s príponou .xml, ktorá nie je pre PHP otvárané v novom okne
(obvykle ide o externý odkaz) aplikácie štandardná. (Podrobnosti sú uvedené v kapitole Konfigurácia webového servera.)

Vložené popisy

Niekedy môže byť žiaduce vloženie neaktívnej textovej položky medzi aktívne položky. Môže ísť o oddeľovací vysvetľujúci text, popis, nadpis sekvencie položiek a podobne. Takýto text sa dá vložiť s použitím nasledujúcej syntaxe:

*«text popisu»

Príklad:

…

$tuid-search: Vyhľadanie TUID
    #http: www.truni.sk/zistenie-tuid
    #card: design/tuid-search.png

*Preukazy ISIC, ITIC

$isic: Preukazy ISIC
    #http: www.truni.sk/preukaz-studenta
    #card: design/isic-tvu.jpeg

…

Oddeľovač

Grafický oddeľovač je do definície možné vložiť riadkom, ktorý obsahuje jeden alebo viacero spojovníkov (administrátor môže mať záujem o použitie viacerých spojovníkov, ktoré je možné v zdrojovom texte rýchlejšie nájsť).

Príklad:

---

Parametre položiek

Ani jeden z parametrov položiek nie je povinný. Každý iba upravuje správanie a/alebo spôsob spracovania položky. Parametre nesmú byť uvedené samostatne, musia byť súčasťou definície niektorej položky ponuky. Súvisí s nimi nasledujúci úryvok zo syntaxe definície ponúk:

$«identifikátor položky»: «text položky»
    #«parameter»: «hodnota»

Väčšina parametrov vyžaduje hodnotu uvedenú za dvojbodkou za názvom parametra. Pri tých parametroch, ktoré to nevyžadujú, je to explicitne uvedené (pozri tabuľku nižšie). V takom prípade sa za názvom parametra neuvádza ani dvojbodka.

Príklad definície pokusnej položky s dvoma parametrami – jeden s hodnotou a druhý bez nej:

$pokus: Pokusná položka
    #alias: aktuality
    #nosearch

Tabuľka parametrov:

Parameter Význam a hodnoty
alias definícia aliasu pre túto položku – zvolenie tejto položky spôsobí zobrazenie obsahu aliasu.
card očakáva názov obrázka a spôsobí to, že táto položka bude grafická.
class určuje zoznam tried kaskádových štýlov (CSS otvárané v novom okne
(obvykle ide o externý odkaz)), ktorý bude použitý pri zobrazení tejto položky (v predvolenej konfigurácii je preddefinovaná napríklad trieda center­‑card, ktorá spôsobí zarovnanie grafickej položky na stred).
deleteconfig tento parameter nevyžaduje hodnotu a slúži na vynútené vymazanie vnútornej konfiguračnej časti definície tejto položky. Za normálnych okolností nie je potrebné ani vhodné použiť tento parameter. 
Na vysvetlenie: definícia položiek ponuky je vnútorne rozdeľovaná do dvoch samostatných polí. Jedno slúži na určenie štruktúry a druhé na rôzne konfiguračné účely systému. Tento parameter úplne vymaže konfiguračnú časť tejto položky. Táto akcia je automaticky vykonaná pre niektoré položky, napríklad pre položky odkazujúce sa na externé informačné zdroje (http/https).
hidden položka bude skrytá. Tento parameter nevyžaduje hodnotu.
http | https odkaz na externú adresu s použitím protokolu HTTP otvárané v novom okne
(obvykle ide o externý odkaz) alebo HTTPS otvárané v novom okne
(obvykle ide o externý odkaz).
link priamy odkaz na určitú časť webového sídla.
nosearch položka bude vynechaná vyhľadávacím skriptom. Tento parameter nevyžaduje hodnotu.
parent definovanie rodičovskej položky. Toto je potrebné v niektorých prípadoch na presnejšie určenie umiestnenia tejto položky v hierarchii ponúk stránky. Ak je zadaná hodnota null (napríklad pre položku vo vnorenej ponuke), tak je naopak rodičovstvo zrušené.
highlight spôsobí vysvietenie zadanej položky alebo položiek, ktoré sú určené zoznamom identifikátorov oddelených medzerami. Tento parameter je možné použiť na označenie tematicky príbuzných položiek v systéme ponúk, ktoré nie sú z technickeho pohľadu príbuzné, ale je vhodné upozorniť návštevníka na ich tematickú príbuznosť. (Napríklad technicky nezávislá položka aktuality­‑univerzita vysvecuje položku aktuality, lebo sú obsahovo príbuzné a prepojené presmerovanými kartami.)
poster v súčasnosti tento parameter očakáva názov súboru bez prípony, ktorý obsahuje obrázok postera, ktorý bude zobrazený v hornej časti stránky po zvolení tejto položky. Obrázok musí byť umiestnený v priečinku design, musí mať príponu .jpeg a musí mať vhodnú veľkosť (odporúčaných je 1080 × 281 pixelov).
style dovoľuje k individuálnej položke priradiť niekoľko vlastností štýlov CSS otvárané v novom okne
(obvykle ide o externý odkaz) (nejde o zoznam tried štýlov, ale priamo o definície CSS otvárané v novom okne
(obvykle ide o externý odkaz) – pozri napríklad kapitolu Úprava štýlov).
sublabel text tohto parametra bude zobrazený menším písmom v zátvorke pod hlavným textom položky. Účelom textu je spresnenie významu tejto položky.
type určuje typ položky. Typ významne ovplyvňuje spôsob poskytovania obsahu položkou. V rámci štandardných súčastí RS Rheia sú povolené nasledujúce typy: 
html – položka bude vyhľadávať a spracúvať zdrojový súbor .txh (toto je predvolená hodnota), 
articles – položka bude vyhľadávať a spracúvať zdrojový súbor .txa (pozri kapitolu Definovanie článkov), 
gallery – položka bude vyhľadávať a spracúvať zdrojový súbor .txg (pozri kapitolu Galérie), 
module – funkčnosť položky je určená kódom v PHP otvárané v novom okne
(obvykle ide o externý odkaz) skripte kategórie (slúži na rozširovanie systému; pozri napríklad kapitolu Programovanie rozširujúcich modulov).
uri «rezervované» – niektoré rezervované položky umiestnené v hlavičke stránky vyžadujú zadanie odkazu týmto spôsobom. (Momentálne neposkytuje táto súčasť RS Rheia dostatočnú flexibilitu.)
en | sk | «…» tento parameter obsahuje identifikátor určujúci prislúchajúcu jazykovú verziu stránky/článku. Identifikátor bude vhodne zaradený do odkazu pod vlajočkou jazykovej verzie umiestnenou v záhlaví stránky. (Momentálne je jediným úplne podporovaným cudzím jazykom angličtina. Použitie iných jazykov v plnom rozsahu by vyžadovalo doplnenie a/alebo preklad niektorých prvkov systému Rheia.)

Príklad použitia cieľa left­‑menu­‑before

Nasledujúci príklad ukazuje časť definície permanentnej časti ľavej ponuky (left­‑menu­‑before), ktorá bude umiestnená pred dynamickou časťou (čo naznačuje slovko before; definícia dynamickej časti ponuky by mala určenie cieľa left­‑menu – predpokladajme, že je umiestnená v inej časti definičného súboru). Časť definície obsahuje zoznam katedier (príklad je skrátený):

@left-menu-before
$katedry-pracoviska: Katedry a pracoviská
    #en: departments-institutions
    @submenu
        $kaj: Katedra anglického jazyka a literatúry
            #link: katedry/kaj
            #nosearch
        $kb: Katedra biológie
            #link: katedry/kb
            #nosearch
        $kf: Katedra fyziky
            #link: katedry/kf
            #nosearch: true
        $kch: Katedra chémie
            #link: katedry/kch
            #nosearch: true
        …
    @end-submenu
@end

Väčšina položiek v príklade sa prostredníctvom parametra link odkazuje na externý zdroj informácií (v tomto prípade ide o podriadené súčasti webového sídla – katedrové stránky).

Identifikátory položiek (kaj, kb, kf, kch…) sa v tomto prípade neodkazujú na súbory PHP otvárané v novom okne
(obvykle ide o externý odkaz), ktoré by mali zabezpečovať funkčnosť jednotlivých kategórií (t. j. kaj.php, kb.php, kf.php, kch.php…). V tomto prípade takéto súbory vôbec nemusia jestvovať (keďže položky sa odkazujú na externý zdroj informácií), no identifikátory položiek by mali byť unikátne a to nielen voči sebe navzájom, ale aj voči ostatným identifikátorom v celej definícii ponuky.

Keď Rheia nájde duplikát identifikátora v štuktúre ponúk, tak nevyhlási chybu. Namiesto toho sa pokúsi informácie zlúčiť alebo „recyklovať“. Za určitých okolností je výskyt duplikátov povolený, napríklad pri odvolávaní sa na rovnaký informačný zdroj z rôznych častí ponuky z dôvodu zlepšenia dostupnosti informácie.

 


Otázky a úlohy:

  1. Čo je potrebné zariadiť na to, aby bola kategória RS Rheia úplne funkčná?
  2. Čo je to kategória (category) RS Rheia?
  3. Aký význam má zvolená položka (selectedItem) v rámci RS Rheia?
  4. Aký význam má argument (argument) v rámci RS Rheia?
  5. Ako je do ponuky možné vložiť popis (neaktívnu položku)?
  6. Ako je do ponuky možné vložiť oddeľovač?
  7. Čo sa stane, keď Rheia nájde v definícii ponuky duplikát identifikátora položky?