Am 25.11.2013 08:47, schrieb bernd wilke:
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
Hallo Bernd
Danke für deine Geduld!
Es klappt immer noch nicht. Meine letzte von bestimmt 100 Varianten ist
jetzt diese:
temp.bildbreite = CASE
temp.bildbreite {
key.cObject = TEXT
key.cObject.dataWrap = {field:section_frame}-29
key.prioriCalc = 1
default = TEXT
default.value = 150
1 = TEXT
1.value = {$grid1.srg}
2 = TEXT
2.value = {$grid2.srg}
3 = TEXT
3.value = {$grid3.srg}
4 = TEXT
4.value = {$grid4.srg}
5 = TEXT
5.value = {$grid5.srg}
6 = TEXT
6.value = {$grid6.srg}
}
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 >
tt_content.image.20.1.maxW >
tt_content.image.20.1.file.width < temp.bildbreite
tt_content.image.20.1.file.height = 150c-50
aber selbst die Ausgabe:
page.99 < temp.bildbreite
... zeigt nichts an.
Ich vermute, dass "tt_content.image.20.1." nicht auf {field:section_frame}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
hier klappt es:
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} frame_section-{field:section_frame}
30.20.10.insertData = 1
31 =< tt_content.stdWrap.innerWrap.cObject.default
31.20.10.value = {field:CType} grid2 layout-{field:layout}
imgori-{field:imageorient} frame_section-{field:section_frame}
31.20.10.insertData = 1
32 =< tt_content.stdWrap.innerWrap.cObject.default
32.20.10.value = {field:CType} grid3 layout-{field:layout}
imgori-{field:imageorient} frame_section-{field:section_frame}
32.20.10.insertData = 1
33 =< tt_content.stdWrap.innerWrap.cObject.default
33.20.10.value = {field:CType} grid4 layout-{field:layout}
imgori-{field:imageorient} frame_section-{field:section_frame}
33.20.10.insertData = 1
34 =< tt_content.stdWrap.innerWrap.cObject.default
34.20.10.value = {field:CType} grid5 layout-{field:layout}
imgori-{field:imageorient} frame_section-{field:section_frame}
34.20.10.insertData = 1
35 =< tt_content.stdWrap.innerWrap.cObject.default
35.20.10.value = {field:CType} grid6 layout-{field:layout}
imgori-{field:imageorient} frame_section-{field:section_frame}
35.20.10.insertData = 1
}
}
Ich vermute, dass "tt_content.stdWrap.innerWrap.cObject" auf
{field:section_frame} zugreifen kann.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
Mein Problem ist also, dass ich von dort, wo ich auf
{field:section_frame} zugreifen kann irgendwie die
Bildbreiteneinstellungen verändern muss.
Aber so funktioniert es sicher nicht:
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} frame_section-{field:section_frame}
30.20.10.insertData = 1
30 {
tt_content.image.20.1.file.width < temp.bildbreite
}
.
.
.
}
}
Irgendwo muss doch beim Rendern des Contents die Stelle kommen, wo TS
auf die Breiteneinstellungen für Bilder zugreift. Muss ich genau dort
ansetzen?
Gruß,
Marco.
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german