sissi schrieb
...und zwar moechte ich den titel (sitzt in der spalte titel in der tabelle tt_news_cat) der jeweiligen kategorie aus der tt_news_cat-Datenbank auslesen...gibt aber nix aus....habsch irgendwo nen denkfehler?!
Nein, einen Denkfehler hast du an sich nicht, aber meines Erachtens einen semantischen Fehler!
page.10.marks.PAGETITLE.dataWrap = DB:tt_news_cat:{GPvar:tx_ttnews|cat}:title
Ich denke hier liegt das Problem, denn wenn ich z.B. eine einzelne News "anklicke" um zur Detailansicht zu kommen, dann wird bei mir keine GET-Variable names tt_news[cat]=X mitgegeben. Mir ist jetzt gerade nicht ganz klar, ob man das irgendwo einstellen kann, dass die News Ext. genau das macht. Ebenso kannst du natürlich deine News Ext. auch per eigener Ext. erweitert haben, damit die SingleView-Links eben genau diesen zusätzlichen Parameter enthalten.
Gesetz dem Fall, dass du aber die Standardversion verwendest, dann würde ich mal behaupten, dass durch die fehlende GET-Variable der obige Wert einfach leer ist.
Ergebnis ist:
DB:tt_news_cat::title
und nicht z.B.:
DB:tt_news_cat:2:title
Was also nun?
--> Wir wissen ja, dass für die Einzelansicht einer News die ID der jeweiligen News mitgeben wird. Das heißt wir bekommen darüber aus der DB die ID der Newskategorie der jeweiligen News.
page.10.marks.PAGETITLE.dataWrap = DB:tt_news:{GPvar:tx_ttnews|tt_news}:category
Jetzt bekommst allerdings nur die ID der Newskategorie ausgegeben, aber nicht den Titel. Mit der ID können wir ja aber nun die tt_news_cat abfragen - im SQL Fachjargon wäre das jetzt eine verschachtelte SQL Abfrage.
Im Prinzip ebend dann so - aber gleich vorneweg, so geht es leider nicht - das packt dann TYPO3 doch noch nicht 😃
page.10.marks.PAGETITLE.dataWrap = DB:tt_news_cat:{DB:tt_news:{GPvar:tx_ttnews|tt_news}:category}:title
Man braucht also was Anderes um die verschachtelte Abfrage auszuführen. Hierbei hilft das RECORDS Objekt!
Es erlaubt ja via source Attribut die Angabe von einer bzw. mehreren kommaseparierten uid(s). Da dieses Attribut stdWrap zulässt ist unser Problem gelöst - denn dadurch können wir hier auch die dataWrap "Geschichte" anwenden.
Somit ergibt sich:
page.10.marks.PAGETITLE = RECORDS
page.10.marks.PAGETITLE {
source.dataWrap = DB:tt_news:{GPvar:tx_ttnews|tt_news}:category
source.wrap3 = {|}
source.insertData = 1
tables = tt_news_cat
conf.tt_news_cat = TEXT
conf.tt_news_cat.field = title
}
Also nochmal in short:
source: uid der Kategorie der angezeigten News
tables: Tabelle die im RECORDS Objekt abgefragt werden soll
conf: Ausgabe der jeweiligen Daten, hier der Titel der Newskategorie
In SQL-Sprache ergibt obiges also:
SELECT title FROM tt_news_cat WHERE uid = (SELECT category FROM tt_news WHERE uid = UID_VON_DER_AKTUELLEN_NEWS_VIA_GETVAR)
ps: es gibt keinen reinen "Code" BBCode ... also nicht vom Php: verwirren lassen
Grüße, Evil 8-)