[TYPO3-german] T3 6.1 | Bildzuschnitt und Bildgröße

Marco Brüggemann marco at schauart.de
Fri Nov 22 15:33:26 CET 2013


Am 18.11.2013 10:26, schrieb bernd wilke:
> Am 15.11.13 20:19, schrieb Marco Brüggemann:
>> Am 15.11.2013 13:10, schrieb bernd wilke:
>>> Am 15.11.13 12:47, schrieb Marco Brüggemann:
>>>> Guten Tag,
>>>>
>>>> Für meine Inhaltselemente mit Bildern möchte ich die Breite der
>>>> Vorschaubilder auf die jeweilige Beite des Contentelemens beschränken.
>>>>
>>>> Dazu habe ich in den TS-Konstanten zuerst die Breiten der
>>>> Contentelemente definiert:
>>>>
>>>> #-----------------------------------------------------------
>>> [...]
>>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>> Ich würde auch gerne den Zuschnitt der Bilder so für jeden
>>>> Contentbereich beeinflussen. geht das?
>>>> Ich benutze dafür zur zeit das:
>>>>
>>>> tt_content.image.20.1.maxH >
>>>> tt_content.image.20.1.maxW >
>>>> tt_content.image.20.1.file.width >
>>>> tt_content.image.20.1.file.height >
>>>> tt_content.image.20.equalH >
>>>> tt_content.image.20.equalW >
>>>> tt_content.image.20.1.maxH = 525
>>>> tt_content.image.20.1.maxW = 150
>>>> tt_content.image.20.1.file.width = 525c-0
>>>> tt_content.image.20.1.file.height = 150c-0
>>>>
>>>> kann ich das auch in Abhähngigkeit von
>>>> "Datenbank/tt_content/section_frame" in unterschiedliche Breiten
>>>> schneiden?
>>>
>>> da gäbe es mehrere Möglichkeiten:
>>> 1. explizit ausrechnen
>>> ...maxW.cObject = TEXT
>>> ...maxW.cObject {
>>>     prioriCalc = 1
>>>     value = ({frame_section}-29)*120
>>>     insertData = 1
>>> }
>>>
>>> 2. CASE
>>> ...maxW.cObject = CASE
>>> ...maxW.cObject {
>>>     key.field = frame_section
>>>
>>>     30 = TEXT
>>>     30.value = 120
>>>
>>>     :
>>>
>>>     35 = TEXT
>>>     35.value = 920
>>> }
>>>
>>> 3. das gleiche nur komplizierter abgefragt:
>>> ...maxW.cObject = COA
>>> ...maxW.cObject {
>>>
>>>     10 = TEXT
>>>     10.value = 120
>>>     10.if.equals.field = frame_section
>>>     10.if.value = 30
>>>
>>>     :
>>>
>>> }
>>>
>>> evtl. wäre es auch sinnvoll solche Werte erstmal in den Constants oder
>>> Registerwerten abzulegen statt sie an mehreren Stellen jeweils
>>> ausrechnen zu lassen
>>>
>>> bernd
>>
>> Hallo Bernd .. vielen Dank für Deine hilfe ... leider klappt es aber
>> noch nicht: ($grid1.srg ist als Kontante mit 120 hinterlegt)
>>
>> Dieses hier ergibt eine Ausgabe, jedoch sind die Bilder alle zu 100% 
>> Groß:
>> tt_content.image.20.1.file.width = TEXT
>> tt_content.image.20.1.file.width {
>>          prioriCalc = 1
>>      value = ({frame_section}-29)*{$grid1.srg}
>>      insertData = 1
>>      wrap = |c-0
>> }
>> tt_content.image.20.1.file.height = TEXT
>> tt_content.image.20.1.file.height {
>>          prioriCalc = 1
>>      value = ({frame_section}-29)*{$grid1.srg}
>>      insertData = 1
>>      wrap = |c-0
>> }
>>
>> mache ich ein "tt_content.image.20.1.file.width.cObject" daraus, wird
>> gar nichts mehr ausgegeben.
>>
>> Was für ein Wert jetzt wirklich in tt_content.image.20.1.file.height
>> steht, kann ich leider auch nicht überprüfen - eigentlich sollte dort
>> bei frame_section=30 (30-29)*120= 120 ---> gewrapt ---> 120c-0 stehen,
>> da aber das Bild immer 100% groß ist, denke ich mal, dass das nicht so
>> errechnet und zusammengebaut wird.
>>
>> Kann man den Wert gezielt mit so etwas ähnlichem wie "var_dump" 
>> auswerfen?
>
>
> du kannst natürlich den Wert als Kopie ausgeben, bzw als kopie in 
> .height reinschreiben.
>
>
> temp.hoehe = TEXT
> temp.hoehe {
>     prioriCalc = 1
>     value =
>     :
> }
>
> //benutzen
> tt_content.image.20.1.file.width < temp.hoehe
>
> // debug ausgabe:
> page.99 < temp.hoehe
>
>
> du kannst natürlich auch das admin-panel benutzen um zu überprüfen was 
> überhaupt an typoscript auf der Seite im FE aktiv ist.
>
> bernd

