CW(1,12C) - Multiarticle(3) - Prolinkovaná tabulka odkazů ke kapitolám (Osnova)

Tím máme obstaráno vykreslení hlavního vybraného obsahu. Teď ovšem přijde to nejhorší - vytvoření prolinkované tabulky kapitol ve vedlejším sloupci vedle těla článku.

Již dříve jsme si obstarali počet výskytů párového tagu <section></section> a uložili ho do proměnné $pocetvyskytu. Nyní obstarávám seznam kapitol, kde každá nese svůj odpovídající odkaz na sebe a každá je uvedena odkazujícím textem posbíraným ze všech nadpisů <H3> v dané kapitole. Povýšil jsem nadpisy <H3> do této organizační funkce, že z jejich textů se bude formulovat odkaz na kapitolu. V obsahu nadále už musím sekat odstavce pomocí H3 a dodržovat zhruba jejich stejnou velikost.
//***************TABULKA KAPITOL*******
for ($i = 1; $i <= $pocetvyskytu; $i++) {
$nadpisyH3 = $xpath->evaluate('
//section[position()=' . $i . ']/h3');
if ($permalink2 == $i) {
echo"<p>&Rang; " . $i . ": ";
foreach ($nadpisyH3 as $j => $h3) {
echo $h3->nodeValue . "&verbar; &nbsp;";
}

A udělal jsem to pomocí vnořených cyklů. Doslova: V cyklu for se od první do poslední kapitoly starám o načtení obsahu H3. Když se čtenář nalézá na vyčtené kapitole, tato jediná se nebude zobrazovat jako odkaz ale pouhý textový odstavec (bez odkazu).
Pomocí cyklů foreach zobrazuji buď <p> nebo <a href> textů ze všech nadpisů oddělených znakem svislé čáry a pevné mezery ("&verbar; &nbsp;").

Vytvoření odkazu řeším pomocí superglobální proměnné $_SERVER['HTTP_HOST'] zřetězené s permalinkem, který mám definován jako nejzásadnější proměnnou celého webu už v Article routeru.
} else {
echo"<p><a href='http://" . $_SERVER['HTTP_HOST'] . '/' . $permalink . '/' . $i . "'>&rArr; " . $i . ": ";
foreach ($nadpisyH3 as $j => $h3) {
echo $h3->nodeValue . "&verbar; &nbsp;";
}
}
}
?>
</div>
</body>
</html>

Konec šablony a máme klikatelnou osnovu kapitol:

 

Zakončuje předchozí dva díly 112A a 112B.

Zdroje

PHP Manual. XML Manipulation.
https://www.php.net/manual/en/book.dom.php

Xpath cheatsheet. Devhints.io.
https://devhints.io/xpath

DC home |
Portál vojenských technologií |
Ostatní články |
Organizační

Člověk pořád prozkoumává, rozšiřuje si obzory, až přijde z druhé strany tam, kde začal.
Civilization 6