Hallo zusammen,
ich versuche, ein TMENU zu bauen, in dem als beforeImg zu jeder Unterseite ein Bild gezeigt wird. Wenn ich das Bild aus den Seiteneigenschaften der Unterseite nehme, klappt es wie es soll:
temp.produktnavi = HMENU
temp.produktnavi {
special = directory
special.value.data = leveluid:1
1 = TMENU
1 {
noBlur = 1
wrap = <div class="produktlinknavi"> | <div style="clear:both;"></div></div>
NO = 1
NO.beforeWrap = <div class="produktlinkbox"> | <br />
NO.ATagTitle.field = abstract // description // subtitle // title
NO.beforeImgLink = 1
NO.beforeImg = GIFBUILDER
NO.beforeImg {
XY = 80,60
backColor = #ffffff
format = jpg
quality = 100
20 = IMAGE
20.file {
import = uploads/media/
import.field = media
import.listNum = 0
width = 80
height = 60
}
}
NO.after = </div>
}
}
Nun muss ich aber das Bild nicht aus den Seiteneigenschaften auslesen, sondern aus Spalte 4 des Inhaltes der seite - ergo irgendwie auf tt_content zugreifen - und da hakt es bei mir. In meinem naiven Ansatz wollte ich die Zeilen 19 - 26 durch dies hier ersetzen:
20 = IMAGE
20.file {
import {
table = tt_content
select.where = colpos=4
select.selectFields = image
field = image
listNum = 0
wrap = uploads/pics/ |
}
width = 80
height = 60
}
aber offenbar stimmt der Kontext, die UID, die PID oder was immer nicht. Hat irgendjemand eine rettende Idee?
Vielen Dank für jeglichen Input im voraus und beste Grüße aus dem Ländle.
Hallo,
da brauchst du zuerst das cObj RECORDS um an die Elemente zu kommen und dann kannst du da dein IMAGE reinhängen
georg
Hallo just2b, Hallo Liste,
vielen Dank für Deine Antwort. Ich habe versucht, Deinen Hinweis bezüglich der RECORDS einzubauen, aber es will mir nicht gelingen...
20 = RECORDS
20 {
source.current = 1
tables = tt_content
select.orderBy = sorting
select.where = colPos=4
select.selectFields = image
10 = IMAGE
10.file {
import = uploads/pics/
import.field = image
import.listNum = 0
width = 80
height = 60
}
}
Ich stehe offenbar immer noch total auf dem Schlauch. Normalerweise bevorzuge ich ja auch eher einen dezenten Tip für die Selbsterleuchtung (wirkt länger und ist befriedigender), aber ich würge jetzt an diesem Problem mit Unterbrechungen zwei Wochen rum - wenn Du mir etwas auf die Sprünge helfen könntest, wäre ich wirklich dankbar.
Vielen Dank im Voraus.
Michael
PS: Gibt es eigentlich eine Einführung in Datenbankzugriffe, die auch für Vollhorste wie mich nachvollziehbar ist? Ich habe so langsam jeden Google-Link mit "RECORDS" "select" und "tt_content" durch.
#angry#
Hallo Liste,
es geht um ca. 10 Zeilen Code, 20, wenn's viel ist. Ich bin offensichtlich zu blöd, es zu kapieren, aber gibt es denn wirklich niemand, der mir ein bisserl auf den Weg helfen kann - wenn's zu viel verlangt ist, auch gegen Honorar.
Oder, falls jemand Georgs Hinweis kapiert, muss ich das RECORDS noch ausserhalb des GIFBUILDER-Objekts einflanschen?
Bitte, ich verzweifele an dem Ding. 😢
Gruß
Hallo,
ich habs bisschen anders gelöst,
lib.menu = HMENU
lib.menu {
special = directory
special.value = 8
1 = TMENU
1 {
wrap = <div class="produktlinknavi"> | </div>
NO {
allWrap.stdWrap.cObject = COA
allWrap.stdWrap.cObject {
10 = TEXT
10.value = <div class="foo" style="background:url(
50 = CONTENT
50 {
table = tt_content
select {
pidInList.field = uid
#where = colPos = 3
max = 1
}
renderObj = IMG_RESOURCE
renderObj {
file {
import=uploads/pics/
import.listNum = 0
import.field = image
maxW = 20
}
}
}
99 = TEXT
99.value = ) no-repeat">|</div>
}
}
}
}
ich hoffe das sollte dir auch passen, funktionieren tuts
georg
Hallo Georg,
grossartig, jetzt sehe ich schon mal die Bilder, vielen Dank. Jetzt muss ich nur noch herausfinden, wie ich das Bild mit in den Link bekomme. Die Bildchen eignen sich nicht als Hintergrund und müssen anklickbar sein.
Deshalb habe ich ja so mit dem beforeImg und dem GIFBUILDER rumgewürgt - das schien die einzige Möglichkeit zu sein, das Bild mit dem gleichen Link zu versehen - und ausserdem will der Kunde die skalierten Bildchen via ImageMagick noch nachgeschärft haben...
Nochmals vielen Dank.
Michael
Hallo,
tja nichts gewesen mit meinem schönen entwurf, aber das sollte es dann doch sein
lib.menu = HMENU
lib.menu {
special = directory
special.value = 8
1 = TMENU
1 {
wrap = <div class="produktlinknavi"> | </div>
NO {
stdWrap.prepend= CONTENT
stdWrap.prepend {
table = tt_content
select {
pidInList.field = uid
# where = colPos = 3
max = 1
}
renderObj = IMAGE
renderObj {
file.import=uploads/pics/
file.import.listNum = 0
file.import.field = image
}
}
}
}
}
von dem beforeimage kram halt ich nicht soviel, lieber gleich richtig mit stdwrap, weil man da einfach mehr machen kann
georg
Hallo Georg, Hallo Liste,
perfekt, genial, superb. Ich bin entzückt, der Welt entrückt, total beglückt (und vermutlich leicht verrückt) 😃
Vielen Dank für die zweifache Rettung, es muss bald Weihnachten sein.
Beste Grüße aus dem Ländle
Michael
Vielen Dank! Das hat mir auch sehr geholfen.
Bzw hat mir geholfen, einen Anfängerfehler zu isolieren.
Ich hatte (beim Versuch, das "Teaser-Menu" aus dem T3-Kochbuch umzusetzen), gar keine Bilder im Page-Media-Feld, sondern alles in den Content-Elementen.
Erst durch eure Diskussion bin ich drauf gekommen.
Aber das hat in mir die Frage keimen lassen, wozu denn dieses Seiten-Media-Feld überhaupt gut sein soll (ausser als Grundlage für irgendwelche Layoutelemente). Wird das wirklich gemacht, dass man Bilder zu einem Artikel dort deponiert, nur um sie dann mit Verrenkungen und Fallbacks wieder mit den Inhalten zusammenzubringen?...
Eine Frage zu obigem Bsp. hab ich aber auch noch:
Und wenn ich gleich 2 Bilder aus dem Image-Feld holen möchte? Was mach ich?
Frohe Festtage
Urs
Hallo Urs,
nunja ein Headerbild (typischer Anwendungsfall) gehört zur Seite und nicht zum Content, also in die Seiteneigenschaften!
Wenn du 2 Bilder holen willst, schaut das dann ca so aus
renderObj = COA
renderObj {
10 = IMAGE
10 {
so wie vorher
listNum = 0
}
20 = IMAGE
20 {
so wie vorher
listNum = 1
}
}
lg georg
Super, klappt, Danke!
und schöne Weihnachten!
Urs
Hallo,
ich habe mein HMENU ein wenig mit Hilfe Deines Superbeispiels umgebaut. Eines klappt jedoch nicht.
Der Link wird immer nach dem eingefügten Bild und text angezeigt statt davor.
Die Zeile
ATagTitle.field = abstract // description // title
wird ganz ignoriert.
Leider bin ich wirklich nicht so gut in Typoscript und wäre dankbar für etwas Hilfe..,
Danke, Kathrin
#Newsmenue rechts
10.marks.NEWS_MENU = COA
10.marks.NEWS_MENU {
20 = HMENU
20{
special = directory
special.value = 41
entryLevel = 0
1 = TMENU
1 {
noBlur = 1
NO = 1
NO {
wrapItemAndSub = <li>|</li>
ATagTitle.field = abstract // description // title
stdWrap.prepend= CONTENT
stdWrap.prepend {
table = tt_content
select {
pidInList.field = uid
where = colPos = 2
max = 4
}
renderObj = COA
renderObj {
1 = TEXT
1.value = <div class="teaser">
10 = TEXT
10.field = header
10.wrap = <strong>|</strong>
10.required = 1
20 = TEXT
20 {
field = bodytext
crop = 350 | ... | 1
wrap= |
stripHtml = 1
}
40 = IMAGE
40 {
required = 1
wrap=|
file.import=uploads/pics/
file.import.field=image
file.width = 160
}
99 = TEXT
99.value = </div>
}
}
}
}
}
}