Zum Inhalt springen

Backend-Suche anpassen/erweitern

Erstellt am 30. Juni 2009 · 5 Antworten · letzte Antwort am 15. Juli 2009

Tags: TCA, Frage

Unbekannter Benutzer ·

Hallo miteinander,

standardmäßig durchsucht die TYPO3 Backend-Suche (Lupe oben rechts) ja schon eine ganze Menge an Tabellen.
Wie kann ich die Suche aber dazu bringen, auch Tabellen aus eigenen Erweiterungen zu durchsuchen?
Beispiel: Für eine kleine Shop-Extension wurde eine Produkte-Tabelle neu angelegt (alles über Extension Kickstarter, also TYPO3 konform).
Wie ist es möglich, auch diese Tabelle in die Backend-Suche mit aufzunehmen (z.B. Suche nach der Artikelnummer)?

Bin für alle Tipps dankbar!

Grüße,
Dennis

JBrooks ·

Hab mal versucht das grob im Core nach zu vollziehen. Im Grunde steuert die Suche rechts oben, die Suche an, die auch beim List Modul am Ende der Seite angezeigt wird.

Wenn du die Datensätze im TYPO3 über deine Extension per $TCA (tca.php) einbaust, so dass du mit dem List Modul diese Datensätze im Backend anzeigen kannst, dann sollten diese Einträge automatisch mit in die Suche aufgenommen werden

Unbekannter Benutzer ·

Die Tabelle ist korrekt im $TCA eingetragen. Daran kann es nicht liegen.
Wenn ich die Suche im List-Modul verwende, dann finde ich auch den gewünschten Datensatz.
Verwende ich allerdings den selben Suchbegriff in der Suche oben rechts, wird nichts gefunden...

JBrooks ·

probier mal bitte folgendes:

Öffne die Datei typo3/class.db_list.inc und geh zur Funktion "makeQueryArray" und trag da mal vor dem return am Ende der Funktion ein print_r($queryParts); ein.

Im Quelltext solltest du dann beim Ausführen der Suche entsprechent das Array mit den Suchabfragen angezeigt bekommen. Schau da bitte mal ob deine Extension dort aufgelistet wird und wenn ja, welche Felder berücksichtigt werden.

Hier ein kleiner Auszug aus meinem Quelltext

...
Array
(
    [SELECT] => title,uid,pid
    [FROM] => sys_workspace
    [WHERE] => pid IN (1,3,5,9,14,13,12,35,29,11,10,6,19,18,17,16,15,7,32,33,68,46,77,78,44,47,63,57,64,65,160,37,39,30,31,2,4,0)  AND sys_workspace.deleted=0   AND (uid LIKE '%test@mail.de%' OR title LIKE '%test@mail.de%' OR description LIKE '%test@mail.de%')
    [GROUPBY] => 
    [ORDERBY] => 
    [LIMIT] => 21
)
Array
(
    [SELECT] => title,uid,pid,hidden
    [FROM] => sys_language
    [WHERE] => pid IN (1,3,5,9,14,13,12,35,29,11,10,6,19,18,17,16,15,7,32,33,68,46,77,78,44,47,63,57,64,65,160,37,39,30,31,2,4,0)    AND (uid LIKE '%test@mail.de%' OR title LIKE '%test@mail.de%')
    [GROUPBY] => 
    [ORDERBY] => title
    [LIMIT] => 21
)
...
Unbekannter Benutzer · · Beste Antwort

Danke für deinen Hinweis!
Leider fehlen mir auf diesem Webserver die Berechtigungen, die genannte Datei zu ändern. Sobald ich den Admin erreicht habe, werde ich das Ergebnis posten.
Bin ja mal gespannt...