diff --git a/img/generovani-vicevrstve-navigace.drawio b/img/generovani-vicevrstve-navigace.drawio new file mode 100644 index 0000000..719973f --- /dev/null +++ b/img/generovani-vicevrstve-navigace.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/img/generovani-vicevrstve-navigace.pdf b/img/generovani-vicevrstve-navigace.pdf new file mode 100644 index 0000000..3d5981b Binary files /dev/null and b/img/generovani-vicevrstve-navigace.pdf differ diff --git a/kap-modelova-implementace.tex b/kap-modelova-implementace.tex index 5525325..59b098c 100644 --- a/kap-modelova-implementace.tex +++ b/kap-modelova-implementace.tex @@ -113,13 +113,16 @@ Z principu by žádný obsah neměl být definován přímo v šabloně, nýbrž \section{Automatické generování vícevrstvé navigace} -\quest[inline]{Je následující část srozumitelná?} +Obsah modelové implementace je dělen do stromové datové struktury o potenciálně nekonečné hloubce, kdy každá část větve je v rámci generátoru vlastní kategorií, nikoliv stránkou. Pro modelovou implementaci bylo zvoleno, aby navigace byla generována v návaznosti na aktivní cestu ve stromě. Ve stránce jsou dvě různé navigace, jedna hlavní a vždy vidiětelná, která obsahuje rozdělení obsahu dle škol a druhá navigace, která zobrazuje aktivní větev stromu. -Obsah modelové implementace je dělen do stromové datové struktury o potencionálně nekonečné hloubce, kdy každá část větve je v rámci generátoru vlastní kategorií, nikoliv stránkou. Pro modelovou implementaci bylo zvoleno, aby navigace byla generována v návaznosti na aktivní cestu ve stromě. Ve stránce jsou dvě různé navigace, jedna hlavní a vždy vidiětelná, která obsahuje rozdělení obsahu dle škol a druhá navigace, která zobrazuje aktivní větev stromu. +\begin{figure}[h]\centering +\includegraphics{img/generovani-vicevrstve-navigace} +\caption{Diagram průběhu generování vícevrstvé navigace} +\end{figure} -První vrstvou struktury jsou hlavní sekce, v rámci implementace pojemnované jako $L_1$, které jsou vypsány vždy ve vlastní navigaci. Pod touto navigací se zobrazuje seznam všech kategorií, které vybraná položka v $L_1$ obsahuje. Pokud uživatel zvolí kteroukoliv položku v $L_2$, v navigaci se objeví další sloupec, který obsahuje všechny podkategorie vybrané položky, tedy položky ve vrstvě $L_3$. Takto lze stromem procházet potencionálně do nekonečna. Styly modelové šablony ovšem počítají s maximální hloubkou čtyř subkategorií. +První vrstvou struktury jsou hlavní sekce, v rámci implementace pojemnované jako $L_1$, které jsou vypsány vždy ve vlastní navigaci. Pod touto navigací je zobrazen seznam všech kategorií, které vybraná položka v $L_1$ obsahuje. Pokud uživatel zvolí kteroukoliv položku v $L_2$, v navigaci se objeví další sloupec, který obsahuje všechny podkategorie vybrané položky, tedy všechny podkategorie ve vrstvě $L_3$. Takto lze stromem procházet potenciálně do nekonečna. Styly modelové šablony ovšem počítají s maximální hloubkou čtyř subkategorií. -Tato funkcionalita je implementována pomocí dvou cyklů. První cyklus (příklad \ref{lst:obsah-cyklus1}) se provádí pro všechny rodiče aktivní ktegorie vrstev $L_2,L_3,\dotsc,L_n$, kde $n$ je aktuílní vrstva. V každé iteraci se mění kontext, ve kterém generátor pracuje. Z daného kontextu generátor vypisuje všechny subkategorie každého svého rodiče. V druhém cyklu (příklad \ref{lst:obsah-cyklus2}) se vypisují všichni potomci dané stránky, tedy potomci ve vrstvě $L_{n+1}$. +Tato funkcionalita je implementována pomocí tří cyklů, z níchž jeden je vložený. První cyklus (příklad \ref{lst:obsah-cyklus1}) se provádí pro všechny rodiče aktivní ktegorie vrstev $L_2,L_3,\dotsc,L_n$, kde $n$ je aktuílní vrstva. V každé iteraci se mění kontext, ve kterém generátor pracuje. Z daného kontextu generátor vypisuje pomocí vnořeného cyklem všechny subkategorie. Ve druhém cyklu (příklad \ref{lst:obsah-cyklus2}) se vypisují všichni potomci dané stránky, tedy potomci ve vrstvě $L_{n+1}$. \begin{lstlisting}[label=lst:obsah-cyklus1,caption=Cyklus pro vypisování všech rodičů v dané větvi navigace] {% if section.ancestors %} diff --git a/prace.pdf b/prace.pdf index 82bc8a4..e39212b 100644 Binary files a/prace.pdf and b/prace.pdf differ