Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 18. August 2014 08:13

Dancer62
Server-Pate
Ort: 26345 Bockhorn, Niedersachsen
Registriert: 08. November 2013
Beiträge: 414

[GELÖST] Abfrage, ob {content} vorhanden ist

Hallo Forum,

ich wollte meine bisher drei Templates dahingehend vereinfachen, dass ich - abhängig von den ausgefüllten {content}-Blöcken - nur die ausgefüllten Blöcke anzeigen lasse (die anderen Blöcke sollen daher weder durch Platzhalter, noch durch Leerzeilen angezeigt werden). Im Moment benutze ich je ein Template für 1 Spalte, 2 Spalten, 2 Spalten + 1 Block.
Ich stelle mir das so vor, dass ich vor der Darstellung eines jeden Blocks diesen sinngemäß wie folgt abfrage:

{if content != ""}    <!-- Einbettung/Darstellung des {content}-Blocks nur, wenn er nicht leer ist -->
   {content}
{/if}

Dadurch könnte ich (hoffentlich) das o.g. Ziel erreichen. Allerdings weiß ich nicht, wie ich den Block abfragen muss, damit ich herausfinde, ob er tatsächlich etwas enthält; wobei ich auch noch zwischen verschieden {content}-Blöcken unterscheiden müsste.


Man ist so alt, wie man sich fühlt...

Offline

#2 18. August 2014 08:25

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Abfrage, ob {content} vorhanden ist

Gaaaanz einfach - du musst den Content Block nur einer Variablen zuweisen wink. Dafür kennt der content Tag (so wie alle anderen Core Plugins auch) den Parameter assign.

 
{content block='block1' assign='block1'}

{if $block1 ! = ''} 
... 
{/if} 

Offline

#3 18. August 2014 08:37

Dancer62
Server-Pate
Ort: 26345 Bockhorn, Niedersachsen
Registriert: 08. November 2013
Beiträge: 414

Re: [GELÖST] Abfrage, ob {content} vorhanden ist

Das mag ja stimmen, aber mit

{content block='block1' assign='block1'}

bringe ich den Inhalt von 'block1' doch bereits zur Anzeige oder etwa nicht ? Ich möchte aber vor der Darstellung die Abfrage haben, ob der Block überhaupt etwas enthält, damit ein leerer Block erst gar nicht dargestellt wird (= Leerzeile).

Durch die Befüllung der jeweiligen {content}-Blöcke könnte man dann nämlich elegant (zumindest teilweise) das Aussehen der Webseite steuern, ohne jedesmal das Template anpassen zu müssen.

Beitrag geändert von Dancer62 (18. August 2014 08:38)


Man ist so alt, wie man sich fühlt...

Offline

#4 18. August 2014 08:54

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Abfrage, ob {content} vorhanden ist

Dancer62 schrieb:

Durch die Befüllung der jeweiligen {content}-Blöcke könnte man dann nämlich elegant (zumindest teilweise) das Aussehen der Webseite steuern, ohne jedesmal das Template anpassen zu müssen.

Genau das ist die Absicht dahinter wink.

Schau mal in die Tag-Hilfe - da sollte sinngemäß stehen, dass bei Verwendung des Parameters assign die Ausgabe in eine Variable anstatt auf dem Bildschirm erfolgt.

So kannst du bei komplexen Templates die content Tags (nicht zuletzt der besseren Übersicht halber) als erstes im Template platzieren, um dann im Layout nur noch deren Variablen zu verwenden (die du natürlich wie jede andere Smarty Variable verwenden und verarbeiten kannst).

Offline

#5 18. August 2014 09:40

Dancer62
Server-Pate
Ort: 26345 Bockhorn, Niedersachsen
Registriert: 08. November 2013
Beiträge: 414

Re: [GELÖST] Abfrage, ob {content} vorhanden ist

Prima, aber ich bekomme jetzt folgende Fehlermeldung:

Template bearbeiten schrieb:

Duplicate content block: content_en cry

Ich habe zwar schon das Template nach diesem Bezeichner durchgesehen, aber nichts gefunden. Ich habe die Variablen-Deklaration folgendermaßen durchgeführt (vielleicht liegt ja der Grund hierdrin):

{content block='Spalte links' assign='Spalte_links'}

und gebe ihn mit folgender Bedingung dann aus:

{if $Spalte_links != ''}
   {content $Spalte_links}
{/if}

Man ist so alt, wie man sich fühlt...

Offline

#6 18. August 2014 09:46

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Abfrage, ob {content} vorhanden ist

Hast nur noch einen kleinen Fehler drin wink.

Mit dem Parameter assign wird der Inhalt vollständig zur Smarty Variablen. Und die kann mit

ausgegeben werden. Den content Tag brauchst du dann nicht mehr.

Offline