Hola,
ich benutze folgende Select Abfrage
30 = CONTENT
30 {
table = tt_news
select {
pidInList = 195,194,276
andWhere.dataWrap = uid={GPvar:tx_ttnews|tt_news}
}
renderObj = TEXT
renderObj.field = title
wrap = / <a href="#">|</a>
stdWrap.if.isTrue.data = GPvar:tx_ttnews|tt_news
}
um den Titel einer News in die Breadcrumbs zu bekommen.
Das funktioniert im SingleView auch, nur im ListView zerbricht die Abfrage - da dort keine "uid" gesetzt ist.
Wie schreibe ich das jetzt korrekt um uid nur zu setzen wenn sie auch vorhanden ist ?
"andWhere.dataWrap.if.isTrue.data" bringt leider nichts, auch zahlreiche Variationen davon nicht.
Und wenn wir schonmal dabei sind, das "pidInList" - lässt sich das generalisieren ? Sowas wie "pidInList = *" oder ähnlich ?
Ich habe nämlich sehr viele Seiten die News enthalten...
Kam evtl. nicht ganz raus, also die fragliche Zuweisung ist folgende:
andWhere.dataWrap = uid={GPvar:tx_ttnews|tt_news}
Wie kann man den Fall dass keine uid gesetzt ist abfangen ?
und was bitte willst du in der listenansicht dynamisch setzen? von der 1. news oder wie?
georg
Also:
Ziel der Aktion ist es den Titel einer News im Breadcrumb des Single View auszugeben.
IST:
Home / Infos / Seitentitel der Singleview Seite
SOLL:
Home / Infos / Newstitel
Das macht obiger Codeschnipsel schon super.
Nur leider versagt der halt wenn man in den List View zurück geht.
Dann gibts folgenden MySQl Fehler:
caller t3lib_DB::exec_SELECTquery
ERROR You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND tt_news.deleted=0 AND tt_news.t3ver_state!=1 AND tt_news.hidden=0 AND (tt_ne' at line 4
lastBuiltQuery
SELECT *
FROM tt_news
WHERE
tt_news.pid IN (194,195,276) AND uid= AND tt_news.deleted=0 AND tt_news.t3ver_state!=1 AND tt_news.hidden=0 AND (tt_news.starttime<=1186571895) AND (tt_news.endtime=0 OR tt_news.endtime>1186571895) AND (tt_news.fe_group='' OR tt_news.fe_group IS NULL OR tt_news.fe_group='0' OR (tt_news.fe_group LIKE '%,0,%' OR tt_news.fe_group LIKE '0,%' OR tt_news.fe_group LIKE '%,0' OR tt_news.fe_group='0') OR (tt_news.fe_group LIKE '%,-1,%' OR tt_news.fe_group LIKE '-1,%' OR tt_news.fe_group LIKE '%,-1' OR tt_news.fe_group='-1'))
debug_backtrace require // include // TSpagegen::renderContent // tslib_cObj->cObjGet // tslib_cObj->cObjGetSingle // tslib_cObj->USER // tslib_cObj->callUserFunction // call_user_method // tx_templavoila_pi1->main_page // tx_templavoila_pi1->renderElement // tx_templavoila_pi1->processDataValues // tslib_cObj->cObjGetSingle // tslib_cObj->COBJ_ARRAY // tslib_cObj->cObjGet // tslib_cObj->cObjGetSingle // tslib_cObj->CONTENT // tslib_cObj->exec_getQuery // t3lib_DB->exec_SELECT_queryArray // t3lib_DB->exec_SELECTquery // t3lib_DB->debug
Und ich vermute halt dass die fehlende "UID"
WHERE
tt_news.pid IN (194,195,276) AND uid= AND tt
der Grund dafür ist ?
Eine Möglichkeit wäre jetzt den Klickpfad in jeder Single View Seite bauen zu lassen - statt im Seiten Root - aber das ist angesichts der knapp 70 Single View Seiten etwas zu aufwändig.
just2b schrieb
und was bitte willst du in der listenansicht dynamisch setzen? von der 1. news oder wie?
Dynamisch setzen ?
Soll Deine Frage frei übersetzt heissen:
"Was soll in der Listenansicht im Breadcrumb angezeigt werden ?
Der Titel der ersten News oder wie ?"
Dann lautet die Antwort:
Nein, im ListView soll bitte schön ganz default mässig der Seitentitel (wie im obigen Beispiel ".../Infos/..." ) ausgegeben werden.
Ansonsten verstehe ich die Frage leider nicht
:o
dann nimm das TS doch nur für die Single-Seite
georg
dann prüf einfach mittels stdwrap oder ner condition ob eine variable in der url ist, und wenn nicht, dann mach gar nichts
georg
Jetzt nähern wir uns der Ausgangsfrage - wo würde ich die condition denn sinnvollerweise prüfen lassen, bzw. den stdWrap drumwrappen.
Ich hab nämlich langsam alle Varianten durch ohne Erfolg bisher, daher dachte ich dieses "if.isTrue.data" irgendwie einsetzen zu können...
Ist zwar schon ewig her aber hier meine Lösung:
marks.ROOTLINE = COA
marks.ROOTLINE {
# Standard Rootline Script
10 < temp.rootline
20 = CONTENT
20 {
table = tt_news_cat
select {
pidInList = 27
andWhere.dataWrap = uid="{GPvar:tx_ttnews|cat}"
}
select.selectFields = title
renderObj = COA
renderObj {
10 = TEXT
10 {
stdWrap.override.field = title
stdWrap.required = 1
#stdWrap.wrap = > <a href="javascript:history.back();">|</a>
# hier hab ich bis jetz keine andere Lösung gefunden ...
stdWrap.dataWrap = > <a href="listenansicht/select_category/{GPvar:tx_ttnews|cat}.html">|</a>
}
}
}
30 = CONTENT
30 {
table = tt_news
select {
pidInList = 27
andWhere.dataWrap = uid="{GPvar:tx_ttnews|tt_news}"
}
select.selectFields = title
renderObj = COA
renderObj {
10 = TEXT
10 {
stdWrap.override.field = title
stdWrap.required = 1
stdWrap.wrap = > <p>|</p>
}
}
}
}
Super .. genau das was ich gerade gesucht habe.
Vielen Dank für das TS!! :p