2012-11-07 9 views
6

Zunächst einmal, eine Einschränkung ... Ich bin brandneu in Stash. Ich habe viel darüber gehört, aber das ist das erste Mal, dass ich damit spiele. Ich verstehe das Konzept, aber es fällt mir schwer, diese eine Sache herauszufinden.Versteck: Conditional Content

Ich habe eine Hauptdatei "Wrapper" und alles in diesem Wrapper bleibt gleich. Ich möchte jedoch, dass ich die Sidebar bei Bedarf ein- und ausschalten kann.

Ich würde nicht denken, ich würde eine völlig separate Layout-Wrapper würde ich?

Gibt es eine Möglichkeit, eine boolesche Variable im Stash zu verwenden? (z. B. 2col = TRUE) oder denke ich darüber falsch?

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

3

Ich verwende normalerweise einen Wrapper für jede Vorlage. Es enthält ein {exp:stash:get name="content"}-Tag, wie Ihres, das den einzigen variablen Inhalt enthält.

In meinen individuellen Vorlagen bette ich den Wrapper am Anfang unter Verwendung einer regulären EE-Einbettung ein. {embed="includes/wrapper"}.
Dann stash ich den Inhalt in den Wrapper mit dem {exp:stash:set name="content"} Tag eingefügt werden.
Dies scheint wie das, was Sie gerade tun.

Wenn ich eine Sidebar bedingt anzeigen möchte, könnte ich einfach eine Variable in die Embed geben.
z. {embed="includes/wrapper" show_sidebar="yes"}

In meinem Wrapper würde ich dies tun:

{if embed:show_sidebar} 
    Sidebar stuff. 
{/if} 
+0

ich diese Lösung gefällt. Nie gedacht, eingebettete Variablen im Wrapper einzubetten. Genius. –

+1

Das gleiche Konzept kann mit Stash-Einbettungen im Dev-Zweig erreicht werden. Ich verwende keine EE-Einbettungen mehr zugunsten von Stash-Einbettungen. Sie sind total genial - schnapp dir einfach den Devast von Stash. –

+0

Danke Justin. Ich habe mich noch nicht mit Stash-Einbettungen vertraut gemacht. Wenn sie dieselbe Aufgabe erfüllen können, wäre das eine noch bessere Lösung. –

4

Im Allgemeinen, was ich hier tun würde, ist Setup mehrere Stash bekommt in den Wrapper. Dann können Sie in Ihren individuellen Vorlagen sowohl die Seitenleiste als auch den Hauptinhaltsbereich festlegen. Bei Teilen, in denen Sie Inhalte wiederholen können, z. B. die öffnenden und schließenden divs einer Seitenleiste, können Sie immer einige Snippets in das Versteck ziehen.

Sie können auch exp:stash:not_empty[docs] verwenden, um das div oder den Container für Ihre Seitenleiste innerhalb des Wrappers zu umbrechen.