Zum Inhalt springen

TYPO3 List View - Datensätze eigener Extension - WHERE Statement

Erstellt am 26. November 2013 · 3 Antworten · letzte Antwort am 26. November 2013

Tags: TCA, Datenbank, TYPO3 6.x, Frage

caomhan ·

Hallo TYPO3 Freunde,

ich erstelle derzeit eine neue TYPO3 Extension und nutze dort - ineinander verschachtelt - IRRE. Das Konstrukt sieht grob so aus und stellt Kategorien und Unterkategorien dar:

- Hauptkategorie
--- Unterkategorie
--- Unterkategorie
----- Unterkategorie
----- Unterkategorie
--- Unterkategorie
--- Unterkategorie
- Hauptkategorie
- Hauptkategorie
....

Somit kann ich quasi Kategorioen unendlich tief verschachteln.
Gepflegt wird alles über die entsprechende Hauptkategorie - darin mit IRRE - die Unterkategorien.

Jetzt werden in der List View natürlich alle Kategorien angezeigt (auch die Unterkategorien). Da ich das Bearbeiten nur über die Hauptkategorien zulassen will, meine Frage: Kann ich für diese DB Tabelle in der List View ein zusätzliches WHERE Statement hinterlegen. Sprich "zeige alle Kategorien die kein IRRE Parent haben". Somit bleiben nur die Hauptkategorien - in der wiederum alle Unterkategorien bearbeitet werden können.

Habe die Doku nochmals durchsucht - aber nichts passendes gefunden.
Habt ihr eine Idee?

Wäre super,

vielen Dank!
caom

**Update**
Als Beispiel nun noch ein kleiner Screenshot.

Bildschirmfoto-2013-11-26-um-08.47.39.png

Schweriner ·

Vielleicht kann man ja im Controller in der ListAction anstelle von findAll() einfach findBy[PropertyName] nehmen? Also vielleicht sowas:

$this->deinRepository->findByFeldFuerParentId(NULL)
caomhan ·

Das hat aber doch keinen Einfluss auf die TYPO3-Eigene Listenansicht, oder irre ich mich? Mit der List View meine ich die ganz normale, allgemeine TYPO3 Listenansicht (Modul Web -> Liste). Diese wird doch an sich über TCA konfiguriert - zumindest das was man konfigurieren kann.

Im TCA habe ich allerdings nichts gefunden für ein zusätzliches WHERE Statement.

Grüße,

Schweriner ·

Achso 😛

In der Extension "news" wird im TCA folgendes verwendet, vielleicht hilft Dir das weiter:

'foreign_table' => 'tx_news_domain_model_category',
'foreign_table_where' => ' AND (tx_news_domain_model_category.sys_language_uid = 0 OR tx_news_domain_model_category.l10n_parent = 0) ORDER BY tx_news_domain_model_category.sorting',