Content auf der Startseite editierbar machen

koljaxyz
Ssr. Bludit
Posts: 12
Joined: Thu Apr 30, 2020 10:24 am

Hallo Bludit Forum,

ich arbeite mich gerade in Bludit rein, klappt auch alles ganz gut soweit, aber bei einer Sache bin ich mir nicht sicher, wie ich sie angehen soll. Ich möchte, dass auf der Startseite ein anderes Template benutzt wird als auf den Unterseiten. Ich weiß, dass das mit home.php und page.php geregelt wird. Allerdings – soweit ich das bisher verstanden habe – kann der User die Inhalte auf der Homepage dann nicht im Backend editieren.

Ich habe schon probiert, die Startseite auch als Static Page anzulegen und diese in den Einstellungen als Startseite festzulegen. Leider wird dann das page.php Template geladen und nicht mehr das home.php.

Ich bin ansich cool mit der Variante, eine Startseite als Staticpage anzulegen, dann taucht sie auch in der Navi auf. Kann ich dieser aber irgendwie ein eigenes Template verpassen? Geht das mit der Where_Am_I Funktion? Zum Beispiel: Ist der User auf der Seite mit dem Titel "Start", nutze das Template start.php, ansonsten nutze für alle anderes Seiten das page.php.

Vielen Dank und liebe Grüße!
koljaxyz
Ssr. Bludit
Posts: 12
Joined: Thu Apr 30, 2020 10:24 am

Ich habe es hinbekommen mit einem Stückchen Code aus einem anderen Thread:

Code: Select all

<?php
	if ($WHERE_AM_I == 'page') {
	 if ($page->slug() == 'home') {
			include(THEME_DIR_PHP.'start.php');
	 } else {
			include(THEME_DIR_PHP.'page.php');
	 }
	} else {
	 include(THEME_DIR_PHP.'home.php');
	}
?>
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:

koljaxyz wrote: Thu Apr 30, 2020 10:37 am Allerdings – soweit ich das bisher verstanden habe – kann der User die Inhalte auf der Homepage dann nicht im Backend editieren.
Es können immer alle Inhalte, ob sie als Beiträge oder Seiten ausgegeben werden, im Backend bearbeitet werden.
Ich bin ansich cool mit der Variante, eine Startseite als Staticpage anzulegen, dann taucht sie auch in der Navi auf. Kann ich dieser aber irgendwie ein eigenes Template verpassen?
Du kannst das Template home.php anpassen (was etwas heikel ist, da die Datei bei einer Aktualisierung überschrieben würde) oder ein eigenes Template (beispielsweise mainpage.php) erstellen und zuordnen:

Code: Select all

if ($WHERE_AM_I == 'page') {
   include(THEME_DIR_PHP.'page.php');
} else {
   include(THEME_DIR_PHP.'mainpage.php');
}
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
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:

koljaxyz wrote: Thu Apr 30, 2020 1:46 pm Ich habe es hinbekommen mit einem Stückchen Code aus einem anderen Thread:

Code: Select all

<?php
	if ($WHERE_AM_I == 'page') {
	 if ($page->slug() == 'home') {
			include(THEME_DIR_PHP.'start.php');
	 } else {
			include(THEME_DIR_PHP.'page.php');
	 }
	} else {
	 include(THEME_DIR_PHP.'home.php');
	}
?>
Das ist etwas mehr Code, funktioniert aber auch.
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
koljaxyz
Ssr. Bludit
Posts: 12
Joined: Thu Apr 30, 2020 10:24 am

Danke.

Und wie kann ich mehrere Templates zuordnen? Wenn Seite "Kontakt" ist aufgerufen, lade Kontakt.php

Code: Select all

<?php
	if ($WHERE_AM_I == 'page') {
		if ($page->slug() == 'home') {
			include(THEME_DIR_PHP.'start.php');
		}
			if ($page->slug() == 'kontakt') {
				include(THEME_DIR_PHP.'kontakt.php');
			}
		else {
			include(THEME_DIR_PHP.'page.php');
		}
	}
	else {
		include(THEME_DIR_PHP.'home.php');
	}
