Hi
Ich mache 3 DB-Abfragen der tt_news per TS.
Jede Abfrage hat seine eigene Kategorie also folgendermaßen.
Abfrage 1: Datensätze der Kategorie A
Abfrage 2: Datensätze der Kategorie B
Abfrage 3: Datensätze der Kategorie C
Jede Abfrage gibt max 2 Datensätze aus.
Jetzt soll es so sein:
Insgesamt sollen immer max 3 Datensätze ausgegeben werden.
D.h.
- Abfrage 2 liefert 2 Datensätze also soll bei Abfrage 3 keine Ausgabe erfolgen
- Abfrage 2 liefert 1 Datensatz also soll bei Abfrage 3 auch 1 Datensatz ausgegeben werden
- Abfrage 2 liefert keinen Datensatz also soll bei Abfrage 3 jetzt 2 Datensätze ausgegeben werden
D.h. die Abfrage 3 dient als Auffüller wenn bei Abfrage 2 weniger wie 2 Datensätze ausgegeben werden
Aktuell sieht mein TS folgermaßen aus
tmp.tt_news_db = CONTENT
tmp.tt_news_db {
table = tt_news_cat
select {
# the category folder(s)
pidInList = {$news.news_sysordner}
join = tt_news_cat_mm ON (tt_news_cat.uid = tt_news_cat_mm.uid_foreign) INNER JOIN tt_news ON (tt_news.uid = tt_news_cat_mm.uid_local)
where = tt_news.deleted=0 AND tt_news.hidden=0 AND tt_news.sys_language_uid=0 AND (tt_news_cat_mm.uid_foreign = 2)
orderBy = datetime desc
selectFields = tt_news.title, tt_news.bodytext, tt_news.deleted, tt_news.hidden, tt_news.uid, tt_news_cat.single_pid, tt_news_cat_mm.uid_foreign
max = 2
}
renderObj = COA
renderObj {
wrap = <div class="news-list-item">|</div>
10 = TEXT
10{
field = title
wrap = <h3><p class="newsTitle">|</p></h3>
}
20 = COA
20{
wrap = <p>|</p>
10 = TEXT
10{
field = bodytext
stripHtml = 1
crop = 70 | ... | 1
}
20 = TEXT
20{
value = [mehr]
wrap = <span class="news-list-morelink">|</span>
typolink{
parameter.field = single_pid
additionalParams = &no_cache=1&tx_ttnews[tt_news]={field:uid}
additionalParams.insertData = 1
}
}
}
40 = COA
40{
wrap = <hr class="clearer" />|
}
/*
100=TEXT
100.data = debug:data
*/
}
}
lib.newsTeaser = COA
lib.newsTeaser {
wrap = <div class="news-list-container">|</div>
### HIGHLIGHT
10 = CONTENT
10 < tmp.tt_news_db
10{
select {
where = tt_news.deleted=0 AND tt_news.hidden=0 AND tt_news.sys_language_uid=0 AND (tt_news_cat_mm.uid_foreign = {$news.highlight_kategorie})
}
wrap = |
}
### BEREICH
20 = CONTENT
20 < tmp.tt_news_db
20{
select {
where = tt_news.deleted=0 AND tt_news.hidden=0 AND tt_news.sys_language_uid=0 AND (tt_news_cat_mm.uid_foreign = {$news.bereich_kategorie})
}
wrap = |
}
### ALLGEMEIN
30 = CONTENT
30 < tmp.tt_news_db
30{
select {
where = tt_news.deleted=0 AND tt_news.hidden=0 AND tt_news.sys_language_uid=0 AND (tt_news_cat_mm.uid_foreign = {$news.allgemein_kategorie})
}
wrap = |
}
}
Ich hatte mir überlegt bei der 2. Abfrage mit einem Register die Anzahl der Datensätze zu zählen und bei Abfrage 3 dann diese Register abzufragen.
Allerdings ist bei der select Anweisung das max kein stdWrap oder sonst was nur int + calc + total daher kann ich hier wohl kein register ansprechen.
Für Hilfe wäre ich sehr dankbar
Grüßle Danton