Überschrift für News ausblenden, wenn keine vorhanden
Überschrift für News ausblenden, wenn keine vorhanden
Hallo,
ich habe auf eine Startseite ein paar News integriert.
Problem:
Wenn es mal keine News gibt, dann soll auch die Überschrift News nicht erscheinen.
Diese wird jedoch vom CP News ausgegeben, der wiederum nicht mit den News (bei den Artikeln) kommuniziert.
Vom Prinziep her könnte man ja eine Var abfragen, die nur vorhanden ist, wenn eine News ausgegeben wird.
Nur welche könnte das sein?
Gibt es da einen Workaround?
Grüße, Spielplan
ich habe auf eine Startseite ein paar News integriert.
Problem:
Wenn es mal keine News gibt, dann soll auch die Überschrift News nicht erscheinen.
Diese wird jedoch vom CP News ausgegeben, der wiederum nicht mit den News (bei den Artikeln) kommuniziert.
Vom Prinziep her könnte man ja eine Var abfragen, die nur vorhanden ist, wenn eine News ausgegeben wird.
Nur welche könnte das sein?
Gibt es da einen Workaround?
Grüße, Spielplan
Re: Überschrift für News ausblenden, wenn keine vorhanden
Nur eine Idee, aber das hast du ja schnell getestet:
Sieh mal in die ContentPart-Vorlage, da sollte so etwas in der Art drin sein:
Sieh mal in die ContentPart-Vorlage, da sollte so etwas in der Art drin sein:
Ich würde das mal so ändern:<!--NEWS_LIST_START//-->
[TITLE]<h3>{TITLE}</h3>[/TITLE]
[SUBTITLE]<h4>{SUBTITLE}</h4>[/SUBTITLE]
[NEWS_ENTRIES]{NEWS_ENTRIES}[/NEWS_ENTRIES]
...
<!--NEWS_LIST_START//-->
[NEWS_ENTRIES]
[TITLE]<h3>{TITLE}</h3>[/TITLE]
[SUBTITLE]<h4>{SUBTITLE}</h4>[/SUBTITLE]
{NEWS_ENTRIES}[/NEWS_ENTRIES]
...
Re: Überschrift für News ausblenden, wenn keine vorhanden
Funktioniert.
Dann steckt in der Ausgabe der Bereiche wohl schon eine Abfrage drin, ob überhaupt
was zum Ausgeben vorhanden ist. Ist nachtürlich toll — wenn man es weiß. Steht das
irgendwo beschrieben?
Viele Grüße und Danke! Spielplan
Dann steckt in der Ausgabe der Bereiche wohl schon eine Abfrage drin, ob überhaupt
was zum Ausgeben vorhanden ist. Ist nachtürlich toll — wenn man es weiß. Steht das
irgendwo beschrieben?
Viele Grüße und Danke! Spielplan
Re: Überschrift für News ausblenden, wenn keine vorhanden
Diese Art der Abfrage in den ContentPart-Templates macht folgendes:
Die (mit identischem Namen versehene) aussen liegende eckige Klammer bewirkt eine Abfrage, ob der innenliegende (geschweifte Klammer) Bezeichner einen Inhalt besitzt.
Nur wenn dort also Inhalt hinterlegt (im CP eingetragen) ist, dann wird die Anweisung zwischen den roten Klammern umgesetzt.
Ist kein Inhalt vorhanden, wird der komplette Bereich zwischen der umfassenden roten (Abfrage-)Klammer ausgelassen.
Wenn man das weiss, ist das Leben mit phpwcms doch ziemlich leicht, Es eröffnen sich nahezu ungeahnte Möglichkeiten!
Ob das irgendwo nachzulesen ist? Nach meinen vergangenen Erfahrungen mit phpwcms habe ich garnicht mehr danach gesucht
Die im grünen Bereich eingetragenen Bezeichnet stellt den eigentlichen Inhalt des ContentParts dar.[INHALT]<h3>{INHALT}</h3>[/INHALT]
Die (mit identischem Namen versehene) aussen liegende eckige Klammer bewirkt eine Abfrage, ob der innenliegende (geschweifte Klammer) Bezeichner einen Inhalt besitzt.
Nur wenn dort also Inhalt hinterlegt (im CP eingetragen) ist, dann wird die Anweisung zwischen den roten Klammern umgesetzt.
Ist kein Inhalt vorhanden, wird der komplette Bereich zwischen der umfassenden roten (Abfrage-)Klammer ausgelassen.
Wenn man das weiss, ist das Leben mit phpwcms doch ziemlich leicht, Es eröffnen sich nahezu ungeahnte Möglichkeiten!
Ob das irgendwo nachzulesen ist? Nach meinen vergangenen Erfahrungen mit phpwcms habe ich garnicht mehr danach gesucht
Re: Überschrift für News ausblenden, wenn keine vorhanden
Danke für die Erklärung.
Grüße, Spielplan
Grüße, Spielplan
Re: Überschrift für News ausblenden, wenn keine vorhanden
Manchmal findet sich auch so etwas wie in der imagespecial.tmpl:
Was diese "Else" macht sollte eigentlich selbsterklärend sein.
Das geht leider nicht nicht durchgängig bei allen Objekten. Also immer darauf achten, ob das schon in einer Template-Datei für den entsprechenden Contentpart verwendet wurde.
Jetzt gerade könnte ich mal wieder so etwas hier bei einer Vorlage fürs Seitenlayout gebrauchen - geht aber nicht.
Code: Select all
[CAPTION]<p>{CAPTION}</p>[/CAPTION][CAPTION_ELSE]<p>{IMGNAME}</p>[/CAPTION_ELSE]
Das geht leider nicht nicht durchgängig bei allen Objekten. Also immer darauf achten, ob das schon in einer Template-Datei für den entsprechenden Contentpart verwendet wurde.
Jetzt gerade könnte ich mal wieder so etwas hier bei einer Vorlage fürs Seitenlayout gebrauchen - geht aber nicht.
Code: Select all
[RIGHT]<div id="rechts">
{RIGHT}
</div>[/RIGHT]
Re: Überschrift für News ausblenden, wenn keine vorhanden
Dann versuch doch mal das (dann sollte eigentlich der nicht benutzte Code kommentiert werden):
[Wenn es mit dem {RIGHT} nicht klappt, weil kein [RIGHT][/RIGHT] RT existiert, es sind einige Fälle vorhanden, wo nur die ELSE Abfrage nicht vorhanden ist, dann kann man es zumindest verwenden!?
Oder - Oliver wird mich steinigen - das hier (dann sollte gar kein unnötiger Code generiert werden):
[Wenn es mit dem {RIGHT} nicht klappt, weil kein [RIGHT][/RIGHT] RT existiert, es sind einige Fälle vorhanden, wo nur die ELSE Abfrage nicht vorhanden ist, dann kann man es zumindest verwenden!?
Code: Select all
[RIGHT]<div id="rechts">
{RIGHT}
</div>[/RIGHT]
[RIGHT]<!--[/RIGHT]
Hier kommt der komplette "RIGHT_ELSE" Kram rein!!!
[RIGHT]//-->[/RIGHT]
Code: Select all
[RIGHT]<div id="rechts">
{RIGHT}
</div>[/RIGHT]
[RIGHT][PHP]/*[/RIGHT]
Hier kommt der komplette "RIGHT_ELSE" Kram rein!!!
[RIGHT]*/[/PHP][/RIGHT]
Re: Überschrift für News ausblenden, wenn keine vorhanden
Da hast du mich falsch verstanden. Ich bräuchte da kein [RIGHT_ELSE] sondern einfach nur ein [RIGHT]. Innerhalb des Seitentemplates (unter Admin>Vorlagen) kann man das aber leider nicht nutzen. Wäre halt schön, da ich mir damit ein paar Template-Varianten sparen könnte...
Re: Überschrift für News ausblenden, wenn keine vorhanden
Verwende doch {RIGHT} und {LEFT} einfach gar nicht und nutze anstelle eigene CustoBlocks {RECHTS} und {LINKS}.
Ganz so blöd sind "Kunden" auch nicht, das bringt man denen schon bei!
Dann kannst du doch alles wie gewünscht in die Zusatzfelder packen, was du nur bei Bedarf (nur wenn Inhalt vorhanden) benötigst.
Einschliesslich zusätzlicher CSS Klassen und Formatierungen (inLine oder besser durch Aufruf eigener CSS-Dateien) sowie JS-Scripts etc.
In den Hauptblock des Templates fügst du dann an der passenden Stelle nur noch ein: {RECHTS} bzw. {LINKS}
Auf diese Weise hast du genau die Funktion, die du suchst!
Nur heisst die nicht mehr [RIGHT]{RIGHT}[/RIGHT] sondern nur noch {RECHTS}
Ich mach das schon seit ein paar Jahren so und das klappt wunderbar.
So komme ich meist mit einem einzigen Haupttemplat aus, der Rest wird über den vorhandenen Inhalt in den unterschiedlichen CustoBlocks gesteuert.
Versuchs und in spätestens 10 Minuten siehst du selber: Das KLAPPT tatsächlich!
Ganz so blöd sind "Kunden" auch nicht, das bringt man denen schon bei!
Dann kannst du doch alles wie gewünscht in die Zusatzfelder packen, was du nur bei Bedarf (nur wenn Inhalt vorhanden) benötigst.
Einschliesslich zusätzlicher CSS Klassen und Formatierungen (inLine oder besser durch Aufruf eigener CSS-Dateien) sowie JS-Scripts etc.
In den Hauptblock des Templates fügst du dann an der passenden Stelle nur noch ein: {RECHTS} bzw. {LINKS}
Auf diese Weise hast du genau die Funktion, die du suchst!
Nur heisst die nicht mehr [RIGHT]{RIGHT}[/RIGHT] sondern nur noch {RECHTS}
Ich mach das schon seit ein paar Jahren so und das klappt wunderbar.
So komme ich meist mit einem einzigen Haupttemplat aus, der Rest wird über den vorhandenen Inhalt in den unterschiedlichen CustoBlocks gesteuert.
Versuchs und in spätestens 10 Minuten siehst du selber: Das KLAPPT tatsächlich!
Re: Überschrift für News ausblenden, wenn keine vorhanden
Gibts denn keine Möglichkeit, die News komplett auszublenden.
Ich habe die News im Container {LEFT} den ich via [LEFT] bzw. [LEFT_ELSE] einbinde.
Wenn es keine News gibt, soll {LEFT} auch garnicht angeszeigt werden. Das geht aber leider nur, wenn man die CP News auf unsichtbar stellt?! Umständlich! Ginge das auch anders?
Ich habe die News im Container {LEFT} den ich via [LEFT] bzw. [LEFT_ELSE] einbinde.
Wenn es keine News gibt, soll {LEFT} auch garnicht angeszeigt werden. Das geht aber leider nur, wenn man die CP News auf unsichtbar stellt?! Umständlich! Ginge das auch anders?
- Oliver Georgi
- Site Admin
- Posts: 9909
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Überschrift für News ausblenden, wenn keine vorhanden
Wo ist das Problem?
Lediglich den ELSE Teil gibt es nicht dokumentiert im Standardtemplate.
Code: Select all
[NEWS_ENTRIES]
<h1>Achso!</h1>
{NEWS_ENTRIES}
[/NEWS_ENTRIES]
[NEWS_ENTRIES_ELSE]
<h1>News gibts heute keine!</h1>
[/NEWS_ENTRIES_ELSE]
Re: Überschrift für News ausblenden, wenn keine vorhanden
Klar, das kenne ich. Das Problem ist doch folgendes: angenommen ich lasse den CP News in {LEFT} anzeigen. Natürlich kann ich im Template für den CP News die Tags wie [NEWS_ENTRIES] usw. benutzen. Wenn ich aber keine News habe, wird im Haupttemplate in {LEFT} nichts angezeigt. Klar. Aber eigentlich hätte ich dann das {LEFT} gar nicht da. Das ginge, wenn die [NEWS_ENTRIES] auch im Haupttemplate gerendert werden würden.
Ich hoffe, du verstehst mich.
Ich hoffe, du verstehst mich.
- Oliver Georgi
- Site Admin
- Posts: 9909
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Überschrift für News ausblenden, wenn keine vorhanden
Ich verstehe, aber das löst man dann alternativ, da auch
[LEFT]{LEFT}[/LEFT]
kennt. Ansonsten schreibe ich mir dazu eher zusätzliche Prüflogiken.
Code: Select all
<!--NEWS-->[NEWS_ENTRIES]…[/NEWS_ENTRIES]<!--/NEWS-->
Code: Select all
if(strpos($content['all'], '<!--NEWS--><!--/NEWS-->') !== false) {
// no news detected
}
Re: Überschrift für News ausblenden, wenn keine vorhanden
Wo kommt das dann hin?
Angenommen ich habe in {LEFT} wirklich nur die NEWS, falls eben überhaupt welche vorhanden, sonst soll direkt [LEFT_ELSE] greifen, so dass z.B. aus col-3 und col-9 col-12 werden kann. Das ist ja dann aber "trivial".
Aber kannst du bitte nochmal kurz "skizzieren" wie du da deine "Prüflogik" genau implementierst. Bitte!
Code: Select all
if(strpos($content['all'], '<!--NEWS--><!--/NEWS-->') !== false) {
// no news detected
}
Aber kannst du bitte nochmal kurz "skizzieren" wie du da deine "Prüflogik" genau implementierst. Bitte!
- Oliver Georgi
- Site Admin
- Posts: 9909
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Überschrift für News ausblenden, wenn keine vorhanden
der zusätzliche Prüfteil kommt in ein Frontend Render Script.
Probiere doch einfach
Probiere doch einfach
[LEFT_ELSE]
.