Hallo allerseits,
ich stehe vor dem Problem mehrere Bilder mit IMAGE / IMG_SOURCE auszugeben. Ich habe ein cObject Typ CONTENT erstellt welches mit nach einer DB Abfrage mehrere Bilder zurückgibt (in einer Reihe durch Komma getrennt).
Ich möchte nun gern all diese Bilder ausgeben, weiss aber nicht wie. ich kann bisher nur ein Bild mit "listNum = arrayNR" ausgeben und das klappt auch. Nur eben nicht für alle. Kann mir jemand weiterhelfen?
....
20 = IMAGE
20.file = GIFBUILDER
20.file {
XY = [10.w], [10.w]
10 = IMAGE
10 {
file.import = uploads/pics/
file.import.field = image
file.import.listNum = 0
file.maxW = 150
}
}
....
Das ganze soll auch dynmaisch sein. In den unterschieldlichen Datensätzen sind unterschiedlich viele Bilder hinterlegt. Also kann ich das nicht einfach durch n viele Image Objekte machen...
Es wäre sehr wichtig. Bitte schreibt mal was dazu....
mfg,
mibmib
Ich habe das Problem mehr oder weniger damit lösen können. Erst die DB Abfrage und dann das rendern.
lib.bilderliste = CONTENT
lib.bilderliste {
wrap = |
table = tt_news_cat
select.selectFields = tt_news.image
select.join = tt_news_cat_mm ON ( tt_news_cat.uid = tt_news_cat_mm.uid_foreign ) INNER JOIN tt_news ON ( tt_news.uid = tt_news_cat_mm.uid_local )
select.andWhere = tt_news_cat.uid = {GPvar:tx_ttnews|cat}
select.andWhere.insertData = 1
select.pidInList = 23
renderObj = COA
renderObj {
1 = IMAGE
1.file = GIFBUILDER
1.file {
XY = [10.w], [10.h]
10 = IMAGE
10 {
file.import = uploads/pics/
file.import.field = image
file.import.listNum = 0
file.maxW = 100
}
}
2 = IMAGE
2 < .1
2.file.10.file.import.listNum = 1
3 = IMAGE
3 < .1
3.file.10.file.import.listNum = 2
4 = IMAGE
4 < .1
4.file.10.file.import.listNum = 3
5 = IMAGE
5 < .1
5.file.10.file.import.listNum = 4
6 = IMAGE
6 < .1
6.file.10.file.import.listNum = 5
7 = IMAGE
7 < .1
7.file.10.file.import.listNum = 6
8 = IMAGE
8 < .1
8.file.10.file.import.listNum = 7
}
}
Die Frage ist nun ob das ohne Parameterübergaben geht, also ohne "10 <. 20" oder irgendwie auf nem anderen Weg??? Die Anzahl der Bilder soll Variabel sein....
mfg, mibmib
Ja, auch wenns auf den ersten Blick komisch scheint, aber es geht mit einem TEXT Objekt, in dem du das feld mit den Bildern ausliest und dann split benutzt mit Komma als token und dann kannst du für die einzelnen Teile des split (d.h. die einzelnen Bildnamen) ein IMAGE Objekt definieren, das für alle benutzt wird. Dann musst du vorher nicht die Anzahl festlegen.
Hallo Kitsunet und vielen Dank für den Denkanstoss.Ich habs jetzt mit dem TEXT Objekt lösen können. Musses zwar noch etwas formatieren, aber das passt jetzt.
Hier nochmal mein Snippet.
9 = TEXT
9.field = image
9.split.token = ,
9.split.cObjNum = 1
9.split.1.current = 1
9.split.1.dataWrap = <li><img width="120px" src="uploads/pics/{current:1}" alt="{current: 1}">|</img></li>
9.wrap = <ul id="pictureList">|</ul>
lg,
mibmib
Hallo...
Jo, gar nich so schlecht, wenns funktionieren würde. Irgendwie verstehe ich nich was du da angeblich ausliest. Also bei mir klappts nur mit dem media-Feld. (field=image???) und im Pfad muss es dann auch uploads/media heißen. Außerdem gibts sowas wie <img></img> wohl eher auch nicht. Oder übersehe ich da noch was?
Außerdem ist die maximale Anzahl für Bilder im media-Feld bei 5 auch schon wieder erschöpft (Ohne weitere Anpassungen)
Naja also ich hatte das Problem einen Link auf eine Seite zu erstellen auf der alle Bilder aller Beiträge einer Kategorie aus tt_news ausgelesen werden. Die Bilder zu den Beiträgen sind in /uploads/pics gespeichert. Die Abfrage verknüpft die Tabellen und vergleicht die Kategorie ID mit der von dem Link übergebenen Kategorie ID und gibt die Bilder aus. Is alles noch ein wenig provisorisch aber es funktioniert. Hier mal alles zusammen als TS.
Das ist die Liste mit den Bildern.
lib.bilderliste = CONTENT
lib.bilderliste {
wrap = |
table = tt_news_cat
select.selectFields = tt_news.image
select.join = tt_news_cat_mm ON ( tt_news_cat.uid = tt_news_cat_mm.uid_foreign ) INNER JOIN tt_news ON ( tt_news.uid = tt_news_cat_mm.uid_local )
select.andWhere = tt_news_cat.uid = {GPvar:tx_ttnews|cat}
select.andWhere.insertData = 1
select.pidInList = 23
renderObj = COA
renderObj {
10 = TEXT
10.field = image
10.split.token = ,
10.split.cObjNum = 1
10.split.1.current = 1
10.split.1.dataWrap = <li><a href="uploads/pics/{current:1}"><img width="150px" src="uploads/pics/{current:1}" alt="{current: 1}"><p>|</p></img></a></li>
10.split.1.typolink.target = 27
10.wrap = <ul id="pictureList">|</ul>
}
}
Hier ist die Tabelle auf einer anderen Seite, von wo aus man zu den Bildern verlinkt wird.
###############
### CATMENU ###
lib.catmenu = CONTENT
lib.catmenu {
#5 = HTML
#5.value = <h1 class="csc-firstHeader">Presse</h1>
table = tt_news_cat
wrap = <table id="press_tbl"><tr class="press_tbl_head"><td><p>Firmenname</p></td><td><p>Kurzbeschreibung</p></td><td><p>Texte</p></td><td><p>Bilder</p></td><td><p>Kontakte</p></td></tr>|</table>
select {
selectFields = tt_news_cat.title, tt_news_cat.description, tt_news_cat.uid, tt_news_cat.parent_category
#join = tt_news_cat ON (tt_news_cat.uid = tt_news_cat_mm.uid_foreign) INNER JOIN tt_news ON (tt_news.uid = tt_news_cat_mm.uid_local)
where = tt_news_cat.parent_category = 3
pidInList = 23
}
renderObj = COA
renderObj {
10 = TEXT
10.field = title
#10.typolink.parameter = 24
#10.typolink.additionalParams = &tx_ttnews[cat]={field:uid}
#10.typolink.additionalParams.insertData = 1
#10.typolink.useCacheHash = 1
10.wrap = <tr class="press_tbl_rows"><td><p>|</p></td>
20 = TEXT
20.field = description
20.htmlSpecialChars = 1
20.wrap = <td><p>|</p></td>
30 = IMAGE
30.file = fileadmin/template/img/pfeil.gif
30.htmlSpecialChars = 1
30.imageLinkWrap = 1
30.imageLinkWrap {
enable = 1
typolink {
parameter = 24
additionalParams = &tx_ttnews[cat]={field:uid}
additionalParams.insertData = 1
useCacheHash = 1
}
}
30.wrap = <td>|</td>
#Link to single images
40 = IMAGE
40.file = fileadmin/template/img/pfeil.gif
40.htmlSpecialChars = 1
40.imageLinkWrap = 1
40.imageLinkWrap {
enable = 1
typolink {
parameter = 27
additionalParams = &tx_ttnews[cat]={field:uid}
additionalParams.insertData = 1
useCacheHash = 1
}
}
40.wrap = <td>|</td>
#Link to contacts
50 = IMAGE
50.file = fileadmin/template/img/pfeil.gif
50.htmlSpecialChars = 1
50.imageLinkWrap = 1
50.imageLinkWrap {
enable = 1
typolink {
parameter = 30
additionalParams = &tx_ttnews[cat]={field:uid}
additionalParams.insertData = 1
useCacheHash = 1
}
}
50.wrap = <td>|</td>
}
}
plugin.tt_news >
plugin.tt_news < lib.catmenu
Kann sein dass das total umständlich is, aber es funktioniert und ich bin mir nach langem belesen keiner anderen lösung bewusst. Wenns eine gibt dann her damit 🙂. Man kann nur im Umgang mit Typoscript dazulernen (positiver Nebeneffekt 🙂) oder eine Extension dafür schreiben ^^.
mfg,
mibmib