Templateverwaltung mit CGSimpleSmarty - Frage

Hilfe zu Modulen und Tags
Post Reply
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Templateverwaltung mit CGSimpleSmarty - Frage

Post by antibart »

Hi,

Um diverse Abweichungen des Basistemplate in einer Templatedatei zu verwalten, wurde mir ja hier das Modul CGSimpleSmarty empfohlen, was auch sehr gute Dienste tut.



Meine Kenntisse hören allerdings ab da auf, wo ich innerhalb eines Menülevels das Template flexibel (also ohne es einzelnen Seiten zuzuordnen) wechseln will.

Also zum Beispiel so:

1.
....1.1 Template 1
....1.2 Template 2
....1.3 Template 2


Ich dachte an sectionheader oder separator. Was allerdings mit den mir bekannten Operatoren nicht so recht gelingen will.
Abweichende Templates eine Ebene "nach unten" zu verschieben, wäre eine Möglichkeit, aber angesichts der Menge an Inhalten nur eine Notlösung.

Kann mir jemand einen Tipp geben, wie ich Sectionheader oder Separator als Bedingung zuweisen kann?

Falls es nicht geht: wie kann ich array-ähnlich mehreren page_alias am kürzesten ein identisches Template zuweisen, ohne immer die ganze Zeile  mit || (oder) zu wiederholen?

Also kürzer als so

Code: Select all

{if $page_alias == 'home' || $page_alias == 'impressum'} tüdelüt {/if} 
Last edited by antibart on Fri Feb 27, 2009 11:32 am, edited 1 time in total.
cyberman

Re: Templateverwaltung mit CGSimpleSmarty - Frage

Post by cyberman »

Um wie viele Templates geht es denn?

Mit CMSms kannst du ja den Page-Alias und mit CGSimpleSmarty den root- und den parent-alias abdecken.

Und dir ist klar, dass du damit das bereits vorhandene CMSms-Handling, jeder Seite ein separates Template zuweisen zu können, quasi noch mal erfinden willst ;)?

Für den Separator oder Sectionheader fällt mir auf die Schnelle nix ein.
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: Templateverwaltung mit CGSimpleSmarty - Frage

Post by antibart »

cyberman wrote: Um wie viele Templates geht es denn?
grob geschätzt etwa 6-7.
cyberman wrote: Mit CMSms kannst du ja den Page-Alias und mit CGSimpleSmarty den root- und den parent-alias abdecken.
Klar ... die Templates wechseln aber auch innerhalb einer Ebene und die Anzahl der Seiten ist flexibel.
cyberman wrote: Und dir ist klar, dass du damit das bereits vorhandene CMSms-Handling, jeder Seite ein separates Template zuweisen zu können, quasi noch mal erfinden willst ;)?
Ja, das ist klar. Ich würde dem Redakteur diese Arbeit gern ersparen, da diese Seite seeehr umfangreich wird und es evtl wechselnde Redakteure geben wird. Außerdem ändern sich nur bestimmte Teile des Layouts, nicht das komplette Template. Mal vier Kästen ohne Submenü, mal klassiche drei Spalen mit Submenü...
cyberman wrote: Für den Separator oder Sectionheader fällt mir auf die Schnelle nix ein.
Ich könnte mit einer Lösung leben, deren genaue Syntax ich aber noch nicht erfasst habe. Meist wechselt das Template innherhalb einer Ebene nur einmal.

So etwas wie

{if $cgsimple->get_parent_alias() == 'magazin' && $page_alias !="irgendwas" }

Also: alle Seiten unterhalb dieser Root-Ebene AUSSER der einen sollen dieses Template bekommen.

...
Last edited by antibart on Sat Feb 28, 2009 8:52 am, edited 1 time in total.
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: Templateverwaltung mit CGSimpleSmarty - Frage

Post by antibart »

Ich hätte noch ne Idee. Mir fehlt nur der passende Operator.

Die Alias-Namen für bestimmte Templates beginnen alle ähnlich. Zb immer "ausgabe" dann -01, -02, -03 usw...

Wenn die Abfrage also nur den Teil des Alias anwenden würde, dann wäer es leicht.

{if $page_alias == 'ausgabe%'} funktioniert natürlich nicht...

Gibt es so einen "Platzhalter", der nur auf teilweise Übereinstimmung abfragt...
Last edited by antibart on Sat Feb 28, 2009 8:35 am, edited 1 time in total.
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: Templateverwaltung mit CGSimpleSmarty - Frage

Post by antibart »

Einen vorläufige Lösung habe ich gefunden.

Die Seitentitel werden nicht überall gezeigt und heißen immer gleich... sie können also damit die Ausnahmen der Regel definiern.

Also etwa so

Code: Select all

{if $cgsimple->get_parent_alias() == 'magazin' && $cgsimple->get_page_title() != 'Interaktiv'}

<div id ="xxx"></div>

{else}

<div id ="yyy"></div>

{/if}
Damit sind alle Seiten mit dem Titel "Interaktiv", der in jedem Submenü einmal vorkommt, ausgeschlossen und haben eine eigenes Template.

Ich lass das [gelöst] aber erstmal weg.. den zum einen glaube ich noch an eine praktischere Lösung ... zum anderen: wer weiß, was noch kommt.
Last edited by antibart on Sat Feb 28, 2009 10:35 am, edited 1 time in total.
Andiministrator

Re: Templateverwaltung mit CGSimpleSmarty - Frage

Post by Andiministrator »

So was in der Form geht nicht?:
{if $page_alias|truncate:7 eq 'ausgabe'}

Oder die regulären Ausdrücke von Smarty?
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: Templateverwaltung mit CGSimpleSmarty - Frage

Post by antibart »

Andiministrator wrote: So was in der Form geht nicht?:
{if $page_alias|truncate:7 eq 'ausgabe'}

Oder die regulären Ausdrücke von Smarty?
Sorry: ich kenne Smartys reguläre Ausdrücke noch nicht. Das oben kann ich inhaltlich nachvollziehen und demenstprechend auch fuinktionsfähig einsetzen. Aber "truncate:7 eq 'ausgabe'" verstehe ich auch nicht, wenn ich es mir übersetze.  Truncate bedeutet abbrechen/abschneiden. Aber für was steht dort die 7. Mir erschließt sich der Sinn dieser Zeile nicht. Ich kann leider nichts programmieren, was ich nicht verstehe.
Last edited by antibart on Thu Mar 05, 2009 6:55 am, edited 1 time in total.
Andiministrator

Re: Templateverwaltung mit CGSimpleSmarty - Frage

Post by Andiministrator »

truncate:7 schneidet die ersten 7 Zeichen des Inhalts von $page_alias ab.
Wenn also $page_alias = "ausgabe1234" ist, so ist nach der Behandlung mit truncate:7 nur noch "ausgabe" übrig.
Das kannst Du nun mit einer if-Anweisung prüfen.

Mehr über truncate findest Du hier:
http://www.smarty.net/manual/de/languag ... uncate.php

Zu den regulären Ausdrücen von Smarty kannst Du Dich hier informieren:
http://www.smarty.net/manual/de/languag ... eplace.php
Last edited by Andiministrator on Thu Mar 05, 2009 9:34 am, edited 1 time in total.
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: Templateverwaltung mit CGSimpleSmarty - Frage

Post by antibart »

Andiministrator wrote: truncate:7 schneidet die ersten 7 Zeichen des Inhalts von $page_alias ab.
Das lauchtet ein ... Danke für die Erläuterung...
Post Reply

Return to “Module und Tags”