Zum Inhalt springen

Smoothgallery: Bildgröße zentral festlegen bei "Text mit Bild"

Erstellt am 8. Oktober 2012 · 2 Antworten · letzte Antwort am 9. Oktober 2012

Tags: Bilder, TYPO3 4, Frage

lhbAdmin ·

Guten Tag zusammen,

bei der Extension Smoothgallery ist es u.a. möglich, die tt_content (Text und Bilder) als Quelle auszuwählen. Die Größe der Bilder kann dann anscheinend nur über die jeweiligen Felder „Breite“ und „Höhe“ im Backend festgelegt werden. Um ein einheitliches Aussehen der Galleriekomponente zu gewährleisten möchte ich diese aber zentral (z.B. durch TS-Konstanten oder TS-Setup) einstellen.

Eine Vorbelegung der beiden Felder per TSconfig-Feld will ich vermeiden, da die Einstellung sich dann ja auch auf alle übrigen „Text und Bilder“-Seiten ohne Smoothgallery auswirkt. Aus demselben Grund kommt auch eine Anpassung von [styles.content.imgtext.maxWInText] nicht in Frage.

Der bisher einzige Ansatz den ich habe ist eine Änderung der setup.txt (siehe unten) – das scheint mir auf Dauer aber ungeeignet, z.B. in Bezug auf Updates. Gibt es eine bessere Lösung?

temp.maxW = TEXT
temp.maxW = 466c
temp.maxW.override.field=imagewidth
temp.maxH = TEXT
temp.maxH = 310c
temp.maxH.override.field=imageheight

TYPO3 Ver. 4.5.3
rgsmoothgallery 1.5.2

Vielen Grüße und Danke für jede Hilfe!

neodot ·

Ja, und zwar nach der allgemeinen Regel:
Nimm nie Änderungen an Extension-Dateien vor, wie hier z.B. an der setup.txt.
Schreibe das statt dessen in ein Extension Template, dann sind auch Updates kein Problem.
Wenn du das in ein Extension-Template packst, das nur für Die Seite mit der Gallery (und Unterseiten) gilt, wirkt es sich auch nur dort aus.
Einfach in der linken Spalte auf Template gehen, die Seite mit der Gallery im Seitenbaum auswählen und dann ein Extension Template anlegen. Da kanst Du alles, was du an der setup.txt ändern willst eintragen. Was du nicht ändern willst, muss nicht rein, du musst also nicht die ganze Konfiguration übernehmen, sondern immer nur deine Modifizierungen.

lhbAdmin ·

Danke erstmal für die Antwort! Leider führt das Anlegen eines Extension-Template mit dem o.g. Code im TS-Setup zu keinerlei Auswirkung.

Hat das möglicherweise damit zu tun, dass der Wert von "temp.maxW" bzw. "temp.maxH" in setup.txt einem anderen Array zugewiesen wird? Zum besseren Verständnis nachfolgend ein Ausschnitt aus der setup.txt:

plugin.tx_rgsmoothgallery_pi1 {

  [...]

  big = IMG_RESOURCE
  big {
    file.maxW = 460
    file.maxH = 345
  }

  big2 = IMG_RESOURCE
  big2 {
    file = GIFBUILDER
    file {
      XY = [10.w],[10.h]
      10=IMAGE
      10 {
        file.maxW=460
        file.maxH=345
      }
      20=TEXT
      20 {
        text.data = date:Y
        text.noTrimWrap = |(c) | by somebody |
        align=right
        offset=0,[10.h]-45
        fontSize=10
        fontColor=#ffffff
        #niceText=1
      }
    }
  }

  [...]

temp.origimg < tt_content.image.20
temp.origpic < tt_content.textpic.20


includeLibs.something2 = EXT:rgsmoothgallery/class.tx_rgsmoothgallery_rgsg.php

temp.maxW = TEXT
temp.maxW.field=imagewidth
temp.maxH = TEXT
temp.maxH.field=imageheight

temp.singleImage = COA
temp.singleImage {

   # Large
   11 = IMAGE
   11 {
      file {
         import = uploads/pics/
         import.current = 1
        maxW < temp.maxW
        maxH < temp.maxH

      }
      params = class="full"
   }

[...]

#tt_content.image.20 >
tt_content.newimage = COA
tt_content.newimage {

   5 = LOAD_REGISTER
   5 {
      imageblockMaxWidth.cObject = COA
      imageblockMaxWidth.cObject {
         10 = TEXT
         10 {
            value = {$styles.content.imgtext.maxW}
            if.value = image
            if.equals.field = CType
         }
         20 = COA
         20 {
            10 = TEXT
            10 {
               value = {$styles.content.imgtext.maxWInText}
               if.isTrue = {$styles.content.imgtext.maxWInText}
            }
            20 = TEXT
            20 {
               value = {$styles.content.imgtext.maxW}/2
               prioriCalc = intval
               if.isFalse = {$styles.content.imgtext.maxWInText}
            }
            if.value = textpic
            if.equals.field = CType
         }
      }
      singleimageWidth1.cObject = TEXT
      singleimageWidth1.cObject {
         dataWrap = {register:imageblockMaxWidth}/{field:imagecols}-{field:imageborder}*{$styles.content.imgtext.borderThick}*2-{$styles.content.imgtext.colSpace}+{$styles.content.imgtext.colSpace}/{field:imagecols}
      }
      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
      }
      imageblockWidth.cObject = TEXT
      imageblockWidth.cObject {
         dataWrap = ({register:singleimageWidth}+{field:imageborder}*{$styles.content.imgtext.borderThick}*2+{$styles.content.imgtext.colSpace})*{field:imagecols}-{$styles.content.imgtext.colSpace}
      }
      imageblockWidth.prioriCalc = 1
      textblockPadding.cObject = TEXT
      textblockPadding.cObject {
         dataWrap = {register:imageblockWidth}+{$styles.content.imgtext.textMargin}
      }
      textblockPadding.prioriCalc = intval
   }
   10 = CASE
   10 {
      if.isFalse.field = image_noRows
      key.field = imagecols
      default = TEXT
      default {
         field = image
         split {
            token = ,
            cObjNum = 1
            1 {
               10 = LOAD_REGISTER
               10 {
                  imageLoader.cObject = COA
                  imageLoader.cObject {
                     5 = TEXT
                     5.data = register:imageLoader
                     10 < temp.singleImage

                   #  10.10.file.width.data = register:singleimageWidth
                   #  10.10.file.width.wrap = |m
                   #  10.20.outerWrap.cObject.25 = TEXT
                   #  10.20.outerWrap.cObject.25 {
                   #     dataWrap = width:{register:singleimageWidth}px;
                   #  }


                  }
               }
            }
         }
      }
   }