News-Seite mit statischem Text und Auflistung der Artikel

Post Reply
User avatar
Torsten_Kelsch
Master Bludit
Posts: 140
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Wed May 31, 2017 4:58 pm

Ich beschreibe mein Problem mal im deutschsprachigen Bereich, weil ich es in Englisch nicht so gut erklären könnte.

Der News-Bereich (Blog) soll nicht nur die Beiträge auflisten, sondern darüber noch einen einen einleitenden, statischen Text haben. Das müsste ja dann oberhalb von

Code: Select all

<!-- Show each post on this page -->
<?php foreach ($posts as $Post): ?>
eingesetzt werden. Aber wie? Kopiere ich den Code von page.php und setze ihn hier ein, erscheint eine Fehlermeldung, siehe unten.

Code: Select all

<?php echo $Page->content() ?>
Fatal error: Uncaught Error: Call to a member function content() on null in […]/php/news.php:3 Stack trace: #0 […]/index.php(60): include() #1 […]/bl-kernel/boot/site.php(26): include('/mnt/web206/e3/...') #2 […]index.php(39): require('/mnt/web206/e3/...') #3 {main} thrown in […]/php/news.php on line 3
Anders gesagt, ich möchte erreichen, dass man auf die News-Startseite übers Backend auch Text per Editor eingeben kann. Ich könnte den Text in der Quelldatei hart-codieren, aber was, wenn der Kunde ihn mal irgendwann ändern will? Im Grunde brauche ich ein Mischmasch aus Seite und Blog. Hat jemand eine Lösung parat?
ON ERROR GOTO BED
dirtdiver2010
Master Bludit
Posts: 115
Joined: Fri Jan 15, 2016 6:07 pm

Mon Jun 19, 2017 6:46 pm

Ich weiß nicht ob es wirklich sinnvoll ist, aber vielleicht könntest du das über das About Plugin lösen. Wenn es nur ein bisschen Text ist könnte das funktionieren. Ich weiß jetzt allerdings nicht ob man das Plugin alleine eifach einbinden kann, wenn man noch andere Plugins verwendet...
User avatar
Torsten_Kelsch
Master Bludit
Posts: 140
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Tue Jun 20, 2017 12:59 am

@dirtdiver2010: Ja, müsste ich mal probieren, oder auch mit diesem TEXTAREA-Plugin; und auch CUSTOM TEMPLATE PARAMETERS klingt ganz interessant.

Allerdings denke ich, dass es doch auch per Code im Template gehen müsste; in der Dokumentation finde ich bloß nichts. Schön wäre natürlich auch so eine Sticky-Funktionalität, wie viele Blogsysteme das haben: Da bleibt einfach ein Beitrag immer an oberster Stelle haften. Doch Bludit bietet so was anscheinend nicht.
ON ERROR GOTO BED
dirtdiver2010
Master Bludit
Posts: 115
Joined: Fri Jan 15, 2016 6:07 pm

Tue Jun 20, 2017 6:24 pm

Ich muss irgendwann mal schauen, ich komme nur momentan leider zu gar nichts und mache leider viel zu wenig mit Bludit was mich tierisch nervt :roll:

Die sticky Post Funktion soll glaube ich mit Version 2.0 kommen, ich meine da habe ich irgendwo im englischen Bereich was gelesen. Da haben auch schon mehrere Leute danach gefragt.
User avatar
Torsten_Kelsch
Master Bludit
Posts: 140
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Tue Jun 20, 2017 8:48 pm

dirtdiver2010 wrote:Die sticky Post Funktion soll glaube ich mit Version 2.0 kommen, […]
Das wäre fantastico!
ON ERROR GOTO BED
User avatar
Edi
Site Admin
Posts: 1193
Joined: Sun Aug 09, 2015 5:01 pm
Location: Zurich
Contact:

Wed Jun 21, 2017 10:32 am

Die Verwendung des Plugins About oder Textarea, wie dirtdrive2010 vorschlägt, wäre eine Möglichkeit. Mit kleinen Anpassungen funktioniert das.

Anpassungen Plugin About oder Textaerea

1) Im Plugin "public function siteSidebar()" ersetzten durch "public function pageBegin()" (Zeile 29).

2) Die Funktion mit "global $Url;" ergänzen.

3) Eine if-Bedingung definieren, damit der Plugin-Inhalt nur auf der Hauptseite ausgegeben wird.

Für das Plugin About sieht der Code dann wie folgt aus:

Code: Select all

	public function pageBegin()
	{

	    global $Url;

		if ($Url->whereAmI()=='home') {

			$html  = '<div class="plugin plugin-about">';
			$html .= '<div class="plugin-content">';
			$html .= html_entity_decode(nl2br($this->getDbField('text')));
			$html .= '</div>';
			$html .= '</div>';

			return $html;

		}
	}
}
Anpassung Template home.php

Folgendes Snippet am Anfang des Templates home.php des Themes einfügen, damit die Funktion des Plugins ausgeführt wird:

Code: Select all

<?php Theme::plugins('pageBegin') ?>
Planet Bludit, Tipps, Snippets und nützliche Links. - Newsletter, Informationen zu Bludit (auf Deutsch).
Post Reply