Statische Seiten

dennis0300
Sr. Bludit
Posts: 41
Joined: Tue Nov 30, 2021 4:35 pm

Servus, ist es irgendwie möglich, statische Seiten wie die Error Seite dazustellen? Integriert sind nur Header und Footer, mehr nicht.

Aktuell habe ich folgenden Code in der index.php:

<?php
if ($WHERE_AM_I == 'page') {
if ($page->slug() == 'error') {
include(THEME_DIR_PHP.'error.php');
}
else {
include(THEME_DIR_PHP.'page.php');
}}

else {
include(THEME_DIR_PHP.'home.php');
}
?>
Viele Grüße
Dennis
User avatar
Edi
Site Admin
Posts: 3121
Joined: Sun Aug 09, 2015 5:01 pm
Location: Zurich
Has thanked: 54 times
Been thanked: 77 times
Contact:

Ich verstehe nicht ganz, was du machen möchtest... Möchtest Du externe Seiten einbinden? Oder kannst Du ein Beispiel dafür geben?
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
dennis0300
Sr. Bludit
Posts: 41
Joined: Tue Nov 30, 2021 4:35 pm

Na klar, ich habe eine Error Seite und der Inhalt wird über die Statische Seite angezeigt. Musst du dir wie eine Coming soon Seite vorstellen - der Header und der Footer ist integriert.

Wenn ich jedoch eine andere Statische Seite anlege, erscheint auf der rechten Seite der Inhalt von der page.php - die bei der Error-Seite nicht erscheint. Ich würde gerne die Datei für alle statischen Seiten entfernt haben wollen. Ist das irgendwie möglich?
Viele Grüße
Dennis
User avatar
Edi
Site Admin
Posts: 3121
Joined: Sun Aug 09, 2015 5:01 pm
Location: Zurich
Has thanked: 54 times
Been thanked: 77 times
Contact:

Du kannst ein eigenes Template hinzufügen (indem Du beispielsweise das Template page.php Deinen Bedürfnissen anpasst), und dieses aufrufen, wenn bestimmte Bedingungen erfüllt sind. Zum Beispiel:

Code: Select all

if ($page->slug() == "mein-template") {
   include (THEME_DIR_PHP . 'mein-template.php');
}
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
dennis0300
Sr. Bludit
Posts: 41
Joined: Tue Nov 30, 2021 4:35 pm

Du bist der Beste - hat super geklappt - 1000 Dank.
Viele Grüße
Dennis
dennis0300
Sr. Bludit
Posts: 41
Joined: Tue Nov 30, 2021 4:35 pm

Zufrüh gefreut :-( Jetzt habe ich zwar Impressum perfekt einbauen können, aber dafür zeigt er den Inhalt der Error Seite 2 mal an... Wenn ich Impressum vor Error setze, dann sieht die Error Seite gut aus, aber dafür hab ich dann Impressum 2 mal.

Was mach ich da falsch? Hier der Code von der index.php:

<?php Theme::plugins('siteBodyBegin'); ?>
<?php include(THEME_DIR_PHP.'header.php'); ?>
<?php
if ($WHERE_AM_I == 'page') {

if ($page->slug() == 'error') {
include(THEME_DIR_PHP.'error.php');
}
if ($page->slug() == 'impressum') {
include(THEME_DIR_PHP.'impressum.php');
}
else {
include(THEME_DIR_PHP.'page.php');
}}
else {
include(THEME_DIR_PHP.'home.php');
}
?>
Viele Grüße
Dennis
dennis0300
Sr. Bludit
Posts: 41
Joined: Tue Nov 30, 2021 4:35 pm

Hat niemand eine Lösung für mich?
Viele Grüße
Dennis
User avatar
novafacile
Master Bludit
Posts: 107
Joined: Sat Oct 06, 2018 4:47 pm
Has thanked: 35 times
Been thanked: 10 times
Contact:

Ich muss gestehen, ich habe das Problem nur halb verstanden... :?

Man kann Seiten explizit bzw. "dynamisch" ein Template zuweisen oder über Kategorien lösen und einer Kategorie ein Template zuweisen.

Ich habe das mal im englischen Bereich beschrieben: viewtopic.php?p=10155#p10155

Im darauf folgenden Post ist beschrieben, wie man das mit einer Prüfung auf Slug-Ebene erweitern kann.

Voraussetzung ist, dass du das jeweilige Template anpasst und ggf. die nicht benötigten Plugin-Hooks (z.B. für die Sidebar) weglässt.

Allerdings gibt es die Template-Funktion aktuell im neuen Bludit4 (noch) nicht. Evtl. wird das noch hinzugefügt, kenne dafür die Pläne von diego nicht.
dennis0300
Sr. Bludit
Posts: 41
Joined: Tue Nov 30, 2021 4:35 pm

Servus novafacile,
naja ich hab ja die error.php Seite und da wird ja auch nur der Header und Footerbereich angezeigt. Wenn ich aber Statische Seiten anlege wie z.B. Impressum, dann zeigt er mir zwar auch den Header und Footerbereich an, aber leider auch Inhalte aus der page.php

Ich habe in der index.php ja diesen Code hier:
<?php Theme::plugins('siteBodyBegin'); ?>
<?php include(THEME_DIR_PHP.'header.php'); ?>
<?php
if ($WHERE_AM_I == 'page') {

if ($page->slug() == 'error') {
include(THEME_DIR_PHP.'error.php');
}
else {
include(THEME_DIR_PHP.'page.php');
}}
else {
include(THEME_DIR_PHP.'home.php');
}
?>

und glaube auch, dass ich impressum irgendwie hier einbinden muss und eine impressum.php in den Templateordner. Ich hoffe ich hab es jetzt etwas besser erklärt - ist nicht so ganz einfach das zu erklären :-)
Viele Grüße
Dennis
User avatar
novafacile
Master Bludit
Posts: 107
Joined: Sat Oct 06, 2018 4:47 pm
Has thanked: 35 times
Been thanked: 10 times
Contact:

hmm, es ist eigentlich nicht dafür gedacht, dass man in der index.php umfangreiche Seiten-Logik einbaut.

Es gibt grundsätzlich mehrere Wege, die abhängig von deinem Theme bzw. deiner Inhaltsstruktur sind.

Wenn ich eine Impressum-Seite (oder andere statische) haben möchte die anders als die Blog-Posts aussehen, dann würde ich je nach Bedarf z.B. folgendes machen:
  • Die index.php wie in dem von mir verlinktem Beitrag anpassen
  • Im verwendeten Theme ein Template mit dem Name "static-page" angelegen und so anpassen, wie gewünscht.
  • Impressum als normale statische Seite inkl. Inhalt anlegen (mit SEO noindex)
  • Der Seite Impressum das Template "static-page" zuweisen
Es gibt aber wie gesagt mehrere Ansätze und Wege. Hier noch alternative Wege:
  • Wenn du Kategorien nicht nutzt, kann man diese auch für die Zuordnug von granulareren Seiten-Typen nutzen.
  • Sollte z.B. das Impressum ganz besonders aussehen und dadurch nicht dem Content-Editor pflegen lassen, dann ein Template impressum.php anlegen, Inhalt dort rein packen und $page->content() weglassen. Die Seitenerstellung und Template-Zuordnung würde ich aber wie oben beschrieben über den generischen Weg machen, immer mit dem Ziel möglichst generische Logik in der index.php und möglichs viel Flexibiliät bei der Content-Verwaltung.
Ist das was ich schreibe irgendwie hilfreich? 8-)
Post Reply