-
Notifications
You must be signed in to change notification settings - Fork 33
Views überschreiben
Vom Grundsatz werden persönliche Änderungen an den Modulen unter "application/modules/" nicht empfohlen, da bei Updates der jeweiligen Module diese Dateien überschrieben werden und somit eigene Anpassungen verloren gehen.
Verbesserungen oder empfohlene Anpassungen die in ilch 2 einfließen sollen, müssten direkt in das Projekt IlchCMS - Ilch 2 eingeflochten werden. Somit ständen dann, mit der Überprüfung durch das Ilch-Team und dem Update, die Verbesserungen auch jedem zur Verfügung.
Wenn jedoch eigene den individuellen Bedürfnissen gewünschte Anpassungen gewollt sind, dann sollten die betroffenen Views, die Template-Ausgaben des betroffenen Moduls, in das verwendete Layout eingebunden und angepasst werden. Damit werden zukünftige Updates des betroffenen Moduls die eigenen Anpassungen nicht überschreiben.
Unter den folgenden Punkten werden die Maßnahmen und Abläufe im Allgemeinen und anhand von zwei Beispielen beschrieben.
Um die Views (Template-Ausgaben) den eigenen Wünschen gemäß der oben genannten Empfehlung anzupassen, müssen die betroffenen Ausgaben des jeweiligen Moduls in das eigene Layout eingebunden und auch nur hier angepasst werden.
Die jeweiligen Views sind im Modulordner „application/modules/MODULNAME/views/“ zu finden und müssten dann in das eigene Layout „application/layouts/LAYOUTNAME/views/modules/MODULNAME/“ kopiert werden. Hier können dann die persönlichen Anpassungen eingebunden werden.
Beim Aufruf der Webseite werden vorhandene Views vom genutzten Layout geprüft und dargestellt. Wenn keine vorhanden sind, werden immer die Views der Module aus dem Ordner „application/modules/MODULNAME/views/“ verwendet.
Um zu erkennen wo sich die betroffene Datei befindet, die für eine Integration in das Layout notwendig ist, hilft grundlegend auch die URL beim Aufruf des jeweiligen Moduls der eigenen Webseite. So sieht man bei „domain.de/index.php/MODULNAME/index/index“ dass die aufgerufene View-Datei „application/modules/MODULNAME/views/index/index.php“ ist und die Kopie dieser Datei, für die eigene Anpassung, in die Ordnerstruktur „application/layouts/LAYOUTNAME/views/modules/MODULNAME/index/“ erfolgen muss.
Nun können in der „application/layouts/LAYOUTNAME/views/modules/MODULNAME/index/index.php“ individuelle Darstellungen integriert werden, welche vorrangig beim Aufruf deiner Seite angezeigt werden und vor allem nicht bei Updates überschrieben werden.
Es folgen jetzt zwei Beispiele um diese Grundlagen zu veranschaulichen.
Es werden nun am Gästebuch-Modul „application/modules/guestbook/“
und am Artikel Modul „application/modules/article/“
individuelle Anpassungen getätigt und die notwendigen Abläufe demonstriert. Diese Beispiele zeigen den Weg bzw. die Art und Weise wie man Module dem eigenen Layout entsprechend anpassen oder in anderer Form darstellen kann.
Als Beispiel ändern wir den Link "Neuer Eintrag" des Gästebuchs und verschönern diesen etwas durch einen CSS Button.
Info Pfad Bemerkung URL: domain.de/index.php/guestbook/index/index App-View: application/modules/guestbook/views/index/index.php Quelle / kopieren Layout-View: application/layouts/LAYOUTNAME/views/modules/guestbook/index/index.php Ziel / einfügen
Nun kann im Code der index.php des Views im Layout der Link mit einer CSS Klasse versehen werden:
<div class="float-end"> <a href="<?=$this->getUrl(['action' => 'newentry']) ?>"><?=$this->getTrans('entry') ?></a> </div>
z.B. mit der Klasse class="guestbook_newentry"
<div class="float-end"> <a class="guestbook_newentry" href="<?=$this->getUrl(['action' => 'newentry']) ?>"><?=$this->getTrans('entry') ?></a> </div>
und in der style.css des verwendeten Layouts die CSS Klasse definieren z.B.:
a.guestbook_newentry{ background-color: #f00; border: none; border-radius: 5px; color: #fff; font-size: 14px; padding: 5px 10px; text-align: center; text-decoration: none; }
so würde dann das Ergebnis aussehen:
Als Beispiel entfernen wir die Anzeige des Autors bzw. des Artikelerstellers in allen Artikelanzeigen. Hierzu muss man prüfen, in welchen Views der Autor angezeigt wird. In diesem Fall ist es aufgrund der vielen Anzeigemöglichkeiten etwas umfangreicher.
Info Pfad Bemerkung URL: domain.de/index.php/article/archive/index App-View: application/modules/article/views/archive/index.php Quelle / kopieren Layout-View: application/layouts/LAYOUTNAME/views/modules/article/archive/index.php Ziel / einfügen
Mit der Entfernung folgenden Codes aus der archive/index.php des Layout-View, wo der Autor ermittelt und ausgegeben wird, wird im Ergebnis dieser nicht mehr angezeigt.
<?php if ($article->getAuthorId() != ''): ?> <?php $user = $userMapper->getUserById($article->getAuthorId()); ?> <?php if ($user != ''): ?> <i class="fa-solid fa-user" title="<?=$this->getTrans('author') ?>"></i> <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]) ?>"><?=$this->escape($user->getName()) ?></a> <?php endif; ?> <?php endif; ?>
Info Pfad Bemerkung URL: domain.de/index.php/article/archive/show/year/2022/month/12 App-View: application/modules/article/views/archive/show.php Quelle / kopieren Layout-View: application/layouts/LAYOUTNAME/views/modules/article/archive/show.php Ziel / einfügen
Mit der Entfernung folgenden Codes aus der archive/show.php des Layout-View, wo der Autor ermittelt und ausgegeben wird, wird im Ergebnis dieser nicht mehr angezeigt.
<?php if ($article->getAuthorId() != ''): ?> <?php if ($article->getAuthorName() != ''): ?> <i class="fa-solid fa-user" title="<?=$this->getTrans('author') ?>"></i> <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $article->getAuthorId()]) ?>"><?=$this->escape($article->getAuthorName()) ?></a> <?php endif; ?> <?php endif; ?>
Info Pfad Bemerkung URL: domain.de/index.php/article/cats/show/id/1 Appl-View: application/modules/article/views/cats/show.php Quelle / kopieren Layout-View: application/layouts/LAYOUTNAME/views/modules/article/cats/show.php Ziel / einfügen
Mit der Entfernung folgenden Codes aus der cats/show.php des Layout-View, wo der Autor ermittelt und ausgegeben wird, wird im Ergebnis dieser nicht mehr angezeigt.
<?php if ($article->getAuthorId() != ''): ?> <?php if ($article->getAuthorName() != ''): ?> <i class="fa-solid fa-user" title="<?=$this->getTrans('author') ?>"></i> <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $article->getAuthorId()]) ?>"><?=$this->escape($article->getAuthorName()) ?></a> <?php endif; ?> <?php endif; ?>
Info Pfad Bemerkung URL: domain.de/index.php/article/keywords/show/keyword/ilch App-View: application/modules/article/views/keywords/show.php Quelle / kopieren Layout-View: application/layouts/LAYOUTNAME/views/modules/article/keywords/show.php Ziel / einfügen
Mit der Entfernung folgenden Codes aus der keywords/show.php des Layout-View, wo der Autor ermittelt und ausgegeben wird, wird im Ergebnis dieser nicht mehr angezeigt.
<?php if ($article->getAuthorId() != ''): ?> <?php if ($article->getAuthorName() != ''): ?> <i class="fa-solid fa-user" title="<?=$this->getTrans('author') ?>"></i> <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $article->getAuthorId()]) ?>"><?=$this->escape($article->getAuthorName()) ?></a> <?php endif; ?> <?php endif; ?>
Info Pfad Bemerkung URL: domain.de/index.php/article/index/index App-View: application/modules/article/views/index/index.php Quelle / kopieren Layout-View: application/layouts/LAYOUTNAME/views/modules/article/index/index.php Ziel / einfügen
Mit der Entfernung folgenden Codes aus der index/index.php des Layout-View, wo der Autor ermittelt und ausgegeben wird, wird im Ergebnis dieser nicht mehr angezeigt.
<?php if ($article->getAuthorId() != ''): ?> <?php if ($article->getAuthorName() != ''): ?> <i class="fa-solid fa-user" title="<?=$this->getTrans('author') ?>"></i> <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $article->getAuthorId()]) ?>"><?=$this->escape($article->getAuthorName()) ?></a> <?php endif; ?> <?php endif; ?>
Info Pfad Bemerkung URL: domain.de/index.php/article/index/show/id/1 App-View: application/modules/article/views/index/show.php Quelle / kopieren Layout-View: application/layouts/LAYOUTNAME/views/modules/article/index/show.php Ziel / einfügen
Mit der Entfernung folgenden Codes aus der index/show.php des Layout-View, wo der Autor ermittelt und ausgegeben wird, wird im Ergebnis dieser nicht mehr angezeigt.
if ($article->getAuthorId() != ''): $user = $userMapper->getUserById($article->getAuthorId()); if ($user != ''): ?> <i class="fa-solid fa-user" title="<?=$this->getTrans('author') ?>"></i> <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]) ?>"><?=$this->escape($user->getName()) ?></a> <?php endif; ?> <?php endif; ?>
Info Pfad Bemerkung App-View: application/modules/article/boxes/views/article.php Quelle / kopieren Layout-View: application/layouts/LAYOUTNAME/views/modules/article/boxes/views/article.php Ziel / einfügen
Mit der Entfernung folgenden Codes aus der boxes/views/article.php des Layout-View, wo der Autor ermittelt und ausgegeben wird, wird im Ergebnis dieser nicht mehr angezeigt.
<?php if (!empty($article->getAuthorName())) : ?> <br> <?=$this->getTrans('by') ?> <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $article->getAuthorId()]) ?>"><?=$this->escape($article->getAuthorName()) ?></a> <?php endif; ?>
Dokumentation für ilch 2 | Content-Management-System | Copyright © 2004-2024 by ilch.de
-
Inhaltsverzeichnis
Hier findet man u.a. die Installationsanleitung, sowie Fehler- und Problem-behebungen
-
Inhaltsverzeichnis
Hier findet man Informationen zum Script, Konzept und dem Programmierstil
-
Inhaltsverzeichnis
Hier findet man Informationen über den Aufbau und Anpassung von Layouts und Modulen
-
Inhaltsverzeichnis
Hier findet man einige Video-Tutorials um und mit unserem CMS