[TYPO3-german] Fehler im TYPO3-Kochbuch: TypoScript-styled-IMGTEXT ?
JoH asenau
info at cybercraft.de
Thu Mar 15 20:14:33 CET 2007
> ich habe ein Problem mirt der Darstellung von Bildern (siehe
> http://lists.netfielders.de/pipermail/typo3-german/2007-March/029489.html)
> und aus diesem Grund beschäftige ich mich intensiv mit dem
> TypoScript-styled-IMGTEXT Script aus dem TYPO3-Kochbuch.
Nur mal so nebenbei: Wenn Du wirklich noch lernst, ist das wirklich harter
Tobak ;-)
Ich sehe auch nicht, wie Dir das bei Deinem cropscale Problem weiterhelfen
soll, weil das kein TypoScript Proble ist, sondern ein Bug im Core.
> Jetzt habe ich ein Problem mit folgender Passage und bitte Euch meine
> Erkentnisse zu bestätigen:
> singleimageWidth.cObject = COA
> singleimageWidth.cObject {
> 10 = TEXT
> 10.data = register:singleimageWidth1
> 10.prioriCalc = intval
> 10.if.value.data = register:singleimageWidth1
> 10.if.value.prioriCalc = intval
> 10.if.isLessThan.field = imagewidth
> 10.if.negate = 1
> 20 = TEXT
> 20.field = imagewidth
> 20.if.value.data = register:singleimageWidth1
> 20.if.value.prioriCalc = intval
> 20.if.isLessThan.field = imagewidth
> }
>
> Hier wird die Breite eines einzelnen Bildes bestimmt.
> In singleimageWidth1 wird die maximale Breite eines einzelnen Bildes
> berechnet - Funktioniert
Da sollte also immer ein Wert > 0 vorhanden
> Und nun geht's los:
> In Ebene 10 wird der errechnete Wert als Inhalt bestimmt, dann mit
> dem Feld imagewidth verglichen und ausgegeben falls der errechnete
> Wert kleiner ist als der Wert im Feld imagewidth - Stimmt das?
Nicht ganz, denn es wird abgefragt, ob der Wert in imagewidth kleiner ist
und dann das Ergebnis per negate umgekehrt.
10 gilt also wenn singleimageWidth1 größergleich imagewidth ist.
> In Ebene 20 wird das Feld imagewidth als Inhalt bestimmt, dann der
> erechnete Wert mit dem Feld imagewidth verglichen und imagewidth wird
> ausgegeben wenn der errechnete Wert größer ist als der Wert im Feld
> imagewidth - Stimmt das? Sollte eigentlich stimmen, denn das
> funktioniert auch.
Das ist soweit korrekt.
Es soll damit festegstellt werden, ob die gewünschte Bildbreite den durch
andere Parameter zur Verfügung gestellten Rahmen sprengen würde.
Falls dies so ist, wird die maximal zulässige Breite genommen, ansonsten die
gewünschte.
> Jetzt kommt allerdings das Problem: Wenn ich keinen Wert im Feld
> imagewidth eintrage wird in obiger Passage kein Wert generiert und
> dann funktioniert das ganze Script nicht mehr.
> Kann das sein?
Das ist denkbar, obwohl eigentlich ein nicht gesetztes Feld einer 0
entsprechen müßte.
(Wir haben seinerzeit alle möglichen Varianten getestet, jedoch kann es
durchaus sein, daß wir den Fall "überhaupt keine Breite" nicht
berücksichtigt hatten.)
Du könntest jedoch sicherheitshalber ein "ifEmpty" dazustricken, das den
Wert "0" setzt, wenn das Feld selbst nichts zurückliefert.
10.if.isLessThan.ifEmpty = 0
und
20.if.isLessThan.ifEmpty = 0
Wobei diese Rezeptserie im Kochbuch mehr als Proof of Concept gedacht ist,
der die Möglickeiten von TypoScript bis zum Anschlag ausreizt und weniger
als echte Anwendung.
Inzwischen ist CSS-styled-content in diesem Bereich ziemlich rund, weswegen
Du auf die rein TS basierte Ausgabe durchaus verzichten kannst.
Zumal dieses Rezept keine Lösung für Dein ursprüngliches Cropscale Problem
darstellt.
HTH
Joey
--
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your gob sometimes!)
Dieter Nuhr, German comedian
openBC/Xing: http://www.cybercraft.de
T3 cookbook: http://www.typo3experts.com
More information about the TYPO3-german
mailing list