Hallo,
ich habe ein Problem mit Typo3 wofür ich aktuell keine Lösung googln konnte.
Ich erstelle eine Internetseite, wo sich am rechten Rand Randboxen befinden, wo z.B. Ansprechpartner, Referenzen usw. zu sehen ist.
Der Inhaltstyp der Inhaltseiten für die jeweiligen Randboxen ist neben "Text" und "Text/Bild" auch "Datensatz einfügen". Dieser wird verwendet um wiederkehrende Inhalte einzubinden, damit solch eine Randbox nur einmal bearbeitet werden muss.
Folgender Code gibt die Inhaltstypen "Text", "Text/Bild" und "Datensatz einfügen" auch richtig zurück und es werden alle Randboxen ausgegeben.
# INFOBOXEN
subparts.INFOBOXES = CONTENT
subparts.INFOBOXES {
table = tt_content
select {
pidInList = this
orderBy = sorting
where = colPos=3
languageField = sys_language_uid
}
}
Das Problem ist, die Randboxen müssen noch jeweils vom Inhalt her formatiert werden, also versuch ich Folgendes (erstmal primitiv):
# INFOBOXEN
subparts.INFOBOXES = CONTENT
subparts.INFOBOXES {
table = tt_content
select {
pidInList = this
orderBy = sorting
where = colPos=3
languageField = sys_language_uid
}
renderObj = COA
renderObj {
10 = TEXT
10.field = header
20 = TEXT
20.field = bodytext
}
}
Und hier kommt das Problem. Die Inhaltstypen "Text" und "Text/Bild" werden richtig angezeigt. Aber alle Inhalte vom Typ "Datensatz einfügen" werden nicht mehr berücksichtigt. Warum? Kenn jemand den Grund und die Lösung?
Danke
Die Lösung kann ich dir nicht nennen, aber den Grund:
Inhaltselemente vom Typ Record haben keinen bodytext und keinen header. Diese Felder bleiben leer. Dafür steht dann im Feld CType der Wert shortcut und im Feld records steht so etwas wie tt_content_167, also nur ein Verweis auf das ursprüngliche Element. Das mit renderObj vernünftig auszugeben wird schwierig, ich versuchs erst gar nicht.
Ja das ist mir auch gerade aufgefallen.
Aber irgendwie muss es doch ein Weg geben, an den header und bodytext des Referenzinhaltes zu kommen!???
Vielleicht hilft ein Blick in das TypoScript von css_styled_content:
tt_content = CASE
tt_content.key.field = CType
tt_content.shortcut = COA
tt_content.shortcut {
20 = CASE
20.key.field = layout
20.0= RECORDS
20.0 {
source.field = records
tables = {$content.shortcut.tables}
# THESE are OLD plugins. Modern plugins registers themselves automatically!
conf.tt_content = < tt_content
conf.tt_address = < tt_address
conf.tt_links = < tt_links
conf.tt_guest = < tt_guest
conf.tt_board = < tt_board
conf.tt_calender = < tt_calender
conf.tt_rating < tt_rating
conf.tt_products = < tt_products
conf.tt_news = < tt_news
conf.tt_poll = < plugin.tt_poll
}
20.1= RECORDS
20.1 {
source.field = records
tables = {$content.shortcut.tables}
conf.tt_poll = < plugin.tt_poll
conf.tt_poll.code = RESULT,SUBMITTEDVOTE
}
20.stdWrap {
editIcons = tt_content: records
editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
prefixComment = 2 | Inclusion of other records (by reference):
}
}
so ähnlich müsstest du es wohl auch angehen. Nur statt tt_content wendest du es halt auf dein renderObj an.
Ungefähr so:
renderObj=COA
renderObj.10=CASE
renderObj.10{
key.field = CType
shortcut = COA
shortcut {
10 = RECORDS
10 {
source.field = records
tables = tt_content,tt_address,tt_links,tt_guest,tt_board,tt_calender,tt_products,tt_news,tt_rating,tt_poll
[...]
Danke. Aber so richtig bekomm ich das nicht zum Laufen. Bin jetzt auch nicht grad der Typo3-Profi 😮) Noch eine Idee?
Bei mir gings so: Einfach aus typo3_src/typo3/sysext/css_styled_content/static/(ggf. gewähltes Layout)/setup.txt den tt_content.shortcut-Abschnitt kopieren und in sein eigenes TS-Setup(-File) einfügen und dann anpassen.
Da ich keine Layout-Abhängige-Content-Auswahl brauche, sondern einfach nur andere Styles haben will sieht mein TS dazu dann ohne CASE so aus:
# ****************
# CType: shortcut
# ****************
# Should be a complete copy from the old static template "content (default)"
tt_content.shortcut = COA
tt_content.shortcut {
20 = RECORDS
20 {
source.field = records
tables = {$content.shortcut.tables}
}
20.stdWrap {
editIcons = tt_content: records
editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
prefixComment = 2 | Inclusion of other records (by reference):
}
}
Anschließend kann man auch dem Content-Element shortcut/Verknüpfung/Datensatz Layouts zuweisen, die nicht Default oder Layout 1 sind (größer als Layout-Index 1).