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 | Objekty  « Rezervované názvy objektov  |  Rozširujúce možnosti použitia objektov » 

Objekty je možné použiť vo všetkých zdrojových súboroch webového sídla (.txh, .txa, .tpt, .txg – pozri aj: Spôsob uloženia informácií portálu). Syntax použitia je odvodená od syntaxe definície. (Tým, že je definícia oddelená v samostatnom súbore, nedochádza ku konfliktom medzi definíciou a použitím objektov.)

Nasledujúca tabuľka sumarizuje syntax so stručným vysvetlením základných spôsobov použitia objektov:

Ukážka syntaxe Stručné vysvetlenie
$«názov objektu» vloženie hlavného obsahu objektu (hlavnej hodnoty)
$«názov objektu»#«názov vlastnosti» vloženie obsahu konkrétnej vlastnosti definovanej v určenom objekte
$«názov objektu»–en#«názov vlastnosti» 
$«názov objektu»–de#«názov vlastnosti»
 
… 
vloženie obsahu konkrétnej vlastnosti prednostne v cudzom jazyku 
(angličtine, nemčine…) a v prípade, že nie je cudzojazyčná mutácia 
obsahu definovaná, tak v slovenčine; všimnite si, že na rozdiel od 
definície musí byť pri použití kód jazyka pripojený k názvu 
objektu, nie vlastnosti
$«názov objektu»#«názov vlastnosti»[] požiadavka na vytvorenie zoznamu z poľa hodnôt určenej vlastnosti

Hodnoty objektov sú spravidla spracované až pri zobrazovaní webového obsahu návštevníkovi. Zakaždým, keď Rheia nájde syntax zodpovedajúcu niektorému spôsobu použitia objektu alebo jeho vlastnosti, začne sa proces rozvoja názvu na hodnotu, ktorý môže byť aj niekoľkoúrovňový.

Pri viacnásobnom rozvíjaní objektov (najmä v súvislosti s jazykovými mutáciami) by mohol nastať konflikt, preto má Rheia povolenú alternatívnu syntax so zátvorkami, no aby bola táto syntax použiteľná v kombinácii s makrami, boli použité Unicode tzv. „biele“ alebo duté zátvorky – :

Ukážka syntaxe Stručné vysvetlenie
$⦅«názov objektu»–en#«názov vlastnosti»⦆ 
$⦅«názov objektu»–de#«názov vlastnosti»
 
… 
alternatívna syntax vloženia obsahu vlastnosti v cudzom jazyku

Rovnako môže byť táto zátvorková syntax použitá vo všetkých prípadoch uvedených v prvej tabuľke tejto podkapitoly. Podmienkou je, aby začiatočná dutá zátvorka () bola uvedená za znakom dolár ($) a koncová dutá zátvorka () na konci celku, ku ktorému sa počiatočný dolár vzťahuje.

Znak počiatočnej dutej zátvorky má v tabuľke znakov Unicode slovné označenie LEFT WHITE PARENTHESIS a kód 0x2985 (10629). Znak koncovej dutej zátvorky nesie označenie RIGHT WHITE PARENTHESIS a má kód 0x2986 (10630).

 

Z vyššie uvedených základných spôsobov vloženia obsahu objektov a ich vlastností do textu má jeden z nich (pri ich vzájomnom porovnaní) odlišné správanie. Je to vloženie požiadavky na vytvorenie zoznamu z poľa hodnôt. (Pozri aj kapitolu Formátovanie zoznamov vytvorených z polí hodnôt vlastností.) Keby sme vložili obsah vlastnosti, ktorá je definovaná ako pole, bez symbolu [] za názvom vlastnosti, vytvorili by sme obyčajnú požiadavku na vloženie obsahu a Rheia by obsah poľa zlúčila do súvislého textu. V opačnom prípade dôjde k spusteniu spracovania, ktoré je opísané nižšie.

 

Rheia je schopná vkladať hodnoty jednotlivých prvkov polí tak, aby sa každá nachádzala v samostatnom elemente (HTML otvárané v novom okne
(obvykle ide o externý odkaz)) a to aj podľa kontextu, do ktorého bola požiadavka vložená. Tým je myslené to, že ak je požiadavka na vytvorenie zoznamu umiestnená napríklad do odseku textu, tak Rheia skopíruje odsek pod seba toľko ráz, koľko údajových prvkov obsahuje zadané pole a pri tom, ako sa dá očakávať, postupne dosadí do každej kópie odseku jeden prvok poľa v takom poradí, v akom boli definované. (Pozri aj kapitolu Formátovanie zoznamov vytvorených z polí hodnôt vlastností.)

(Definícia odseku sa samozrejme môže nachádzať aj na viacerých samostatných riadkoch zdrojového textu – v súlade s pravidlami tvorby odsekov.)

Podobne, ak je požiadavka vložená do položky zoznamu, tak Rheia vytvorí prislúchajúci počet položiek zoznamu. A ak je požiadavka vložená napríklad v riadku tabuľky, tak Rheia vytvorí prislúchajúci počet riadkov tabuľky.

