Hallo,
nachdem ich mich nun schon ewig gequält habe, muss ich nun doch auf Hilfe hoffen #angry#
Ich will in der rechten Spalte, die mit einem mark versehen ist das header Feld und das zugehörige Bild des Datensatzes einer bestimmten Seite auf allen Seiten ausgeben lassen.
Der Inhalt des header feldes gelingt mir auch, nur das Bild krieg ich nicht raus. Hier mal der Code des letzten Versuchs (es gab schon tausend andere Versuche), will einfach nciht klappen
marks.PROJEKTNEW = CONTENT
marks.PROJEKTNEW {
table = tt_content
select.pidInList =4
select.orderBy = sorting
select.where = colPos = 0
select.max = 1
renderObj = COA
renderObj {
wrap = <div class="aktProject"> | </div>
10 = TEXT
10.field = header
20 = IMAGE
20 {
file.maxH = 90
file.maxW = 100
file.import {
data = levelmedia: -1, "slide"
wrap = uploads/media/ |
listNum = 0
}
}
}
}
Wäre echt nett, wenn mir jemand auf die Sprünge helfen kann, was ich falsch mache.
Gruss
Hallo,
unwahrscheinlich, dass das Bild unter uploads/media liegt, wenn du es aus tt_contnet ausliest, das ist der fall wenns in den seiteneigenschaften der seiten liegt
georg
Danke für die schnelle Antwort,
hab grad bemerkt, dass das Bild der aktuellen Seite aus uploads/media/ gelesen wird, sofern vorhanden.
Aber wie krieg ich das Bild des ersten Datensatzes der Seite mit id 4?
Dachte, da ich vorher ja schon den entsprechenden Datensatz ausgewählt habe, dass dann auch dieses Bild angesprochen wird.
Danke und Gruss
Hi,
lass doch das ganze renderObj mal weg. Dann solltest du auf jeden Fall das Bild sehen.
😃
So kannst du ein bestimmtes Inhaltselement auslesen, die SeitenID ist dabei egal.
temp {
MARKER = RECORDS
MARKER {
tables = tt_content
source = 956 // die ID des Elements
}
}
Wenn das Inhaltselement nur das Bild enthält wird das gehen, wenn nicht, dann wird es schwierig.
Danke Georg,
hast mich erstmal draufgebracht, dass die Bilder der einzelnen Datensätze nicht in media/ liegen sondern in /uploads/pics/
Habs jetzt erstmal so lösen können, dass ich es als Textobjekt aus der DB auslese und dann in ein img-Tag wrappe.
Was mir nur noch nicht gefällt, dass ich so die Bildgröße nicht steuern kann.
Gibts da noch eine Möglichkeit?
Danke und Gruss
@SLAng
brauch aber immer das Bild des obersten Datensatzes der Seite mit der ID 4,
wenn ich das richtig sehe, würde mir das immer und ewig das selbe Bild ausgeben, ist das richtig.
Gruss
wenn du statt uploads/media/ eben uploads/pics/ nimmst, sollte das schon gehen
georg
wenn du statt uploads/media/ eben uploads/pics/ nimmst, sollte das schon gehen
habe ich daraufhin natürlich gleich probiert, kam aber auch keine Ausgabe.
Also,
du hast auf deiner Seite (ID4) ein Inhaltselement (zB vom Typ Bild). Richtig??
Du hast das Header Feld und das Image Feld belegt. Richtig ??
Das oberste Inhaltselement deiner Seite4 möchtest du in der rechten Spalte auf allen Seiten darstellen. Richtig??
Dann mach es so wie ich es schon erwähnt habe. Lass das renderObj einfach weg, denn dann wird dir das komplette Inhaltselement zurück gegeben. Und du kannst die Weite und Höhe des Bildes bequem im Inhaltselement definieren.
Also so:
marks.PROJEKTNEW = CONTENT
marks.PROJEKTNEW {
table = tt_content
select.pidInList =4
select.orderBy = sorting
select.where = colPos = 0
select.max = 1
wrap = <div class="aktProject"> | </div>
}
😃
Hallo friction48,
du hast auf deiner Seite (ID4) ein Inhaltselement (zB vom Typ Bild). Richtig??
Du hast das Header Feld und das Image Feld belegt. Richtig ??
Das oberste Inhaltselement deiner Seite4 möchtest du in der rechten Spalte auf allen Seiten darstellen. Richtig??
Soweit alles richtig bis auf das ich nur das feld "header" und das Feld "image" darstellen lassen will. Der Text des Datensatzes soll auf keinen Fall in der rechten Spalte erscheinen, darum hab ich renderObj genommen.
In der rechten Spalte soll quasi nur eine kleine Vorschaubox, des letzten Projekts der Seite Referenzen (Id:4) erscheinen, also nur kurz der Header mit dem Thumbnail-Vorschaubild.
Den kompletten Datensatz sieht man dann auf der Seite Referenzen.
So funktionierts jetzt, aber wie gesagt, mich stört dabei noch, dass es als Textobjekt ausgelesen wird und ich somit die Größe nicht entsprechend rendern kann:
#aktuellstes Projekt in rechter Spalte anzeigen
marks.PROJEKTNEW = CONTENT
marks.PROJEKTNEW {
table = tt_content
select.pidInList =4
select.orderBy = sorting
select.where = colPos = 0
select.max = 1
renderObj = COA
renderObj {
wrap = <div class="aktProject"><h2>Aktuelles Projekt</h2> | </div>
10 = TEXT
10.field = header
10.wrap = <h3>|</h3>
20 = TEXT
20.field = image
20.wrap = <div class="aktProjectImg"><img src="uploads/pics/|" width="90" /></div>
}
}
Gruss
Hi,
ich hätte da noch einen Vorschlag:
marks.PROJEKTNEW = CONTENT
marks.PROJEKTNEW {
table = tt_content
select.pidInList =4
select.orderBy = sorting
select.where = colPos = 0
select.max = 1
renderObj = COA
renderObj{
10 < tt_content.textpic
# Text löschen
10.20.text.20 >
# Bildweite verändern
10.20.maxW = 90
}
}
Vielleicht hilfts ja!?
😃
@friction48
super, danke, das würde funzen!
habe jetzt aber versucht daran noch ein bisschen rumzubasteln, da der Inhalt in Spalten dargestellt wird, soll aber erst das header-Element und dann drunter das Bildelement kommen.
Habe in der tsref die Eigenschaft textPos gefunden. Mit dem Wert textPos = 2 sollte doch eigentlich der Text oben links und dann drunter das Bild kommen. Irgend wie greift die Eigenschaft aber gar nicht.
Ausserdem kommt das Bild mit 45px Breite daher, da anscheinend die Angabe maxW durch die Spaltenanzahl geteilt wird.
Weisst du vielleicht wie ich die beiden Sachen noch irgendwie reinbekomme.
Sorry, wenns vielleicht blöd gefragt ist, aber so ganz hat sich mir als Neuling die Typoscript Logik och nicht eröffnet :o
Danke und Gruss
Hi Leverson,
du warst doch mit deinem letzten TS schon recht nah dran.
Hier mal ein Ansatz von mir:
renderObj = COA
renderObj {
wrap = <div class="aktProject"> | </div>
10 = TEXT
10.field = header
20 = IMAGE
20 {
file.maxH = 90
file.maxW = 100
file.import {
field = image
wrap = uploads/pics/ |
listNum = 0
}
}
}
Armin
Hallo ArminB,
super, thats it!
Dachte ich hab das schon mal probiert und da gings nicht, vielleicht hatte ich nur einen Tippfehler. jetzt funzts jedenfalls.
Vielen Dank für den Tip
Gruss