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

bernd wilke t3ng at bernd-wilke.net
Mon Nov 25 08:47:44 CET 2013


Am 22.11.13 15:33, schrieb Marco Brüggemann:
> 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.

ausgewertet wird das ganze ja wenn ein tt_content-record gerendert wird, 
und zu diesem zeitpunkt gibt es immer genau einen 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

wenn du natürlich das temp.hoehe auf page.99 kopierst gibt es diese 
Zuordnung nicht. nur wenn temp.hoehe irgendwo innerhalb von tt_content 
einkopiert wird.

> 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"

für "wenn" gibt es in typoscript mehrere Konstrukte:
.if
.override
.ifempty
CASE

da es hier meherere werte gibt würde ich wohl CASE nutzen.

bernd
-- 
http://www.pi-phi.de/cheatsheet.html


More information about the TYPO3-german mailing list