?>
Also so funktioniert das schon mal auf der Kontaktseite. Allerdings wird so auf der Startseite nun auch das Page Template drunter ausgegeben und ich habe bisher keinen Weg gefunden, ohne Error aus der Nummer wieder rauszukommen.

Startseite -> Nur start.php
Kontakt -> Nur kontakt.php
Alle anderen Seiten -> page.php

Home.php habe ich jetzt gar nicht im Einsatz.
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:

koljaxyz wrote: Thu Apr 30, 2020 6:35 pm Also so funktioniert das schon mal auf der Kontaktseite. Allerdings wird so auf der Startseite nun auch das Page Template drunter ausgegeben und ich habe bisher keinen Weg gefunden, ohne Error aus der Nummer wieder rauszukommen.
Was meinst Du mit "auch das Page Template drunter ausgegeben"?

Du kannst folgendes verwenden:

Code: Select all

if ($WHERE_AM_I == 'page') {
   if ($page->slug() == 'kontakt') {
      include(THEME_DIR_PHP.'kontakt.php');
   }
   else {
     include(THEME_DIR_PHP.'page.php');
   }					}
}
else {
   include(THEME_DIR_PHP.'start.php');
}
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
koljaxyz
Ssr. Bludit
Posts: 12
Joined: Thu Apr 30, 2020 10:24 am

Ich habe den Code in die index.php gepackt, das verursacht einen Error.
Was meinst Du mit "auch das Page Template drunter ausgegeben"?
Auf der Startseite wurde erst der Inhalt mit dem start.php Template dargestellt und dann noch zusätzlich mit dem page.php Template. Also doppelter Content.

Image

Wie funktioniert das eigentlich? Müsste ich dort "kontakt.php" eintragen? Oder nur "kontakt"? Also es funktioniert beides nicht. Wie erlaube ich meinem Theme Templates zuzuordnen?
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:

koljaxyz wrote: Fri May 01, 2020 11:12 am Ich habe den Code in die index.php gepackt, das verursacht einen Error.
Welchen Code verwendest Du nun?
Wie funktioniert das eigentlich? Müsste ich dort "kontakt.php" eintragen? Oder nur "kontakt"? Also es funktioniert beides nicht. Wie erlaube ich meinem Theme Templates zuzuordnen?
Das funktioniert derzeit noch nicht.
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
koljaxyz
Ssr. Bludit
Posts: 12
Joined: Thu Apr 30, 2020 10:24 am

Edi wrote: Fri May 01, 2020 1:40 pm Welchen Code verwendest Du nun?
Der Code, den du als letztes hier geschrieben hast, unter "Du kannst folgendes verwenden:" hat den Ferhler bei mir verursacht. Folgenden Code habe ich jetzt gerade drin und dieser funktioniert:

Code: Select all

<?php
	if ($WHERE_AM_I == 'page') {
		if ($page->slug() == 'home') {
			include(THEME_DIR_PHP.'start.php');
		}
		else {
			include(THEME_DIR_PHP.'page.php');
		}
	}
	else {
		include(THEME_DIR_PHP.'home.php');
	}
?>
Aber ich möchte ja für die Kontaktseite ein weiteres Template verwenden.
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:

Sorry, ich habe da ein Durcheinander gemacht (ich war der Meinung ich hätte den Code einmal so verwendet und nicht mehr getestet).

Richtig ist:

Code: Select all

if ($WHERE_AM_I == 'page') {
   if ($page->slug() == 'start') {
      include(THEME_DIR_PHP.'start.php');
   }
   elseif ($page->slug() == 'kontakt') {
      include(THEME_DIR_PHP.'kontakt.php');
   }
   else {
      include(THEME_DIR_PHP.'page.php');
   }
}
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
Post Reply