Zum Inhalt springen

searchbox und mm-relations

Erstellt am 31. Dezember 2004 · 1 Antwort · letzte Antwort am 1. Januar 2005

Tags: Datenbank, Frage

dasoe ·

Hallo,

Ich brauche ein wenig Hilfe was die searchbox in extensions anbelangt:
Ich habe einige MM-verknüpfte tabellen deren Inhalt ich auch durchsuchen muss. Das Vorgehen ist klar, aber es endet damit, dass ich (in class.tx_myextensionkey_pi1) einige Erweiterungen zur sql-query machen muss, einige zusätzliche WHERE clauses, um genau zu sein. Wenn ich mir den Code für die searchbox ansehe (in class.tslib_pibase.php) finde ich nicht heraus wie. Tatsächlich kapiere ich nicht wie es funktiniert. Ich sehe nicht wo die eigentliche Suche stattfindet, noch wo eine andere Funktion aufgerufen wird, die das tut.

vermutlich ist irgendwie class.tslib_search im Spiel (da gibt es auch eine Variable $other_search_clauses)?
Aber wo ist sie eingebunden? Und wie kann ich zusaätzliche WHERE-clauses von class.tx_myextensionkey_pi1 einbinden?

Wenn mir irgendjemand kurz die Schritte oder Syntax erklären könnte wäre ich froh!

vielen Dank im Voraus
!!! - & gute neues Jahr Euch allen - !!!!

christian

jenses ·

Hallo,

wenn ich das richtig verstanden habe, wird letzendlich die Abfrage von pi_list_query
(class.tslib_pibase.php, Zeile 908 [version 3.7]) ausgeführt.

Die für Dich wichtigen Sachen passieren hier :

		if ($addWhere)	{$WHERE.=' '.$addWhere.chr(10);}

			// Search word:
		if ($this->piVars['sword'] && $this->internal['searchFieldList'])	{
			$WHERE.=$this->cObj->searchWhere($this->piVars['sword'],$this->internal['searchFieldList'],$table).chr(10);
		}

piVars['sword'] wird durch die Searchbox übergeben,
internal['searchFieldList'] füllst Du in Deiner ext-class,
dort übergibst Du auch $addWhere an pi_exec_query, die wiederum pi_list_query aufruft.
$addWhere sollte also der Schlüssel zu Einbeziehung Deiner verknüpften Tabellen sein.
Ich hoffe, daß ich nicht völlig daneben liege;
da ich ja eigentlich keine Ahnung von php habe. #paralyzed#

viele Grüße
jenses