Templates: %ws_compare% schachtelbar?

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
RKnud

Templates: %ws_compare% schachtelbar?

Beitrag von RKnud »

Kollegen,
kann ich in Templates die Anweisung ws_compare verschachteln?
In diesem Teil meiner Page will ich (innerhalb eines Monats-Templates) einen Kalender bauen (Tabelle 3x4 mit Monatsnamen), der den direkten Link zu einem Monat des Jahres erlaubt, aus dem der gerade betrachtete Monat stammt. Zwei Einschränkungen:
a) in 2004 habe ich nur Monate ab September,
b) für die Folgejahre kann ich nur Monate verlinken, die bereits vergangen sind.
Ich versuche in folgender Abfrage zunächst zu klären, ob das Jahr des Monats größer als 2004 ist. Wenn ja, dann soll geprüft werden, ob der aktuelle Monat größer als der hier zu verlinkende ist (z.B. Mar).
Kein Link für Jahr 2004 und %ws_month%<= 3.
Warum funktioniert das nicht?

Code: Alles auswählen

<TD>%ws_compare&#91;1&#93;=%ws_year%~2004~%ws_compare&#91;1&#93;=%ws_month%~3~<A href="/%ws_year%/his%ws_year%03.html">Mar</A>~Mar%~Mar%</TD>

liest sich doch so&#58;

<TD>%ws_compare&#91;1&#93;=%ws_year%~2004
      ~
           %ws_compare&#91;1&#93;=%ws_month%~3
           ~
              <A href="/%ws_year%/his%ws_year%03.html">Mar</A>
           ~
               Mar
           %
      ~
          Mar
     %</TD>
RKnud

Beitrag von RKnud »

Kann das an der beschränkung der Template-Zeilen liegen?
Oder sind damit nur Zeilen ala %templatebgin% gemeint? Welche Variable in der CFG wäre zu ändern??
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Reiner,
ich fürchte, man kann die ws_compare so nicht verschachteln (Problem: zweimaliges Vorkommen in einer Zeile)
Leider liegen mir auch keine näheren Dokumentationen zu diesem Poblem vor.
Du könntest aber dieses Problem insofern vielleicht umgehen (reine Vermutung von mir), dass du die Anweisung ws_setmem einsetzt.
Also zuerst mit ws_compare vergleichen und dann ws_setmem zuweisen. Nun anstatt des 2. compare-Befehls die ws_getmem-Anweisung verwenden. Hier wird wohl nur Ausprobieren helfen.
Antworten