mjuergens Posted July 22, 2020 Report Share Posted July 22, 2020 Hallo, ich habe in der Tabelle xt_products ein neues Feld angelegt und ich möchte dieses Feld in die Suche mit einbeziehen. (Version 5.1.4) Mir ist schon klar, dass ich das in den Klassen "search.php" und "search_query.php" machen kann bzw. muss. Dort kann man ja über einen Hook den SQL-Query-String erweiteren. Aber das funktioniert irgendwie nicht richtig. Entweder werden dann zuviele Suchergebnisse angezeigt oder gar keine mehr. Wenn man sich den resultierenden SQL-String anschaut, dann wird eine Erweiterung der WHERE Bedingung aber auch mitten drin eingefügt udn nicht am Ende der WHERE Bedingung. Hat jemand vielleicht ein konkretes Beispiel wie man das korrekt erweitert um ein weiteres Feld in die Suche einzubeziehen? Oder gibt es vielleicht auch die Möglichkeit eine komplett neue SQL-Abfrage für das neue Feld zu erstellen und das Ergebnis davon dann an das vorherige Suchergebnis dran zu hängen? Quote Link to comment Share on other sites More sharing options...
halousi Posted August 25, 2022 Report Share Posted August 25, 2022 Das geht in der xtFramework/classes/search_query.php, einfach hinzufügen: if(SEARCH_USE_NEUESFELD === true) { foreach ($split_keywords as $key => $val) { if(mb_strlen($val) < SEARCH_MODEL_MIN_LENGTH) continue; $this->placeholderParams[] = '%' . $val . '%'; $pmodel_like[]="p.neuesfeld LIKE ?"; } } Entsprechend dann noch den Eintrag in der config_search für "SEARCH_USE_NEUESFELD" oder Du nutzt einfach eine bestehende Konfiguration, z.B auch "if(SEARCH_USE_MODEL === true)" Quote Link to comment Share on other sites More sharing options...
mjuergens Posted October 20, 2022 Author Report Share Posted October 20, 2022 Dieses Thema ist leider immer noch nicht gelöst. Die Lösung von halousi bedutet ja direkt im Quellcode zu ändern, was bezüglich Updates immer schlecht ist. Ich möchte das gerne über einen Hook einbauen, aber ich habe da noch nichts passendes gefunden. Bezüglich der Suche sind die Hooks in der Klasse recht wenig. Quote Link to comment Share on other sites More sharing options...
oldbear Posted October 21, 2022 Report Share Posted October 21, 2022 naja, Du könntest diesen Hook benützen: ($plugin_code = $xtPlugin->PluginCode('class.search_query.php:F_Keywords_top')) ? eval($plugin_code) : false; if(isset($plugin_return_value)) { return $plugin_return_value; } Der muss halt dann den gesamten Code nach diesem Hook enthalten zzgl. dem Zusatz von halousi. Die Variable $plugin_return_value noch auf true setzen Grüsse Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.