Hallo Bernd,

vielen Dank noch einmal für deine Antwort.
Dieses Verfahren, so wie Du es vorschlägst, funktioniert irgendwie nicht.
Als errechneter Wert kommt  -4641 heraus und das Bild wird in 
Originalgröße angezeigt.

Daher meine Frage:
Kann es sein, dass es zwei verschiedene Bereiche sind, die "nicht 
miteinander können"?

Einerseit die allgemeinen Bildeinstellungs-Konstanten (wie zum Beispiel):
tt_content.image.20.1.file.width = 300c
tt_content.image.20.1.file.height = 150c-50

und andererseits spezifische Bildgestaltungsmittel des jeweiligen 
Kontentelements?
tt_content.stdWrap {
  innerWrap.cObject = CASE
  innerWrap.cObject {
         30 =< tt_content.stdWrap.innerWrap.cObject.default
         30.20.10.value = {field:CType} grid1 layout-{field:layout} 
imgori-{field:imageorient}
         30.20.10.insertData = 1
      }
}

ich möchte ja in Abhängigkeit von dem Wert in [tt_content -> 
section_frame], und diese Wert ist ja von Beitrag zu Beittrag ev. 
unterschiedlich, das Bild zuschneiden:
tt_content.image.20.1.file.width = [{section_frame} und der daraus 
resultierende Wert der Bildbreite]["c" noch ranhängen]

schreibe ich das so:
temp.hoehe = TEXT
temp.hoehe {
     prioriCalc = 1
     value =
     :
}

dann weis ich nicht, wie ich auf den conten-spezifischen Wert 
"section_frame" zugreifen soll. woher soll er auch wissen, dass ich 
einen spezifischen Beitrag meine? Daher der ungewünschte errechnete Wert.


temp.hoehe = TEXT
temp.hoehe {
     prioriCalc = 1
     value = (({frame_section}-29)*{$grid1.srg})+({$spaltenabstand.srg} 
* ({frame_section}-29))-1
     insertData = 1
}

page.99 < temp.hoehe ---> -4641

Erklärung:
({frame_section}-29) - es gibt 6 relevante, aufeinanderfolgende Werte 
für frame_section: 30 oder 31 oder 32, 33, 34, 35
so dass in der Berechnung dann 1 - 6 herauskommt.
{$grid1.srg} - Ist der Wert für die schmalste Spalte - ist 1/6 von 
{$grid6.srg
{$spaltenabstand.srg} - ist der Abstand zwischen zwei Spalten

---------------------------------------------------------------------------------------------------------------
Ich glaube ich muss dort anpacken, wo ich definiere: "Wenn 
{frame_section = 30 [ oder 31 ...] dann schreibe in das div die Klasse: 
grid1"

die mache ich hier:

tt_content.stdWrap {
  innerWrap.cObject = CASE
  innerWrap.cObject {
         30 =< tt_content.stdWrap.innerWrap.cObject.default
         30.20.10.value = {field:CType} grid1 layout-{field:layout} 
imgori-{field:imageorient}
         30.20.10.insertData = 1

         [und so weiter]
  }
}

dort müste jetzt noch rein:
"Wenn {frame_section = 30 [ oder 31 ...] dann schreibe in das div die 
Klasse: grid1 UND Konstanteneinstellung ist: 
tt_content.image.20.1.file.width = {$grid1.srg}c"

Wie kann ich das umsetzen?
Danke.


More information about the TYPO3-german mailing list