[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