- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Leere Variablen im Skript abfragen
Hallo,
ich habe ein Skript, dass innerhalb einer Absatzvorlage ausgefรผhrt wird. Es geht darum eine Datumsausgabe abhรคngig von Gesellschaft zu erstellen. Z.B. DE-> Januar AT-> Jรคnner.
Als default, d.h. wenn kein Datum รผbergeben wird soll das aktuelle Datum genommen werden.
Ich habe es so gelรถst:
import de.espirit.firstspirit.parser.eval.Undefined;
if(gc.getVariableValue("date") instanceof Undefined) date=new Date();
else date=gc.getVariableValue("date");
Bin ich da auf dem richtigen Weg oder gibt es eine einfachere Mรถglichkeit?
Gruร
Julian
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Drees,
jetzt ist es mir aufgefallen. die isEmpty Methode funktioniert natรผrlich nicht auf einem Date Objekt, daher kann sie hier auch nicht verwendet werden.
CMS_RENDER kann ja mit beliebigen Objekten aufgerufen werden. Daher werden sie auf ein instanceof nicht verzichten kรถnnen:
if (gc.getVariableValue("date") instanceof java.util.Date)
date = gc.getVariableValue("date");
else
date = new Date();
So hat es bei mir funktioniert.
Viele Grรผรe
Thorsten Marx
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Drees,
fรผr die Abfrage, ob ein Wert gesetzt ist oder nicht, kรถnnen sie isEmpty() verwenden:
if(gc.getVariableValue("date").isEmpty()) date=new Date();
Viele Grรผรe
Thorsten Marx
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Es will noch nicht so recht!
Das ist mein Aufruf:
$CMS_SET(newDate, class("java.util.Date").new(113,0,01,0,0,0))$
$CMS_RENDER(script:"skript", date:newDate)$
Das ist mein Skript:
if(gc.getVariableValue("date").isEmpty()) date=new Date();
else date=gc.getVariableValue("date");
returnVar=date;
result.setValue(returnVar);
Wenn ich kein "date" รผbergebe bekomme ich das aktuelle Datum - ist ja richtig
Wenn ich aber als "date" newDate รผbergebe bekomme ich keine Ausgabe mehr.
Was habe ich falsch gemacht?
Gruร
Julian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Drees,
jetzt ist es mir aufgefallen. die isEmpty Methode funktioniert natรผrlich nicht auf einem Date Objekt, daher kann sie hier auch nicht verwendet werden.
CMS_RENDER kann ja mit beliebigen Objekten aufgerufen werden. Daher werden sie auf ein instanceof nicht verzichten kรถnnen:
if (gc.getVariableValue("date") instanceof java.util.Date)
date = gc.getVariableValue("date");
else
date = new Date();
So hat es bei mir funktioniert.
Viele Grรผรe
Thorsten Marx
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Okay Danke!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wieso wird hier รผberhaupt ein Skript benรถtigt? Als Template-Code wรผrde das so aussehen:
$CMS_VALUE(date.format("MMMM", "de_at"), default:#global.now.format("MMMM", "de_at"))$
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ist es mรถglich die Locale in der Seitenvorlage zu setzen? Z.B. #global.setLocale(Locale.AUSTRIA) ?
Das wรคre noch praktischer!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
$CMS_SET(#global.locale, class("java.util.Locale").AUSTRIA)$
Das muss aber auch wieder zurรผckgesetzt werden, da der globale Kontext auch fรผr alle folgenden Seiten in der Generierung gilt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Scheinbar ist die Locale nicht bekannt, er springt dann immer auf "en_US" zurรผck. Aber warum ist dem GregorianCalendar dann die Locale "de_AT" bekannt?
$CMS_SET(#global.locale, class("java.util.Locale").new("de_at"))$ funktioniert.
Aber erstellt dann natรผrlich eine leere Locale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Habe jetzt die Lรถsung:
$CMS_SET(#global.locale, class("java.util.Locale").new("DE","AT"))$

