Hallo,
ich habe folgendes Script:
page = PAGE
page.typeNum = 0
page {
5 = CONTENT
5 {
table = pages
selectedFields = uid, title
select.pidInList = 60,61,62,63,64,65
#select.where = (pid = 64)
renderObj = COA
renderObj {
10 = TEXT
10.required = 1
10.field = uid
10.wrap = <p>| <br /></p>
}
}
}
Das funktioniert. Wenn ich aber die pidInList Zeile auskommentiere und versuche z.B. durch eine where Klausel zu ersetzten (wie oben auskommentiert), wird mir kein Datensatz angezeigt. Ist pidInList immer nötig? Und wie könnte ich z.B. in eine where Klausel (pid > 60) benutzen? das > Zeichen kann ich ja in TypoScript nur zum Löschen eines Wertes benutzen, oder?
P.S.:
habe jetzt mal folgendes geschrieben
select.where = (pid = 63) OR (pid = 64)
dann funktioniert es auch. Die pid ist 64, also 63 findet gar keinen Datensatz. Schreibe ich
select.where = (pid = 64) OR (pid = 63)
wird wieder nichts angezeigt !?
P.S.S:
Habe die weitere Beobachtung gemacht, dass bei der OR Verknüpfung nur dann eine Datenmenge zurückgegeben wird, wenn (mindestens) die erste Bedingung erfüllt ist.
Das liegt daran, dass die queries automatisch so ergänzt werden, dass nur Inhalte für die aktuelle Seite kommen, d.h.
where pid = aktuelleSeitenID
wird automatisch ergänzt, insofern du das nicht mir pidInList anders definiert hast.
Je nach Umfang kannst du einfach das cObject von pidInList mit einem HMENU überschreiben, welches nur die entsprechenden IDs per Komma getrennt zurück gibt.
Ich bin noch nicht in die Verlegenheit gekommen einen größeren Umfang von SeitenIds zu übergeben, evtl lässt sich das ja austricksen indem ein %-Zeichen als ID angegeben wird.
Wenn du Wissen willst wie die query effektiv aussieht, kannst du das SQL-Debug Flag in der Installation auf 2 setzen, dann werden alle Queries ausgegeben.
Wenn du dann in die Abfrage z.b.
where = 999=999
einbaust, findest du die entsprechende Abfrage ziemlich leicht über die Browsersuche ( Achtung Cache )
Hallo Chrissli,
danke für die Antwort. Habe mal das SQL - Debug Flag gesetzt und mir das SQL Statement angeschaut. Es ist wie du sagst, dass immer die Abfrage nach der Seiten ID mit drin steht, es sei denn man gibt eine pidInList an. Interessant ist, dass wenn man eine OR Abfrage hinzufügt mit zwei Bedingungen, die zwar jede für sich aber nicht insgesamt geklammert sind, dann werden die Bedingungen nacheinander abgearbeitet und die Seitenabfrage stört nicht mehr. 🙂
Jetzt hab ich es wenigstens verstanden und kann mir überlegen wie ich das hinbekomme.