annick_querfeld
I'm new here

Random numbers

Jump to solution

Hallo Zusammen.

Wir machen gerade eine technische Migration von einem anderen CMS auf FirstSpirit.

Ein einem der Module ist in html Reiter eine Variable mit einer Random number zu befüllen.

In der alten Schreibweise sah dass dann zum Beispiel so aus:

<% my_var = Random.rand(112000)%>

Gibt es auch in FirstSpirit die Möglichkeit den Value einer Variable mit einer Random number zu belegen?

Konnte zum Thema random bisher nichts brauchbares in der Doku finden.

Danke für jeden Tipp,

viele Grüße,

Annick

1 Solution

Accepted Solutions
Peter_Jodeleit
Crownpeak employee

Verstehe ich das richtig, das im Template für die Ausgabe nach HTML eine Zufallszahl erzeugt werden soll? Also für den erzeugten HTML-Quellcode?

Wenn ja, dann geht das z.B. über ein Skript, dort kann Java-Syntax benutzt werden. Der Quelltext des Skripters wäre dann z.B. wie folgt:

return new Random().nextInt(112000);

Zu beachten ist dann aber, das dieser Wert sich dann bei jeder Generierung ändert.
Aber nicht bei jeder Auslieferung an den Browser.

Eventuell ist daher JSP oder JavaScript die bessere Wahl, das hängt vom Anwendungsfall ab.

Peter

View solution in original post

0 Kudos
3 Replies
Peter_Jodeleit
Crownpeak employee

Verstehe ich das richtig, das im Template für die Ausgabe nach HTML eine Zufallszahl erzeugt werden soll? Also für den erzeugten HTML-Quellcode?

Wenn ja, dann geht das z.B. über ein Skript, dort kann Java-Syntax benutzt werden. Der Quelltext des Skripters wäre dann z.B. wie folgt:

return new Random().nextInt(112000);

Zu beachten ist dann aber, das dieser Wert sich dann bei jeder Generierung ändert.
Aber nicht bei jeder Auslieferung an den Browser.

Eventuell ist daher JSP oder JavaScript die bessere Wahl, das hängt vom Anwendungsfall ab.

Peter
0 Kudos

Super. Dankeschön

0 Kudos

Hallo,

Auch wenn das Posting schon etwas älter ist - der Vollständigkeit halber noch eine Alternative ohne Beanshell-Skript:

Im HTML-Kanal der Projekteinstellungen folgendes eintragen:

$CMS_SET(set_ps_randomGenerator, class("java.util.Random").new())$

$CMS_SET(set_ps_randomPositiveInt)$$CMS_VALUE(set_ps_randomGenerator.nextInt(47110815))$$CMS_END_SET$

Dann kann man sich in jedem Template eine neue Zufallszahl erzeugen mit

$CMS_VALUE(set_ps_randomPositiveInt)$

So nutzt man letztlich immer denselben Generator (während einer Generierung).

Möchte man die Zufallszahl in einer Variablen speichern, weil man an einer Stelle eine identische Zahl öfter benötigt, muss man .toString() benutzen:

$CMS_SET(set_myRandomint, set_ps_randomPositiveInt.toString())$

Viele Grüße

Michael