GPvar:tx_ttnews|tt_news im Typoscript weiterverarbeiten
| Autor | Nachricht |
|---|---|
|
Verfasst am: 30. 01. 2007 [17:47]
|
|
|
EvilBMP
Themenersteller
Dabei seit: 06.03.2006
Beiträge: 37
|
Hallo, soweit mir bekannt ist kann man mit Hilfe des "data" Attributes z.B. ganz bestimmte Daten aus der DB ziehen. Ich möchte nun den Titel der aktuellen angezeigten News erhalten ... TYPOSCRIPT 10 = TEXT 10.data = DB:tt_news:AKT_ID:title Anstelle von AKT_ID müsste die per GET übergebene ID der angezeigten News eingesetzt werden! Ich habe schon ein wenig probiert: TYPOSCRIPT 10.TEXT 10.data = DB:tt_news:{GPvar:tx_ttnews|tt_news}:title Das funktioniert leider schonmal nicht Gibts eine Möglichkeit diese zwei data Objekte zu verschachteln ... ODER gibts vielleicht eine einfachere Möglichkeit auf den Titel der akt. News (Single Ansicht) zuzugreifen?! Gruß, Evil |
|
Verfasst am: 30. 01. 2007 [18:21]
|
|
|
steffenk
Moderator
Dabei seit: 22.09.2005
Beiträge: 4839
|
ist schon korrekt - einfach dahinter ein TYPOSCRIPT 10.insertData=1 |
|
Verfasst am: 30. 01. 2007 [22:58]
|
|
|
EvilBMP
Themenersteller
Dabei seit: 06.03.2006
Beiträge: 37
|
das geht aber leider nicht mit dem data attribut, sondern nur mit dem value attribut ... nehme ich also statt data das value attribut, dann gibt er mir einfach den string aus mit der ersetzten GPvar TYPOSCRIPT 10.TEXT 10.value = DB:tt_news:{GPvar:tx_ttnews|tt_news}:title 10.insertData = 1 Ergebnis: HTML DB:tt_news:19:title Nur wie bekomme ich nun diesen value per data verarbeitet ? EDIT: Also ich hab dann jetzt mal noch ein bissl probiert und gegoogled Der Tip von steffenk war schonmal ganz gut, jedoch bewirkt das insertData = 1 leider nur, dass die GPvar geparst wird. Standardmäßig kann man in eine DB-Klausel keine GPvars einfügen - Konstanten oder andere Variablen funktionieren jedoch. Damit also der Data-String zweimal geparst wird, muss über dataWrap erst einmal die GPvar in den String eingefügt und durch wrap3 noch einmal umschlossen werden, so dass daraus eine Typoscript Variable wird. Dadurch kann per insertData noch einmal der umgesetzte DB-String geparst bzw. übersetzt werden. wrap3 wird in der TYPO3-Funktion vor insertData und nach dataWrap aufgerufen - es ist also völlig belanglos in welcher Reihenfolge die Variablen gesetzt werden, da diese eine feste Abarbeitungsreihenfolge besitzen. TYPOSCRIPT 10.dataWrap = DB:tt_news:{GPvar:tx_ttnews|tt_news}:title 10.wrap3 = {|} 10.insertData = 1 Umsetzung: 1. Zeile: DB:tt_news:{GPvar:tx_ttnews|tt_news}:title 2. Zeile: {DB:tt_news:19:pid} 3. Zeile: News-Titel der News mit der ID 19 Eingesetzt ist TYPO3 v4.04 Ich hoffe, ich kann hiermit einigen anderen Suchenden helfen ... Viel Spaß beim probieren Gruß, Evil [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 31.01.2007 um 00:19.] |
|
Verfasst am: 15. 10. 2007 [22:16]
|
|
|
sissi
Dabei seit: 08.02.2004
Beiträge: 255
|
Hey Evil, ich hab das mal eben versucht zu uebertragen 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... TYPOSCRIPT page.10.marks.PAGETITLE = TEXT page.10.marks.PAGETITLE.dataWrap = DB:tt_news_cat:{GPvar:tx_ttnews|cat}:title page.10.marks.PAGETITLE.wrap3 = {|} page.10.marks.PAGETITLE.insertData = 1 gibt aber nix aus....habsch irgendwo nen denkfehler?! viele gruesse sissi |
|
Verfasst am: 15. 10. 2007 [22:29]
|
|
|
just2b
Moderator
Dabei seit: 04.08.2004
Beiträge: 19047
|
hab mir mal die mühe gemacht: http://www.typo3.net/forum/list/list_post//67737/ georg => TYPO3 - inspiring people to share <= aber kein Support per PM!
=> in eigener Sache: · inspiring people to share your location Trag dich in die TYPO3 Weltkarte ein und zeige wie groß die TYPO3 Community ist - vielen Dank!<= |
|
Verfasst am: 17. 10. 2007 [02:01]
|
|
|
EvilBMP
Themenersteller
Dabei seit: 06.03.2006
Beiträge: 37
|
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! TYPOSCRIPT 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. TYPOSCRIPT 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 TYPOSCRIPT 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: TYPOSCRIPT 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: PHP 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 |
|
Verfasst am: 28. 10. 2007 [15:59]
|
|
|
sissi
Dabei seit: 08.02.2004
Beiträge: 255
|
hi, dein ansatz hat mich auf die richtige spur geschubst hab das ganze in mein wiki aufgenommen: http://typo3pwnage.com/doku.php?id=knowledgebase:gpvar_in_select allerdings nutze ich eine "echte" typoscript-select abfrage und nicht RECORDS wie du, das prinzip (kleinen umweg über std gehen) ist aber das gleiche. viele grüsse sissi |
|
Verfasst am: 14. 10. 2008 [14:23]
|
|
|
thomas_swoon
Dabei seit: 13.06.2007
Beiträge: 46
|
Hi! der link scheint leider nicht mehr zu gehen, kannst du die lösung bitte hier posten. Ich brauche für eine condition die id der Kategorie in der single view, die wie schon oben geschrieben aber nicht als globale variable verfügbar ist. das ganze wird noch erschwert, dass tt_news die einzelnen News-Einträge über eine eigene Tabelle tt_news_cat_mm mit der jeweiligen Kategorie verknüpft. |
|
Verfasst am: 15. 10. 2008 [12:02]
|
|
|
sissi
Dabei seit: 08.02.2004
Beiträge: 255
|
hi, die ganze typo3pwnage-site scheint down zu sein. hoffe sie läuft bald wieder! |
|
Verfasst am: 04. 11. 2008 [12:14]
|
|
|
Mopps
Dabei seit: 21.02.2006
Beiträge: 849
|
Vielen Dank für die Beiträge. Der Google Cache hilft manchmal weiter. TYPOSCRIPT
|