Ak je v jednom odseku/položke zoznamu/riadku tabuľky vložených niekoľko rôznych požiadaviek na vytvorenie zoznamu, tak bude Rheia vytvárať nové odseky/položky/riadky dovtedy, kým bude jestvovať ďalší prvok aspoň jedného z polí. (Namiesto nejestvujúcich prvkov budú dosadené prázdne miesta.)

Rheia umožňuje pri vytváraní zoznamov z polí určiť aj obsah, ktorý sa vo vytvorenom zozname vyskytne len raz – neopakujúci sa obsah. Oboje je najjednoduchšie vysvetliteľné na príklade.

Predpokladajme, že potrebujeme vytvoriť tabuľku so zoznamom kontaktov. Na zjednodušenie uvažujme len dva údaje – celé meno osoby a zoznam e‑mailových adries. Vytvorme jednoduchú tabuľku obsahujúcu požiadavky na vytvorenie zoznamu kontaktov pre jednotlivé osoby. Dodržujúc syntax RS Rheia bude vyzerať takto:

$hrasko → $hrasko#email[]
$certova → $certova#email[]
…

Vznikne zoznam pozostávajúci z riadkov, v ktorých bude v prvom stĺpci meno kontaktu a v druhom stĺpci e‑mailový kontakt. Pre každý kontakt bude vytvorených toľko riadkov, koľko e‑mailových adries má kontakt definovaných.

Predpokladajme, že objekty sú definované takto:

$hrasko: Ján Hraško
    #email[]: hrasko@chalupa.sk
    #email[]: jan.hrasko@praca.sk
    #email[]: janko.hrasko@doma.sk

$certova: Katarína Čertová
    #email[]: certova@peklo.org
    #email[]: katka@doma.sk
Poznámka: Názvy objektov a ich vlastností smú obsahovať diakritiku, ale niekedy jestvuje oprávnený predpoklad, že názov objektu alebo vlastnosti bude použitý v rôznych kontextoch, z ktorých jeden bude súvisieť s použitím mimo jadra RS Rheia a diakritika by mohla spôsobiť ťažkosti. V takom prípade je vhodne diakritiku radšej nepoužiť. Napríklad názvy objektov, ktoré reprezentujú pracovníkov, môžu zároveň slúžiť ako identifikátory profilov, ktoré sú uložené v prislúchajúcich zdrojových súboroch a názvy súborov by na zachovanie vyššej kompatibility nemali obsahovať diakritiku.

Vytvorený zoznam bude vyzerať takto:

Ján Hraško adresa elektronickej pošty
Ján Hraško adresa elektronickej pošty
Ján Hraško adresa elektronickej pošty
Katarína Čertová adresa elektronickej pošty
Katarína Čertová adresa elektronickej pošty
Poznámka: Ak názov vlastnosti obsahuje text mail a obsah (hodnota) vlastnosti znak @, tak Rheia automaticky prevedie jej hodnotu na odkaz obsahujúci e‑mailovú adresu. V prípade potreby sa toto správanie dá zmeniť nahradením znaku @ kódom z tabuľky znakov@.

Tento spôsob zobrazenia by mohol návštevníka viesť k mylnému záveru, že v adresári jestvuje viacero osôb s rovnakými menami. Na potlačenie tohto dojmu je vhodné použiť neopakujúci sa obsah.

Všetko, čo nechceme, aby sa vo vytvorenom zozname opakovalo, treba uzavrieť medzi sekvencie znakov $[$]. Treba brať do úvahy to, že Rheia vynechá všetko, čo sa medzi týmito dvoma sekvenciami znakov nachádza. Je potrebné dbať napríklad na zachovanie štruktúry tabuľky. Ak je žiaduce, aby bol vynechaný opakujúci sa obsah v susediacich bunkách tabuľky, tak je potrebné použiť sekvencie znakov $[$] na každú bunku zvlášť, inak by vznikla nekonzistentná štruktúra tabuľky.

Príklad:

$[$hrasko$] → $[člnkár$] → $hrasko#email[]
$[$certova$] → $[jazdkyňa$] → $certova#email[]

Za predpokladu, že objekty sú definované rovnako ako bolo uvedené vyššie, bude výsledok vyzerať takto:

Ján Hraško člnkár adresa elektronickej pošty
    adresa elektronickej pošty
    adresa elektronickej pošty
Katarína Čertová jazdkyňa adresa elektronickej pošty
    adresa elektronickej pošty
Poznámka: Na zjednodušenie tohto príkladu sme športy, ktorým sa osoby venujú zadali napevno. Univerzálnejšie by bolo, keby aj tie boli definované prostredníctvom vlastností.

 


Otázky a úlohy:

  1. Uveďte aspoň dva základné spôsoby vkladania hodnôt objektov alebo ich vlastností.
  2. Akým spôsobom je možné pri vkladaní obsahu polí hodnôt vlastností určiť neopakujúci sa obsah?