Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 27. Mai 2012 13:07
- elementz
- hat von CMS/ms gehört
- Registriert: 01. Mai 2012
- Beiträge: 14
[GELÖST] Wie Global Content Block abhängig von aufgerufener Seite auswählen
Hi Leute,
ich habe zwei unterschiedliche content blocks: carouselA und carouselB.
Es soll entweder der eine, oder der andere content block dargestellt werden, abhängig von der Seite die gerade dargestellt wird.
carouselB soll eigentlich nur auf einer Seite und ihren jeweiligen Unterseiten dargestellt werden, also:
Seite01 -> carouselA
Seite02 -> carouselB
Seite02a -> carouselB
Seite02b -> carouselB
Seite03 -> carouselA
Seite04 -> carouselA
Meine Herangehensweise scheint aber nicht richtig zu funktionieren, und ist wahrscheinlich etwas umständlich.
Momentan versuche ich es per conditional im Template, also:
{if $show_carouselB == "1"}
{global_content name='carouselB'}
{else}
{global_content name='carouselA'}
{/if}
Auf der jeweiligen Seite die carouselB anzeigen soll, setze ich dann unter den zusätzlichen smarty tags, also hier:
Pages > Edit page > Options > "Smarty data or logic that is specific to this page"
folgendes:
{assign var="show_carouselB" value="1"}
Leider scheint das so nicht zu funktionieren. Entweder ist mein snippet da oben falsch, oder es hakt irgendwo anders.
Ich bin mir nicht so ganz sicher, ob mein conditional da oben überhaupt richtig funktioniert.
Ausserdem frage ich mich die ganze Zeit, ob ich das nicht alles in eine Klammer schreiben kann, also ungefähr so:
{if ($show_carouselB == "1")
global_content name='carouselB';
else
global_content name='carouselA';
}
Grundsätzlich frage ich mich, ob es nicht auch einen eleganteren Weg gibt, das Ganze zu lösen, also in Pseudocode:
if (Seite02 oder Unterseite von Seite02)
{global_content name='carouselB'}
else
{global_content name='carouselA'}
Ich hoffe ich habe mich einigermassen verständlich ausgedrückt.
Kann jegliche Hilfe gebrauchen. Danke schonmal.
Beitrag geändert von elementz (27. Mai 2012 13:08)
Offline
#2 27. Mai 2012 13:22
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Wie Global Content Block abhängig von aufgerufener Seite auswählen
Du könntest mal grundsätzlich nach der übergeordneten Seite fragen indem du z.B. das Modul Toolbox oder CGSimpleSmarty installierst. Wobei ich Toolbox favorisieren würde.
In deiner Template notierst du dann:
{$tbtools->getParentAlias('','pageparent')}{* Fragt nach dem Parentalias *}
{* Wenn aktuelle Seite oder Parentseite den Alias Seite02 hat...*}
{if $page_alias eq "Seite02" || $pageparent eq "Seite02"}
{global_content name='carouselB'}
{else}
{global_content name='carouselA'}
{/if}
Dann brauchst du im Smartyfeld nicht extra assignen.
Offline
#3 27. Mai 2012 13:47
- elementz
- hat von CMS/ms gehört
- Registriert: 01. Mai 2012
- Beiträge: 14
Re: [GELÖST] Wie Global Content Block abhängig von aufgerufener Seite auswählen
Vielen Dank Klenkes, deine Lösung scheint zu funktionieren!
Offline
Seiten: 1