Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 26. April 2011 10:25
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Gelöst: Body eine CSS-Klasse zuweisen, falls zweiter Inhaltsblock leer
Da ich mit Smarty nicht so fit bin, hier meine Frage zu einer eventuell leicht zu lösenden Aufgabe:
Ich möchte ein zweispaltiges Layout für den Fall, dass die rechte Spalte (zweiter Content-Bereich) leer bleibt, in ein einspaltiges verwandeln. Dies ist mit zwei Templates leicht machbar, nur muss man dann jedes Mal manuell zwischen zwei Vorlagen umschalten, die sich lediglich um eine vorhandene/nicht vorhandene Klasse im Body-Tag unterscheiden, da alles mit CSS gelöst ist.
Ich würde dem Body lieber gern für den Fall, dass der 2. Inhaltsblock leer ist, mit Smarty eine CSS-Klasse zuweisen; bin mir über die Syntax aber nicht im Klaren.
Meine Überlegung:
Dem Content-Block eine Variable geben, deren Wert innerhalb des Body-Tags überprüfen. Ist der Inhaltsblock leer, wird dem Body eine CSS-Klasse hinzugefügt.
Core-Version: 1.9.4.1
Vielen Dank für Eure Hilfe.
Beitrag geändert von COR9 (26. April 2011 13:51)
Offline
#2 26. April 2011 10:47
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: Gelöst: Body eine CSS-Klasse zuweisen, falls zweiter Inhaltsblock leer
Du kannst den Content mit dem Parameter "assign" einer Variable zuordnen.
{content assign=inhalt1}
{* Abfrage ob ein Inhalt vorhanden *}
{if $inhalt1 != ""}mach was{else}mach was anderes{/if}
{* Inhalt anzeigen *}
{if $inhalt1 != ""}{$inhalt}{/if}
PS: Das ganze kommt aus dem Kopf und kann ev einen Fehler beinhalten.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 26. April 2011 11:21
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Gelöst: Body eine CSS-Klasse zuweisen, falls zweiter Inhaltsblock leer
Danke, Nockenfell, für die schnelle Antwort. Hatte es auch fast so, war mir nur unsicher, wie ich die Inhaltsleere ausdrücke.
Scheint aber woanders zu hängen: Sobald ich dem Contentbereich »assign« hinzufüge, wird jeglicher Inhalt dieses Bereichs nicht mehr angezeigt (im Backend/Editor vorhanden, aber im Frontend nicht), sodass auch nur meine Body-Klasse für leeren Bereich korrekt angezeigt werden kann. Bei der verwendeten Testumgebung handelt es sich allerdings um 1.9.1
Ich probiers jetzt nochmal mit einer jungfräulichen 1.9.4.1
Offline
#4 26. April 2011 11:36
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: Gelöst: Body eine CSS-Klasse zuweisen, falls zweiter Inhaltsblock leer
Nach dem Assign musst du den Content auch irgendwo ausgeben. Wenn du den Content nun der Variable $inhalt1 zuweist, musst du irgendwo im Template ein {$inhalt1} haben.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#5 26. April 2011 12:09
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Gelöst: Body eine CSS-Klasse zuweisen, falls zweiter Inhaltsblock leer
Ich würde es so machen:
{content assign="content"}
{content block="sidebar" assign="sidebar"}
<body>
<div id="content">
{if $sidebar|strip != ''}
<div class="left">
{$sidebar}
</div>
<div class="right">
{/if}
{$content}
{if $sidebar|strip != ''}
</div>
{/if}
</div>
</body>
Wobei dann die Klassen left und right jeweils float:left bzw. float:right und entsprechende Breitenangaben haben.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#6 26. April 2011 13:49
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Gelöst: Body eine CSS-Klasse zuweisen, falls zweiter Inhaltsblock leer
Danke NaN für den Tipp, wobei ich in dem Falle mit YAML arbeite. Deine Lösung ist aber auch schön, da sie weniger Markup produziert.
Danke Euch beiden, nachdem ich nun begriffen habe, dass man mit assign den eigentlichen content-Tag vor den body-Tag bugsieren kann (damit body auch weiß, worum's geht), funktioniert mein Ansatz jetzt auch wie gewünscht.
Offline
Seiten: 1