Überschrift für News ausblenden, wenn keine vorhanden

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
spielplan
Posts: 214
Joined: Sun 8. Jan 2006, 14:56

Überschrift für News ausblenden, wenn keine vorhanden

Post by spielplan »

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
Old Boy
Posts: 1203
Joined: Fri 23. Nov 2012, 13:52

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by Old Boy »

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:
<!--NEWS_LIST_START//-->
[TITLE]<h3>{TITLE}</h3>[/TITLE]
[SUBTITLE]<h4>{SUBTITLE}</h4>[/SUBTITLE]
[NEWS_ENTRIES]{NEWS_ENTRIES}[/NEWS_ENTRIES]
...
Ich würde das mal so ändern:
<!--NEWS_LIST_START//-->
[NEWS_ENTRIES]
[TITLE]<h3>{TITLE}</h3>[/TITLE]
[SUBTITLE]<h4>{SUBTITLE}</h4>[/SUBTITLE]
{NEWS_ENTRIES}[/NEWS_ENTRIES]
...
spielplan
Posts: 214
Joined: Sun 8. Jan 2006, 14:56

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by spielplan »

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
Old Boy
Posts: 1203
Joined: Fri 23. Nov 2012, 13:52

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by Old Boy »

Diese Art der Abfrage in den ContentPart-Templates macht folgendes:
[INHALT]<h3>{INHALT}</h3>[/INHALT]
Die im grünen Bereich eingetragenen Bezeichnet stellt den eigentlichen Inhalt des ContentParts dar.

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 :lol:
spielplan
Posts: 214
Joined: Sun 8. Jan 2006, 14:56

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by spielplan »

Danke für die Erklärung.

Grüße, Spielplan
User avatar
top
Posts: 535
Joined: Fri 11. Aug 2006, 15:03
Location: Eutin

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by top »

Manchmal findet sich auch so etwas wie in der imagespecial.tmpl:

Code: Select all

		[CAPTION]<p>{CAPTION}</p>[/CAPTION][CAPTION_ELSE]<p>{IMGNAME}</p>[/CAPTION_ELSE]
Was diese "Else" macht sollte eigentlich selbsterklärend sein. :wink:

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. :cry:

Code: Select all

    [RIGHT]<div id="rechts">
      {RIGHT}
    </div>[/RIGHT]
Old Boy
Posts: 1203
Joined: Fri 23. Nov 2012, 13:52

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by Old Boy »

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!?

Code: Select all

[RIGHT]<div id="rechts">
   {RIGHT}
</div>[/RIGHT]
[RIGHT]<!--[/RIGHT]
   Hier kommt der komplette "RIGHT_ELSE" Kram rein!!!
[RIGHT]//-->[/RIGHT]
Oder - Oliver wird mich steinigen - das hier (dann sollte gar kein unnötiger Code generiert werden):

Code: Select all

[RIGHT]<div id="rechts">
   {RIGHT}
</div>[/RIGHT]
[RIGHT][PHP]/*[/RIGHT]
   Hier kommt der komplette "RIGHT_ELSE" Kram rein!!!
[RIGHT]*/[/PHP][/RIGHT]
User avatar
top
Posts: 535
Joined: Fri 11. Aug 2006, 15:03
Location: Eutin

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by top »

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... :roll:
Old Boy
Posts: 1203
Joined: Fri 23. Nov 2012, 13:52

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by Old Boy »

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} :D

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!
photojo
Posts: 713
Joined: Wed 15. Nov 2006, 20:02
Location: Regensburg, Germany
Contact:

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by photojo »

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?
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by Oliver Georgi »

Wo ist das Problem?

Code: Select all

[NEWS_ENTRIES]
<h1>Achso!</h1>
{NEWS_ENTRIES}
[/NEWS_ENTRIES]
[NEWS_ENTRIES_ELSE]
<h1>News gibts heute keine!</h1>
[/NEWS_ENTRIES_ELSE]
Lediglich den ELSE Teil gibt es nicht dokumentiert im Standardtemplate.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
photojo
Posts: 713
Joined: Wed 15. Nov 2006, 20:02
Location: Regensburg, Germany
Contact:

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by photojo »

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.
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by Oliver Georgi »

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
}
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
photojo
Posts: 713
Joined: Wed 15. Nov 2006, 20:02
Location: Regensburg, Germany
Contact:

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by photojo »

Wo kommt das dann hin?

Code: Select all

if(strpos($content['all'], '<!--NEWS--><!--/NEWS-->') !== false) {
    // no news detected
}
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!
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Überschrift für News ausblenden, wenn keine vorhanden

Post by Oliver Georgi »

der zusätzliche Prüfteil kommt in ein Frontend Render Script.

Probiere doch einfach [LEFT_ELSE].
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
Post Reply