ist es möglich innerhalb von Typoscript Berechnungen durchzuführen? [Gelöst]

  • ingohill ingohill
    Padawan
    0 x
    41 Beiträge
    0 Hilfreiche Beiträge
    03. 07. 2006, 18:44

    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


  • 1
  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    03. 07. 2006, 19:02

    das geht nicht, da TS keine Programmiersprache ist sondern ein Konfigurationsscript.

  • woida woida
    Flash Gordon
    0 x
    2356 Beiträge
    1 Hilfreiche Beiträge
    03. 07. 2006, 19:03

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

    1. $TS['test']='OBJEKT';
    2. $TS['test.']['value']= '-185+50';

  • ingohill ingohill
    Padawan
    0 x
    41 Beiträge
    0 Hilfreiche Beiträge
    03. 07. 2006, 19:12

    aha.

    kann ich das totzdem irgendwie lösen?

    den wert der summe benötige ich für diese anweisung:
    [TS]..
    10.file = GIFBUILDER
    10.file {
    XY = 50, 25
    backColor = red
    10 = IMAGE
    10.file = fileadmin/test.jpg
    10.offset = SUMME, -50
    }
    ..
    [/TS]

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

    -ingo[/TS]

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    03. 07. 2006, 20:08

    Hallo,

    natürlich kann man mit TS rechnen, sorry wenn ich jetzt wem widerspreche ;)
    [TS]offset = [10.w]-[20.w]+75,38[/TS]

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

  • woida woida
    Flash Gordon
    0 x
    2356 Beiträge
    1 Hilfreiche Beiträge
    03. 07. 2006, 20:35

    Hi Georg,
    nein, im eingentlichen Sinn (und damit meine ich das erste Posting) kann man nicht rechnen!
    Sowas:
    [TS]page.10 = TEXT
    page.10.value = 10+20
    [/TS]
    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 Danilo Sa...
    Jar Jar Binks
    0 x
    1 Beiträge
    0 Hilfreiche Beiträge
    29. 11. 2008, 15:39

    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:

    [TS]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)
    }
    [/TS]

    Ein einfacheres Beispiel würde so aussehen:
    [TS]10 = TEXT
    10 {
    current = 1
    setCurrent.value = 6
    setCurrent.wrap = | +5
    prioriCalc = intval
    }
    [/TS]

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

  • enKicker enKicker
    T3PO
    0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    24. 03. 2009, 15:29

    Hi Danilo,

    nö, da wird bei mir nicht 11 ausgegeben. Ich hab Dein Beispiel so:
    [TS]page.3 = TEXT
    page.3 {
    current = 1
    setCurrent.value = 6
    setCurrent.wrap = | +5
    prioriCalc = intval
    }
    [/TS]
    umgesetzt, und ausgegeben wird bei mir: 5 (!?).
    Warum auch immer.

    Klaus

  • ArminB ArminB
    Jedi-Meister
    0 x
    410 Beiträge
    0 Hilfreiche Beiträge
    26. 03. 2009, 15:48

    moin,

    ein Ansatz:

    [TS]10 = TEXT
    10 {
    stdWrap.cObject = TEXT
    stdWrap.cObject.dataWrap = 4+3
    stdWrap.prioriCalc = 1
    } [/TS]

    Armin

  • 1