Obsah stránky sa číta, prosím čakajte…
Tvorba webových stránok – Manuál k redakčnému systému Rheia 1.0, Roman Horváth, © 2015, powered by Rheia
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 ).
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 ?
a &
, 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 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 ), 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 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 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 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»
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 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 ) musí byť zabezpečené správne nasmerovanie servera na súbor s príponou .xml
, ktorá nie je pre PHP 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 ), 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 alebo HTTPS . |
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 (nejde o zoznam tried štýlov, ale priamo o definície CSS – 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 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 , 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:
- Čo je potrebné zariadiť na to, aby bola kategória RS Rheia úplne funkčná?
- Čo je to kategória (
category
) RS Rheia? - Aký význam má zvolená položka (
selectedItem
) v rámci RS Rheia? - Aký význam má argument (
argument
) v rámci RS Rheia? - Ako je do ponuky možné vložiť popis (neaktívnu položku)?
- Ako je do ponuky možné vložiť oddeľovač?
- Čo sa stane, keď Rheia nájde v definícii ponuky duplikát identifikátora položky?