Informácie | O programe (podrobnejšie)
^ O programe | ^^ Informácie | Úlohy >>
Ako to funguje (podrobnejšie)
Na základe vstupných parametrov sa program rozhodne,
ktorú z úloh ide riešiť.
Vo väčšine z úloh je potrebné analyzovať rok, a to podľa (pohyblivého) dátumu veľkonočnej nedele, ktorá
určuje ostatné liturgické obdobia. Presnejšie, vykonajú sa nasledovné kroky:
- Zistí sa aktuálny dátum.
- Pre daný rok sa spustí funkcia analyzuj_rok(), ktorá
naplní štruktúru pre daný (kalendárny) rok,
ktorá obsahuje dátumy najvýznamnejších medzníkov liturgického roka v danom kalendárnom
roku a charakteristiky roka.
Medzníkmi pre účely programu sú:
- Krst Krista Kráľa (1. nedeľa v období „cez rok“, ktorou sa končí Vianočné obdobie),
- Popolcová streda (začína sa Pôstne obdobie),
- Veľkonočná nedeľa (končí sa Pôstne obdobie a začína sa Veľkonočné obdobie),
- Nanebovstúpenie Pána (končí sa Veľkonočné obdobie a pokračuje obdobie „cez rok“),
- Prvá adventná nedeľa (končí sa obdobe „cez rok“, začína Adventné obdobie),
- Sviatok Svätej rodiny.
Ostatné pohyblivé slávenia sa ľahko vypočítajú podľa medzníkov, napr.:
- Kvetná nedeľa: 7 dní pred Veľkonočnou nedeľou (podobne Zelený štvrtok,
Veľký piatok, Biela sobota, Veľkonočný pondelok, Nedeľa vo Veľkonočnej oktáve),
- Najsvätejšej Trojice: 7 dní po Zoslaní Ducha Svätého,
- Najsvätejšieho Tela a Krvi: 11 dní po Zoslaní Ducha Svätého,
- Najsvätejšieho Srdca Ježišovho: 19 dní po Zoslaní Ducha Svätého.
Charakteristikami roka sú:
- či je rok priestupný,
- písmeno liturgického roka, ktorý začína Prvou adventnou nedeľou kalendárneho roka,
- nedeľné písmeno/písmená (niekedy nedeľná litera),
- poradové číslo týždňa obdobia „cez rok“, v ktorom začína Pôstne obdobie (teda v ktorom je Popolcová streda),
- poradové číslo týždňa obdobia „cez rok“, ktorý nasleduje po Nedeli Zoslania Ducha Svätého, ktorou sa končí Veľkonočné obdobie.
- Pre daný dátum sa spustí funkcia rozbor_dna(), ktorá naplní
štruktúru pre každý deň údajmi jednak kalendárnymi
(deň v týždni, poradie dňa v roku), „dvak“ liturgickými (liturgický
rok, liturgické obdobie, týždeň žaltára, poradové číslo slávenia podľa
č. 59
Všeobecných smerníc o liturgickom roku
a o kalendári, či je slávenie prikázaným sviatkom, napokon prípadné vlastné meno slávenia),
- Podľa takto pripravených štruktúr sa ľahko vygeneruje stránka s aktuálnymi údajmi (dátum, mesiac, roky).
Informácie o jednotlivom dni
Pre generovanie informácie o jednotlivom dni (bez určenej modlitby) vyzerá
postup programu nasledovne: spustí funkciu rozbor_dna()
pre daný deň a výsledok zobrazí. Spomínaná funkcia rozbor_dna()
je jednou z kľúčových funkčností aplikácie, preto sa jej budem venovať trošku podrobnejšie.
- 1. fáza: Všeobecné liturgické dáta
Táto fáza zaradí daný deň (podľa dátumu, presnejšie poradového čísla
dňa v roku) do liturgického obdobia, teda podľa medzníkov spomínaných
vyššie určí, o aké liturgické obdobie ide. Program pritom interne používa nasledovné konštanty:
-
/* liturgicke obdobia */
//OBD_ADVENTNE
#define OBD_ADVENTNE_I
1 /* do 16. decembra */
#define OBD_ADVENTNE_II
2 /* po 16. decembri */
//OBD_VIANOCNE
#define OBD_VIANOCNE_I
3 /* do slavnosti zjavenia pana */
#define OBD_VIANOCNE_II
4 /* po slavnosti zjavenia pana */
//OBD_CEZ_ROK
#define OBD_CEZ_ROK
5
//OBD_POSTNE
#define OBD_POSTNE_I
6 /* do soboty v piatom tyzdni */
#define OBD_POSTNE_II_VELKY_TYZDEN 7 /* velky tyzden */
//OBD_VELKONOCNE
#define OBD_VELKONOCNE_TROJDNIE 8 /* umucenia
a zmrtvychvstania Pana */
#define OBD_VELKONOCNE_I
9 /* do nanebovstupenia pana */
#define OBD_VELKONOCNE_II
10 /* po nanebovstupeni pana */
/* nasleduju specialne pod-obdobia */
#define OBD_VELKONOCNA_OKTAVA 0 /*
velkonocna nedela -- 2. velk. ne */
#define OBD_OKTAVA_NARODENIA 11 /*
narodenie Pana -- 1. jan. */
V tejto časti sa určia všetky slávenia, ktoré sú v breviári v častiach
Vlastné časti liturgických období a Slávnosti v období „cez rok“.
Ďalej sa určia poradové týždne: týždeň daného obdobia, týždeň žaltára.určia
aj prípadné slávenia, ktoré pripadnú na hraničné dni medzi obdobiami (medzníky).
- 2. fáza: Liturgické dáta pre sviatky svätých
Táto fáza pre daný deň (bez ohľadu na predošlé liturgické začlenenie)
zistí počet sviatkov svätých (berieme totiž do úvahy, že v daný deň môže
byť viac ľubovoľných spomienok) a pre každý z nich vytvorí dátovú štruktúru,
ktorá obsahuje najmä názov slávenia, typ slávenia a podštruktúru s dátami,
ktoré určujú, odkiaľ sa má brať spoločná časť slávenia. Príklad uvádza
čiastočné nastavenie dátových štruktúr pre dátum 24. apríla:
_global_svaty1.typslav = SLAV_LUB_SPOMIENKA;
_global_svaty1.smer = 12; /* lubovolne
spomienky podla vseobecneho kalendara */
strcpy(_global_svaty1.meno, "Sv. Juraja,
mučeníka");
_global_svaty1.spolcast = _encode_spol_cast(MODL_SPOL_CAST_MUCENIK);
pocet = 2;
_global_svaty2.typslav = SLAV_LUB_SPOMIENKA;
_global_svaty2.smer = 12; /* lubovolne
spomienky podla vseobecneho kalendara */
strcpy(_global_svaty2.meno, "Sv. Fidéla
zo Sigmaringenu, kňaza a mučeníka");
_global_svaty2.spolcast =
-
_encode_spol_cast(MODL_SPOL_CAST_MUCENIK,
MODL_SPOL_CAST_DUCH_PAST_KNAZ);
Pripomíname, že v tejto fáze sa všetky slávenia, ktoré sú v breviári zaradené
v časti Vlastné časti na sviatky svätých.
- 3. fáza: Porovnanie
Zo všetkých slávení, prichádzajúcich do úvahy sa uprednostní to slávenie, ktoré má v
tabuľke liturgických dní vyšší stupeň. Ak ide o sobotu v období
cez rok, berie sa do úvahy aj spomienka Panny Márie v sobotu.
Vytvorenie modlitby
Pre generovanie modlitby vyzerá postup programu nasledovne:
-
ak ide o vešpery/kompletórium, treba generovať „nadvakrát“, a to preto,
lebo v prípade, keď prvé vešpery nasledujúceho dňa majú prednosť pred vešperami
tohoto dňa,
-
teda v prípade vešpier/kompletória spustí funkciu rozbor_dna()
pre nasledujúci deň (a ak si to okolnosti vyžadujú, tak aj analyzuj_rok()
pre nasledujúci rok), výsledok uchová,
-
spustí funkciu rozbor_dna() pre daný deň, ako je popísané
vyššie, a výsledok uchová,
-
nastavia sa spoločné časti pre slávenia z vlastnej časti svätých, a to
podľa toho, čo bolo nastavené funkciou rozbor_dna() pre daný
deň, ako bolo popísané vyššie,
-
ak slávenie používa žalmy zo žaltára, spustí sa funkcia, ktorá vráti požadované
žalmy,
-
v prípade vešpier/kompletória zobrazí modlitbu pre ten deň, ktorý má prednosť,
-
vyššie spomínaný výsledok obsahuje dátovú štruktúru s jednotlivými zložkami
modlitby, a to dvojice <súbor, kotva> pre každú časť modlitby.
(Zodpovedá to označkovaniu v jednotlivých HTML súboroch.)
Pod časťou sa rozumie každá antifóna, žalm, responzórium, hymnus,
modlitba dňa či slávenia (kolekta), jednoducho všetko, čo sa potenciálne
môže opakovať a často sa aj opakuje. To je dôvod, prečo sa modlitba generuje,
a nie je v statickej pobode. Isteže, pohodlnejšie je celý breviár mať v
statickej podobe tak, ako je, na internete Avšak on-line
breviár umožňuje vygenerovať súvislý text modlitby bez toho, že by
bolo potrebné listovať v breviári a hľadať hymnus na inom mieste ako antifóny
a na ďalšom mieste žalmy resp. chválospev.
-
Modlitba sa generuje tak, že do prázdnej šablóny (obsahuje iba nadpisy
jednotlivých častí modlitby a pevné súčasti modlitby, ako úvodné Sláva
Otcu či záverečné požehnanie) sa postupne vkladajú časti, a to tak, že
daná časť sa hľadá v súbore súbor od miesta BEGIN:kotva po
miesto END:kotva (a to aj viacnásobne) podľa dvojice <súbor,
kotva>, a to podľa toho, ako je to v jednotlivom
zdrojovom HTML súbore vyznačené.
Náčrt ostatnej funkčnosti
Pre generovanie tabuľky pohyblivých slávení vyzerá postup programu nasledovne:
- pre každý rok sa spustí funkcia analyzuj_rok(), ktorá naplní
štruktúru pre daný (kalendárny) rok,
- jednotlivé údaje sa vypíšu do riadka tabuľky (s prípadnými hypertextovými odkazmi).
Podobne sa generuje aj analýza roka, kde sa naviac generujú aj tlačidlá
pre nasledujúci a predchádzajúci rok.
Autor programovej časti © 1999-2006 Juraj Vidéky
Všetky práva vyhradené.