Gedanken
Diese Seite
Aufbau Gefällt's mir Pläne Dieses Template
Tagebuch
2021-09-22 2021-12-01
Spiele
Pokemon
Heartgold/Soulsilver Schwert/Schild Brilliant Diamond/Shining Pearl
Shin Megami Tensei
Persona 3 Persona 4 Persona 5/Royal SMT3:Nocturne SMT5
Programmieren
Docker
Einfacher Webserver mit Docker Bekannte Probleme mit Docker
Alltag
Arbeit
Welcome
Kurioses
Folgt]
Fotos
Haus mit Efeu
Dieses Template gefällt mir tatsächlich sehr gut. Es ist einfach gehalten und hat dennoch Charakter. Mit der Zeit werde ich es nach und nach personalisieren. Bis dahin schreibe ich aber mal die Probleme und Lösungen auf, die ich mit diesem Template hatte.
Das Template könnt ihr auf der Seite dokuwiki finden. Alternativ ist hier der github-Link. Liebe Grüße an Kijima Daigo, der dieses großartige Template zur Verfügung stellt.
Der Ursprüngliche Ersteller benutzt dieses Template scheinbar als Archiv. Ein Blick auf seine github-Seite offenbart, wie er dieses Template benutzt. Nur steht dadurch die Sidebar nur für die Startseite zur Verfügung. Um dies zu ändern, musste ich das Template etwas modifizieren.
<?php if($ID == 'start'): ?> <?php if($showSidebar): ?> <!-- ********** ASIDE ********** --> <div id="dokuwiki__aside"><div class="pad aside include group shadow p-4"> <h3 class="toggle"><?php echo $lang['sidebar'] ?></h3> <div class="content"><div class="group"> <?php tpl_flush() ?> <?php tpl_includeFile('sidebarheader.html') ?> <?php tpl_include_page($conf['sidebar'], true, true) ?> <?php tpl_includeFile('sidebarfooter.html') ?> </div></div> </div></div><!-- /aside --> <?php endif; ?> <?php endif; ?>
Man sieht bereits zügig, wie man das Problem beseitigen kann. Es wird am anfang gefragt, ob dies die Startseite ist. Sobald man diese entfernt, wird die Sidebar, inklusive Namespace-Sidebar(!), regulär angezeigt. Hier ein kleines Beispiel, wie das aussehen könnte.
<?php if($showSidebar): ?> <!-- ********** ASIDE ********** --> <div id="dokuwiki__aside"><div class="pad aside include group shadow p-4"> <h3 class="toggle"><?php echo $lang['sidebar'] ?></h3> <div class="content"><div class="group"> <?php tpl_flush() ?> <?php tpl_includeFile('sidebarheader.html') ?> <?php tpl_include_page($conf['sidebar'], true, true) ?> <?php tpl_includeFile('sidebarfooter.html') ?> </div></div> </div></div><!-- /aside --> <?php endif; ?>
Ja! Man entfernt einfach das „if“ und passendes „endif“! Das reicht schon, damit die Sidebar sichtbar wird. Allerdings wird sich gleich ein anderes Problem zeigen, das ist direkt im nächsten Problem lesbar.
Wenn man die Sidebar einfach einschaltet, dann fehlen leider an einer Stelle ein paar Bootstrap-Klassen, die genau dieses Problem abfangen und korrigieren. Die Seite weiß nämlich nicht, dass eine Sidebar existiert. Deshalb ist sie so seltsam verschoben. Die Lösung ist auch relativ simpel, wenn man sie ein mal gesehen hat.
<?php if($ID == 'start'): ?> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?> <?php echo ($showSidebar) ? 'showSidebar' : ''; ?> <?php echo ($hasSidebar) ? 'hasSidebar' : ''; ?>"> <?php else: ?> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?>"> <?php endif; ?>
Relativ am Anfang des Bodys findet man diesen kleinen Ausschnitt. Hier prüft er tatsächlich erneut, ob die Seite die Startseite ist und fügt dann dem div die Klassen showSidebar und hasSidebar hinzu. Die Lösung ist genauso banal, wie die erste Lösung: Wir entfernen die Abfrage.
<div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?> <?php echo ($showSidebar) ? 'showSidebar' : ''; ?> <?php echo ($hasSidebar) ? 'hasSidebar' : ''; ?>">
Das reicht schon, damit die Seite sich wieder richtig verhält und die Sidebar mit Inhalt korrekt anzeigt.