Informace | O programu (podrobněji)
^ O programu | ^^ Informace | Úkoly >>
Jak to funguje (podrobněji)
Na základě vstupních parametrů se program rozhodne,
kterou z úloh bude řešit.
Ve většině úloh je třeba analýzovat rok, a to podle (pohyblivého) data velikonoční neděle, která
určuje ostatní liturgické doby. Přesněji, vykonají se následující kroky:
- Zjistí se aktuální datum.
- Pro daný rok se spustí funkce analyzuj_rok(), která
naplní strukturu pro daný (kalendářní) rok,
která obsahuje data nejvýznamnějších mezníků liturgického roku v daném kalendářním
roce a charakteristiky roku.
Mezníky pro účely programu jsou:
- Křest Páně (1. neděle liturgického mezidobí, kterou končí Vánoční doba),
- Popeleční středa (začíná Postní doba),
- neděle Zmrtvýchvstání Páně (končí Postní doba a začíná Velikonoční doba),
- Seslání Ducha Svatého (končí Velikonoční doba a pokračuje liturgické mezidobí),
- První neděle adventní (končí liturgické mezidobí, začíná Adventní doba),
- Svátek Svaté rodiny.
Ostatní pohyblivé svátky se lehce vypočítají podle mezníků, např.:
- Květná neděle: 7 dní před Velikonoční nedělí (podobně Zelený čtvrtek,
Velký pátek, Bílá sobota, Velikonoční pondělí, Neděle ve Velikonočním oktávu),
- Nejsvětější Trojice: 7 dní po Seslání Ducha Svatého,
- Těla a Krve Páně: 11 dní po Seslání Ducha Svatého,
- Nejsvětějšího Srdce Ježíšova: 19 dní po Seslání Ducha Svatého.
Charakteristikami roku jsou:
- zda je rok přestupný,
- písmeno liturgického roku, který začíná První adventní nedělí kalendářního roku,
- nedělní písmeno/písmena (někdy nedělní litera),
- pořadové číslo týdne „v mezidobí“, v kterém začíná Postní doba (tedy v kterém je Popeleční středa),
- pořadové číslo týdne „v mezidobí“, který následuje po Neděli Seslání Ducha Svatého, kterou končí Velikonoční doba.
- Pro dané datum se spustí funkce rozbor_dne(), která naplní
strukturu pro každý den údaji jednak kalendářními
(den v týdnu, pořadí dne v roce), jednak liturgickými (liturgický
rok, liturgická doba, týden žaltáře, pořadové číslo slavení podle
č. 59
Všeobecných směrnic o liturgickém roce
a o kalendáři, zda je slavnost zasvěceným svátkem, nakonec případně vlastní jméno slavnosti).
- Podle takto připravených struktur se lehce vygeneruje stránka s aktuálními údaji (datum, měsíc, rok).
Informace o jednotlivém dnu
Pro generování informace o jednotlivém dnu (bez určené modlitby) vypadá
postup programu následovně: spustí funkci rozbor_dne()
pro daný den a výsledek zobrazí. Vzpomínaná funkcerozbor_dne()
je jednou z klíčových funkcí aplikace, proto se jí budeme věnovat trošku podrobněji.
- 1. fáze: Všeobecná liturgická data
Tato fáze zařadí daný den (podle data, přesněji pořadového čísla
dne v roce) do liturgického období, tedy podle mezníků uvedených
výše určí, o jaké liturgické období jde. Program přitom interně používá následující konstanty:
-
/* 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 této části se určí všechny oslavy, které jsou v breviáři v částech
Vlastní části liturgických dob a Slavnosti během liturgického mezidobí.
Dále se určí pořadové týdny: týden daného období, týden žaltáře. Určí
se i případné oslavy, které připadnou na hraniční dny mezi dobami (mezníky).
- 2. fáze: Liturgická data pro svátky svatých
Tato fáze pro daný den (bez ohledu na předešlé liturgické začlenění)
zjistí počet svátků svatých (bereme totiž v úvahu, že v daný den může
být víc libovolných památek) a pro každý z nich vytvoří datovou strukturu,
která obsahuje zejména název oslavy, typ oslavy a podstrukturu s daty,
která určují, odkud se má brát společná část slavení. Příklad uvádí
částečné nastavení datových struktur pro datum 24. dubna:
_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);
Připomínáme, že v této fázi jsou všechny oslavy, které jsou v breviáři zařazené
v části Vlastní texty pro svátky svatých.
- 3. fáze: Porovnání
Ze všech oslav, přicházejících v úvahu, se upřednostní ta oslava, která má v
tabulce liturgických dní vyšší stupeň. Jde-li o sobotu v liturgickém
mezidobí, bere se v úvahu i sobotní památka Panny Marie.
Vytvoření modlitby
Pro generování modlitby vypadá postup programu následovně:
-
jde-li o nešpory/kompletář, je třeba generovat „nadvakrát“, a to proto,
že v případě, kdy první nešpory následujícího dne mají přednost před nešporami
tohoto dne,
-
tedy v případě nešpor/kompletáře spustí funkci rozbor_dne()
pro následující den (a pokud si to okolnosti vyžadují, i analyzuj_rok()
pro následující rok), výsledek uchová,
-
spustí funkci rozbor_dne() pro daný den, jak je popsáno
výše, a výsledek uchová,
-
nastaví se společné části pro slavení z vlastní části svatých, a to
podle toho, co bylo nastaveno funkcí rozbor_dne() pro daný
den, jak bylo popsáno výše,
-
pokud oslava používá žalmy ze žaltáře, spustí se funkce, která vrátí požadované
žalmy,
-
v případě nešpor/kompletáře zobrazí modlitbu pro ten den, který má přednost,
-
výše zmíněný výsledek obsahuje datovou strukturu s jednotlivými složkami
modlitby, a to dvojice <soubor, kotva> pro každou část modlitby.
(Odpovídá to označení v jednotlivých HTML souborech.)
Pod částí se rozumí každá antifona, žalm, responsorium, hymnus,
modlitba dne či slavení (kolekta), jednoduše všechno, co se potenciálně
může opakovat a často se i opakuje. To je důvod, proč se modlitba generuje,
a není ve statické podobě. Jistě je pohodlnější mít celý breviář ve
statické podobě tak, jak je na internetu. Avšak on-line
breviář umožňuje vygenerovat souvislý text modlitby, aniž by
bylo třeba listovat v breviáři a hledat hymnus na jiném místě než antifony
a na dalším místě žalmy resp. chvalozpěv.
-
Modlitba se generuje tak, že do prázdné šablony (obsahuje pouze nadpisy
jednotlivých částí modlitby a pevné součásti modlitby, jako úvodní Sláva
Otci či závěrečné požehnání) se postupně vkládají části, a to tak, že
daná část se hledá v souboru soubor od místa BEGIN:kotva po
místo END:kotva (a to í několikanásobně) podle dvojice <soubor,
kotva>, a to podle toho, jak je to v jednotlivém
zdrojovém HTML souboru vyznačeno.
Náčrt ostatních funkcí
Pro generování tabulky pohyblivých oslav vypadá postup programu následovně:
Podobně se generuje i analýza roku, kde se navíc generují i tlačítka
pro následující a předchozí rok.
Autor programové části © 1999-2024 Juraj Vidéky
Pomoc při překladu do češtiny: Gorazd
Všechna práva vyhrazena.