Unterschiedliche Templates pro Shopseite

@Web-Spirit schrieb:

Hallo Flo,
ich würde das direkt im template machen.

mit:

{if $smarty.server.REQUEST_URI == „/versand-und-kosten“} template1 {else} template2 {/if}

Also ich würde tunlichst davon abraten das so zu machen. 

Problem: Wenn der Seitenname sich verändert dann muss jedes mal das Template angepasst werden. Das bedeutet wieder den Code anpacken! Zudem sieht mir das ganez einfach nicht richtig aus… ich will ja nicht immer die URL bzw URI abfragen müssen.

 

Ich glaube das hier einfach die entsprechende Logik auf dem Template fehlt die dafür sorgt entsprechende tpl einzubauen.

Erstmal was ganz allgemeines. Die Variablen sowie die Pfade werden direkt an die custom/index.tpl übergeben. Wenn hier keine Logik automatisch aufgerufen wird (was auch nicht der Fall ist) liegt es nahe das alle Informationen einfach nur ordnungshalber typenbezeichnete Variablen sind. Also so das ich sie später einfach nur auseinander halten kann.

Jetzt zur Logik

Es gibt 3 TPL-Felder. Diese sollten so eingebunden werden das immer die letzte TPL eingebunden wird… und wenn keine angegeben ist, der Standardsource!

Hier ein Beispiel:

{block name="frontend_index_content"}
    

        {block name="frontend_custom_article"}

            {if !empty($sCustomPage.tpl3path) && $sCustomPage.tpl3path|template_exists}
                {include file=$sCustomPage.tpl3path}
            {elseif !empty($sCustomPage.tpl2path) && $sCustomPage.tpl2path|template_exists}
                {include file=$sCustomPage.tpl2path}
            {elseif !empty($sCustomPage.tpl1path) && $sCustomPage.tpl1path|template_exists}
                {include file=$sCustomPage.tpl1path}
            {else}
                {block name="frontend_custom_article_inner"}
                    {$smarty.block.parent}
                {/block}
            {/if}

        {/block}

    
{/block}

Habe das nicht so getestet… bei mir ist es zwar so im gebrauch aber ich habe in meinem else-Bereich eine andere Gestaltung.

Hier wird erst geschaut ob in tpl3path was drin steht, wenn ja dann wird das TPL eingebunden… wenn nicht dann in 2 und dann in 1… wenn alles nicht zutrifft wird der herkömmliche Inhalt geladen. Es wird auch geprüft ob das TPL existiert. Wenn nicht dann überspringt es auch die IF da sonst Fehler beim Include wären.

Wenn an das hier einbindet dann kann man, so wie in der WIKI beschrieben, TPL-Dateien einbinden.

 

Hoffe das hilft. Auch wenn der Thread schon alt ist. Aber ich habe auch grade danach suchen müssen und durch die Aussagen anderer ist mir erst aufgefallen das eigentlich was in der TPL fehlt. Was evtl. auch in der Wiki ergänzt werden sollte :slight_smile: