Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#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
. 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
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
.
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:
Duplicate content block: content_en
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
.
Mit dem Parameter assign wird der Inhalt vollständig zur Smarty Variablen. Und die kann mit
{$Spalte_links} ausgegeben werden. Den content Tag brauchst du dann nicht mehr.
Offline
Seiten: 1
