Zum Inhalt springen

ist es möglich innerhalb von Typoscript Berechnungen durchzuführen?

Erstellt am 3. Juli 2006 · 8 Antworten · letzte Antwort am 26. März 2009

Tags: Frage

ingohill ·

hi,

ich möchte ts variablen addieren.
mein ansatz:

test >
test = OBJEKT
test.value = -185+50

warum geht das nicht?
vielen dank im voraus!

-ingo

woida ·

Weil TS keine Programmiersprache ist.
Dein Beispiel wird folgende PHP-Code:

$TS['test']='OBJEKT';
$TS['test.']['value']= '-185+50';
ingohill ·

aha.

kann ich das totzdem irgendwie lösen?

den wert der summe benötige ich für diese anweisung:

..
10.file = GIFBUILDER
10.file {
XY = 50, 25
backColor = red
10 = IMAGE
10.file = fileadmin/test.jpg
10.offset = SUMME, -50
}
..

aber jetzt befürchte, dass dies nicht so ganz funktionieren wird, oder?

-ingo

just2b ·

Hallo,

natürlich kann man mit TS rechnen, sorry wenn ich jetzt wem widerspreche 😉

offset = [10.w]-[20.w]+75,38

lg georg
ps: es sollte auch mulitplizieren/dividieren gehn, aber nie probiert

woida ·

Hi Georg,
nein, im eingentlichen Sinn (und damit meine ich das erste Posting) kann man nicht rechnen!
Sowas:

page.10 = TEXT
page.10.value = 10+20

funktioniert nicht, weil das 10+20 als String angesehen wird. In dem offset-Fall wird auch keine direkte Berechnung durchgeführt, sondern der String (z.b. '[10.w]-[20.w]+75,38') erstmal geparst und dann werden Rechenoperationen auf den einzelnen Teilen durchgeführt.

PS.: Folgende Operationen sind beim offset möglich: - + * / %

Danilo Saft ·

Hallo,

ich hoffe es hilft denjenigen, die diese Seite evtl. über Suchmaschinen finden, noch.

Unsere Mitarbeiter standen vor genau dem gleichen Problem und haben es mit folgendem Code lösen können:

10 = TEXT
10 {
  current = 1
  setCurrent.data = HIER DIE VARIABLE (bei uns: global:HTTP_GET_VARS|ab)
  setCurrent.wrap = | +5 (hier wird die Addition durchgeführt)
  prioriCalc = intval (hier sagen wir Typo, dass es davon ausgehen kann, dass im Text Integerwerte stehen)
}

Ein einfacheres Beispiel würde so aussehen:

10 = TEXT
10 {
  current = 1
  setCurrent.value = 6
  setCurrent.wrap = | +5 
  prioriCalc = intval 
}

Da würde dann als Text "11" ausgegeben.

enKicker ·

Hi Danilo,

nö, da wird bei mir nicht 11 ausgegeben. Ich hab Dein Beispiel so:

page.3 = TEXT
page.3 {
        current = 1
        setCurrent.value = 6
        setCurrent.wrap = | +5
        prioriCalc = intval
      }

umgesetzt, und ausgegeben wird bei mir: 5 (!?).
Warum auch immer.

Klaus

ArminB ·

moin,

ein Ansatz:

10 = TEXT
10 {
  stdWrap.cObject = TEXT
  stdWrap.cObject.dataWrap = 4+3
  stdWrap.prioriCalc = 1
}

Armin