Hallo,
ich stelle die Inhalte von Unterseiten auf einer Seite dar, um eine Onepage-Website mit TYPO3 aufzubauen.
Um die einzelnen Teile mit unterschiedlichen Hintergründen versehen zu können, will ich die Media-Ressource der jeweiligen Unterseite verwenden, sitze da aber auf dem Draht...
Mein TS:
lib.content = COA
lib.content {
30 = CONTENT
30 {
table = pages
select {
orderBy = sorting
}
renderObj = COA
renderObj {
10 = COA
10.2 = IMG_RESOURCE
10.2{
file {
import.data = levelmedia:-1, slide
treatIdAsReference = 1
import.listNum = 0
}
stdWrap.wrap = <div style="background-image:url(|)">
}
20 = CONTENT
20 {
table = tt_content
select {
pidInList.field = uid
orderBy = sorting
where = colPos = 0
}
}
30 = TEXT
30.value = </div>
}
}
}
Soweit, so gut: Jede Seite wird in einem DIV mit Hintergrundbild dargestellt, das Bild kommt aber natürlich aus der Mutterseite (also der, in der die Unterseiten zusammengestellt werden).
Sieht jemand eine Lösung, wie ich auf das Image der jeweiligen Unterseite zugreifen kann?
Gruß vom Rhein!
30 = CONTENT;
Soweit ich weiß ist uidInList und pidInList standartmäßig auf die aktuelle Seite eingestellt, außer Du gibst etwas anderes an oder nicht? Vielleicht liegt es daran.
EDIT:
Probier im select der 30 mal:
pidInList =
oder pidInList >
und andWhere.dataWrap = pid={field:pid}
Um alle Unterseiten der aktuellen Seite zu bekommen.
Ne, dann geht nix mehr.
Also die Seiteninhalte werden ja schon richtig ausgegeben.
Nur der Zugriff auf den richtigen file unter 10.2{... ist noch total falsch.
Hab jetzt kein PHPMyAdmin zur Hand, aber schreib da doch mal anstelle von "levelmedia:-1, slide" nur den Namen des Datenbankfeldes für die Bilder rein :-/
EDIT: Oder ist es bei Pages seit 6.x auch nur noch eine File Reference auf eine andere Tabelle wie bei tt_content? Ich schau mir das nachher mal genauer an.
Das wäre ja dann wohl das Feld media - aber auf dem Weg komme ich überhaupt nicht weiter.
Dein 10.2 dürfte eher so funktionieren:
10.2 = FILES
10.2 {
references {
table = pages
fieldName = media
}
renderObj = TEXT
renderObj {
data = file:current: publicUrl
wrap = <div style="background-image:url(|)">
}
}
Ich würde allerdings für das Konstrukt lieber HMENU nehmen.
EDIT:
Habe auf die Schnelle ein HMENU gebaut. Ungetestet, aber es dürfte funktionieren. Einiges (unter „references“, …) dürfte sicher überflüssig sein – muss Du halt testen. 😃
lib.content = HMENU
lib.content {
special = directory
1 = TMENU
1 {
NO = 1
NO {
allWrap = |</div>
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
10 = FILES
10 {
references {
table = pages
uid.data = field = uid
fieldName = media
data = levelmedia:-1, slide
treatIdAsReference = 1
listNum = 0
}
renderObj = TEXT
renderObj {
data = file:current: publicUrl
wrap = <div style="background-image:url(|);">
}
}
20 = CONTENT
20 {
table = tt_content
select.where = colPos = 0
select.pidInList.field = uid
}
}
}
}
}
Hallo!
Super - das funktioniert!
Ich hatte schon diverse Ansätze mit Menus gesehen, aber nicht ganz verstanden wozu und warum nicht direkt mit TS-Bezug auf die Referenzen... sei's drum: Dein Script läuft (nur vor dem publicUrl muss das Leerzeichen raus, für alle, die's verwenden).
Viele Grüße vom Rhein
schmidtpublic schrieb Dein Script läuft (nur vor dem publicUrl muss das Leerzeichen raus, für alle, die's verwenden).
Ja, sorry. o.O
Ich hatte extra ein Leerzeichen gesetzt, da sonst ein Doppelpunkt direkt gefolgt von einem „p“ von Forum als Smile interpretiert wird.
... und das in einem Code-Element. #angry#
Ja, das ist bescheuert hier, dass das auch im Codeblock umgesetzt wird :-)