Jump to content
xt:Commerce Community Forum

Neues Feld in die Suche einbeziehen


mjuergens
 Share

Recommended Posts

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?

Link to comment
Share on other sites

  • 2 years later...

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)"

Link to comment
Share on other sites

  • 1 month later...

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
  • Create New...