VM2 - Artikelsuche - Artikel mit Sonderzeichen

  • Hallo zusammen,


    um die Suche in Backend und Frontend etwas zu verfeinern, habe ich folgende Einträge editiert, die Artikelsuche funktioniert damit einwandfrei.
    Diese Datei wurde editiert:
    administrator/components/com_virtuemart/models/product.php:



    Nun bin ich leider auf das Problem gestoßen, dass einige Artikelnummern ein Sonderzeichen beinhalten, bei der Suche werden zBsp. Bindstriche und "/" einfach ignoriert und der entsprechende Artikel wird nicht gefunden.


    Hat jemand evtl. eine Idee, wie ich der Suche noch etwas mehr auf die Sprünge helfen kann?
    Der Fairness halber möchte ich noch erwähnen, dass ich die Anfrage auch in einem Nachbaruniversum gepostet habe, leider konnte mir bislang noch niemand weiter helfen.


    Bin wie immer für jede Hilfe dankbar.


    Viele Grüße Ray

    was manche sich selber vormachen, macht ihnen so schnell keiner nach

  • Moin Ray,


    ich hab mich damit noch nicht wirklich auseinander gesetzt. Im virtuemart.org Forum ist der Stand dazu wie folgt: Es wird vermutet, dass VM 2 die Abfrage "use _db->getEscaped" benutzt, um Sonderzeichen zu filtern.


    Allerdings soll diese Abfrage tatsächlich über "vmRequest::uword" erfolgen. Ort des Geschehens: .../administrator/components/com_virtuemart/helpers/config.php.


    Dort kann man offensichtlich den "Regex", übersetzt heißt das sowiel viel wie "regulärer Ausdruck" ändern. Hier sollte man aber sehr vorsichtig agieren, da man sich dabei sehr schnell eine Sicherheitslücke produzieren kann!


    Quelle für diese Information:
    http://forum.virtuemart.net/in…01774.msg337947#msg337947
    http://forum.virtuemart.net/in…98524.msg332819#msg332819

  • Moin Moin und herzlichen Dank für die Antwort!


    Hab mir gerade Deine Links auf Virtuemartnet angeschaut und muss sagen, dass sich dort auch keine Welle der Begeisterung breit macht :cool:
    Ich kann doch nicht für eine verfeinerte Artikelsuche eine Backdoor-Abfrage auf der Datenbank erlauben???
    Artikel umbenennen geht auch nicht, da die Artikelnummern vom Hersteller erfolgen und auch in den Katalogen die Artikelnummern so vorgegeben sind.


    Hoffe mal, dass ein nächste Update die Sache richten wird, kann ja eigentlich nicht so bleiben, hmmm ?


    Grüßle aus Stuttgart


    Ray

    was manche sich selber vormachen, macht ihnen so schnell keiner nach

  • Also mit den Sonderzeichen klappt leider immer noch nicht, was aber sehr hilfreich ist, wenn man die Artikelsuche bemüht und nicht die Kategorien aufgelistet haben möchte ist das, vielleicht hilft es ja dem ein oder anderen auch weiter ;-)


    bearbeite components/com_virtuemart/views/category/tmpl/default.pfp


    Overide benutzen, damit beim Update die Änderungen nicht überschrieben werden!
    templates/YOUR_TEMPLATE_NAME/html/com_virtuemart/category/ (sollten die Ordner noch nicht bestehen -->> anlegen)


    1. Ab Zeile 49 (kann von der jeweiligen Installationsversion etwas abweichen)
    suchen:

    PHP
    1. echo $edit_link; */ ?>
    2. <div class="category_description">
    3. <?php echo $this->category->category_description ; ?>
    4. </div>
    5. <?php



    ersetzen mit:

    PHP
    1. echo $edit_link; */
    2. if ( empty($this->keyword) ) {
    3. ?>
    4. <div class="category_description">
    5. <?php echo $this->category->category_description ; ?>
    6. </div>
    7. <?php
    8. }



    2. Ab Zeile 56 (kann von der jeweiligen Installationsversion etwas abweichen)
    suchen:

    Code
    1. if ( VmConfig::get('showCategory',1) ) {


    ersetzen mit:

    Code
    1. if ( VmConfig::get('showCategory',1) && empty($this->keyword) ) {



    3. Ab Zeile 136 (kann von der jeweiligen Installationsversion etwas abweichen)
    suchen:

    PHP
    1. echo $edit_link; */ ?>
    2. <div class="category_description">
    3. <?php echo $this->category->category_description ; ?>
    4. </div>
    5. <?php



    ersetzen mit:

    PHP
    1. <h2><?php echo JText::_('COM_VIRTUEMART_SEARCH_RESULTS') . ( $this->keyword ? ': ' . $this->keyword : '' ); ?></h2>


    Als letztes noch das Languagefile bearbeiten language/de-DE/de-DE.com_virtuemart.ini


    suche nach:


    Code
    1. COM_VIRTUEMART_SEARCH_ORDER_VIRTUEMART_PRODUCT_ID="Artikelsuche"


    ersetzen mit (Zeile hinzufügen:

    Code
    1. COM_VIRTUEMART_SEARCH_ORDER_VIRTUEMART_PRODUCT_ID="Artikelsuche"
    2. COM_VIRTUEMART_SEARCH_RESULTS="Such Resultate"


    Gruß Ray

    was manche sich selber vormachen, macht ihnen so schnell keiner nach

    3 Mal editiert, zuletzt von rayc ()

  • Hallo,


    es gibt derzeit leider noch keine Lösung für die Sonderzeichen, zumindest ist mir keine bekannt.
    Siehe auch die beiden Links, die der Hausherr gepostet hat.


    Zitat von Media-Service-Essen


    Meine geschriebene Lösung dient nur dazu, die Kategorien auszublenden, damit die Suche etwas übersichtlicher wird, das funktioniert auch prima.


    Viele Grüße Ray

    was manche sich selber vormachen, macht ihnen so schnell keiner nach

  • Im Virtuemart-Forum gibt es einen neuen Lösungsansatz, allerdings habe ich mich nicht getraut diesen auszuprobieren, da mir nicht klar ist, welche Risiken es mit sich bringt wenn man es umsetzt.


    Originaltext aus dem Virtuemart-Forum:



    was meint Ihr dazu, soll man es wagen?


    Viele Grüße Ray

    was manche sich selber vormachen, macht ihnen so schnell keiner nach

  • Es sollte besser abgewartet werden, wie sich einer der Entwickler dazu äußert. Für den Benutzer oder selbst erfahrenen VM-Guru ist dies m.E. nämlich überhaupt nicht abschätzbar.

  • der Meinung bin ich auch, da ich mit dem Problem nicht alleine da stehe, stecke ich auch die Hoffnungen in die Arbeit der Entwickler.
    Wünsch Dir einen schönen Feiertag.


    Viele Grüße Ray

    was manche sich selber vormachen, macht ihnen so schnell keiner nach

  • Wir stehen jetzt bei Virtuemart 2.0.12f. Die Suche wird mit Sonderzeichen usw. voraussichtlich ab der nächsten Stable Version funktionieren.

  • Hallo,
    habe gerade das problem das bei mir in der Suche Produkte aus Kategorien mit Umlauten gefunden werden wenn man ein gleiches Wort ohne Umlaute eingibt.
    Beispiel Suchwort Kunst findet Produkte aus der Kategorie „Künstliche Intelligenz“.
    Zählen Umlaute auch zu Sonderzeichen oder gibt es hierfür einen anderen Lösungsweg?


    Viele Grüße

  • Hallo,
    habe gerade das problem das bei mir in der Suche Produkte aus Kategorien mit Umlauten gefunden werden wenn man ein gleiches Wort ohne Umlaute eingibt.


    Hi, ich muss das Thema mal hochholen. Ver. 2.0.24 und Suchausdruck "Uhr" listet alle Datensätze mit "...ausfÜHRlicher Beschreibung..." auf.

    ...gibt es hierfür einen anderen Lösungsweg?


    gibt es den schon :confused:


    Wer hat einen Tipp, wie man das ändern kann?


    Wir stehen jetzt bei Virtuemart 2.0.12f. Die Suche wird mit Sonderzeichen usw. voraussichtlich ab der nächsten Stable Version funktionieren.


    Der Beitrag ist auch schon 1 Jahr alt und wir sind bei 2.0.24: Soll das jetzt funktionieren und ich mache etwas falsch oder ist das noch nicht umgesetzt?


    Bitte mal kurze Info