Zum Inhalt springen

Lightbox mit TS einbinden, Problem mit TSFE:lastImgResourceInfo

Erstellt am 18. November 2009 · 1 Antwort · letzte Antwort am 8. Dezember 2009

Tags: Frage

zapp ·

Hallo zusammen,

ich habe ein kleines Problem. Auf einer Seite möchte ich den Lightbox Klon "Bumpbox" einsetzen. In der Bumpbox kann man recht bequem praktisch jeden Inhalt öffnen.

Allerdings erwartet das Skript das man im Link unter rel="" die Breite / Höhe der Box mitgibt, einen automatischen Rezise gibt es nicht.

Die Extension habe ich über TS eingebunden (siehe unten), in meiner Logik wollte ich die Dimensionen des Bildes folgender Zeile einbinden:

ATagParams = rel="{TSFE:lastImgResourceInfo|0}-{TSFE:lastImgResourceInfo|1}" class="bumpbox"

Das interessant ist, es werden die Dimensionen des VORHERIGEN Bildes eingebunden. Vermutlich habe ich da ein Verständnissproblem im Bezug auf "lastImgResourceInfo". Ich dachte eigentlich das gibt mir die Info der letzten IMG_RESOURCE Feldes aus.

Im TS unten ist der letzte Aufruf eines IMG_RESOURCE Objektes

parameter.cObject = IMG_RESOURCE
parameter.cObject.file.import.data = TSFE:lastImageInfo|origFile

TSFE:lastImageInfo|origFile gibt den richtigen Dateifad an, aber ich habe keine Möglichkeit gefunden die Dimensionen auszulesen. TSFE:lastImageInfo|0 gibt mir nur die Dimensionen des letzten generierten Thumbnails aus.

Hier ist noch der vollständige Code:

tt_content.image.20.1 {
  
    # Bumpbox einschalten
    imageLinkWrap >
    imageLinkWrap = 1
    imageLinkWrap {

        enable.field = image_zoom
        enable.ifEmpty.typolink.parameter.field = image_link
        enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
        enable.ifEmpty.typolink.returnLast = url

        typolink {
            target = {$styles.content.links.target}
            extTarget = {$styles.content.links.extTarget}

            parameter.cObject = IMG_RESOURCE
            parameter.cObject.file.import.data = TSFE:lastImageInfo|origFile
            parameter.cObject.file.maxW = 800
            parameter.cObject.file.maxH = 600
    
            parameter.override.field = image_link
            parameter.override.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
            parameter.override.if.isTrue.field = image_link

            title.field = imagecaption // header
            title.split.token.char = 10
            title.split.returnKey.data = register : IMAGE_NUM_CURRENT
       
            ATagParams = rel="{TSFE:lastImgResourceInfo|0}-{TSFE:lastImgResourceInfo|1}" class="bumpbox"
            #title="{field:header}"
            #ATagParams.override = rel="{TSFE:lastImageInfo|0}-{TSFE:lastImageInfo|1}" class="bumpbox"
            
            ATagParams.insertData = 1
            #ATagParams.if.isTrue.field = image_zoom
        }
    }
}

Vielleicht hat jemand auch eine andere Lösung parat um die Dimensionen des verlinkten Bildes auszulesen. Ich bin momenten etwas ratlos.

Viele Dank!

Florian

Julian.​Hofmann ·

Hallo Florian.

Deine gedankliche Logik scheint mir stimmig. Für das cObject IMG_RESOURCE kann man die Daten im TypoScript mit TSFE:lastImgResourceInfo|* verwenden, für das IMAGE-Objekt mit TSFE:lastImageInfo|*

Warum Dein TS dennoch nicht funktioniert:
Das Problem dürfte direkt in der typolink()-Funktion des Cores liegen bzw. in deren Abarbeitungsreihenfolge. Werfen wir kurz einen Blick in den Code.

$finalTagParts['aTagParams'] = $this->getATagParams($conf);

$link_param = trim($this->stdWrap($conf['parameter'],$conf['parameter.']));

Es werden also zuerst die A-Tag-Parameter ermittelt und danach erst die Link-Parameter verarbeitet. Dadurch wird Deine IMG_RESSOURCE aus Zeile 17) nach dem Setzen der A-Tag-Parameter verarbeitet. Somit "weiß" TYPO3 zum Zeitpunkt der A-Tag-Params noch nichts über die IMG_RESSOURCE.

Viele Grüße
Julian