Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: IntelliSearch für modified eCommerce Shopsoftware

    kwiekids

    • Schreiberling
    • Beiträge: 390
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #120 am: 23. Juni 2010, 20:47:45
    Die vorherige Lösung hat nicht bei allen FF Versionen funktioniert.

    Habe nun eine funktionierende Version zusammen gestellt und das bestehende Modul so angepasst, dass es nun valide ist.

    Die Anpassungen finden in der general.js.php und in der search.php statt, weiterhin habe ich eine JS-Datei ergänzt - auto_compl_off.js.

    So, nun viel Spass, bei der angepassten Version ;-)

    cheers 8)
    kwiekids

    [EDIT Tomcraft: Modul in Beitrag 1 angehängt]

    mantis

    • Viel Schreiber
    • Beiträge: 1.188
    • Geschlecht:
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #121 am: 24. Juni 2010, 08:29:36
    Funzt super, diese Lösung habe ich schon länger gesucht

    Danke

    Gruss
    mantis

    kwiekids

    • Schreiberling
    • Beiträge: 390
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #122 am: 24. Juni 2010, 09:02:04
    Sehr gut ! ;-)

    Danke fürs Feedback

    cheers 8)
    kwiekids

    Spritzpistole

    • Fördermitglied
    • Beiträge: 816
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #123 am: 24. Juni 2010, 10:11:32
    Ich werd es heut Nachmittag, wenn ich aus der Kanzlei komme, auch gleich mal einbauen und ausprobieren.

    Mir kribbelte es da schon länger in den Fingern ;)

    Gruß
    Thomas

    Sämtliche meiner Beiträge und Hinweise zu rechtlichen Themen, erfolgen ausschließlich zur allgemeinen Information und nicht zur Rechtsberatung. Zur Lösung konkreter Rechtsfragen wenden Sie sich bitte an die dafür zugelassenen Berufsträger.

    kwiekids

    • Schreiberling
    • Beiträge: 390
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #124 am: 24. Juni 2010, 10:13:12
    Viel Erfolg beim (ent)kribbeln ;-)

    cheers 8)
    kwiekids

    Spritzpistole

    • Fördermitglied
    • Beiträge: 816
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #125 am: 24. Juni 2010, 15:17:13
    So,

    nachdem ich jetzt noch kurz einen Abstecher zu meinem Bike-Dealer machen musste - Kurbel ist auf dem Nachhauseweg abgebrochen - konnte ich das IntelliSearch wunderbar problemlos in kürzester Zeit (dauerte max. 15min inkl. Farbanpassungen) einbauen.

    Funktioniert tadellos!

    Gruß
    Thomas

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #126 am: 24. Juni 2010, 15:24:09
    Jup, ist ein klasse Modul - sollte zum Standard werden in modified eCommerce Shopsoftware.
    Ist deutlich schneller als AJAX Suggest Search und sowas gehört einfach in einen modernen Shop.

    Emieteceha

    • Neu im Forum
    • Beiträge: 42
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #127 am: 17. Juli 2010, 19:42:10
    Hallo Gemeinde,

    durch die Diskussion im Thread Professionelle Produktsuche zur stärkeren Kundenbindung bin ich auf das IntelliSearch-Modul aufmerksam geworden.

    Nach einem kurzen Abstecher in den Code, bin ich dabei auf einige Bereiche gestoßen, die mich zum Nachdenken bringen.

    Eure Abfragentypen machen prinzipiell Tablescans erforderlich.
    Das heißt, dass *jeder* Eintrag in der Datenbank daraufhin untersucht wird, ob er die Suchanfrage matcht. Ich weiß, dass hier auch Leute mitlesen, die nicht den technischen Background haben, darum will ich mal kurz erklären, warum das problematisch ist:
    Normalerweise sollen Anfragen aber über Indices laufen.
    Ein Index, den kann man sich vorstellen wie eine Reihe von Gabelungen.
    Es wird an Gabelung 1 geprüft, ob man links oder rechts weitergehen soll.
    Bei 1000 Datensätzen, würden sich die zu untersuchenden Datensätze von 1.000 auf 500 reduzieren. Ab der zweiten Gabelung, kommen nur noch 250 in Frage, ab der dritten 125 usw. - bis am Ende die gesuchte Ergebnismenge vorliegt.
    Das Ganze geschieht blitzschnell in wenigen Schritten.
    Bestimmte Anfragen können von diesen Indices leider keinen Gebrauch machen, was es erforderlich macht, *alle* Datensätze zu untersuchen.

    Das mag kein Problem sein, wenn nur wenige User gleichzeitig auf der Seite unterwegs sind. Wenn es aber mal mehr werden, z.B. bedingt durch das Weihnachtsgeschäft, können solche Abfragen sich negativ durch lange Ladezeiten bemerkbar machen. Die Datenbank kommt dann einfach nicht mehr hinterher.

    Sobald die AJAX-Suggest-Funktion aktiv ist, reichen verhältnismäßig wenig User aus, um so einen Datenbankserver ins Schwitzen zu bringen.

    Ich rate daher davon ab, dieses Modul zum Standard zu erklären.
    Es ist wirklich eine tolle Arbeit, skaliert aber schlecht und eignet sich nicht für jeden Anwender. Viele werden davon profitieren - hier gab es auch schon positives Feedback :) . Aber vielen anderen könnte so eine Funktion ernsthafte Performance-Schwierigkeiten bereiten.

    Für gut besuchte Shops könnte der Einsatz eines solchen Modules mitunter darüber entscheiden, ob man sich einen weiteren Server hinstellt, oder nicht.

    Ich hoffe, dass das Feedback ein bisschen weiterhilft!

    Beste Grüße,
    Em

    StanleyStagger

    • Neu im Forum
    • Beiträge: 9
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #128 am: 19. Juli 2010, 11:06:08
    Super Erweiterung! Anbei eine 'quick&dirty' Version für alle die auch die Hersteller in den Vorschlägen haben wollen - vgl. http://www.wertvoll-berlin.com

    Code: PHP  [Auswählen]
    <?php

    /* -----------------------------------------------------------------------------------------
       $Id: search.php 1262 2005-09-30 10:00:32Z mz $  

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(search.php,v 1.22 2003/02/10); www.oscommerce.com
       (c) 2003      nextcommerce (search.php,v 1.9 2003/08/17); www.nextcommerce.org

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/

    $box_smarty = new smarty;
    $box_smarty->assign('tpl_path', 'templates/' . CURRENT_TEMPLATE . '/');
    $box_content = '';

    require_once (DIR_FS_INC . 'xtc_image_submit.inc.php');
    require_once (DIR_FS_INC . 'xtc_hide_session_id.inc.php');

    $box_smarty->assign('FORM_ACTION', xtc_draw_form('quick_find', xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, '', 'NONSSL', false), 'get') . xtc_hide_session_id());
    //BOF - Dokuman - 14.08.2009 - Put dynamic "search"-text into box
    //$box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', '', 'size="20" maxlength="30"'));
    $box_smarty->assign('INPUT_SEARCH', xtc_draw_input_field('keywords', IMAGE_BUTTON_SEARCH, 'size="20" maxlength="30" style="width:150px;height:18px;" onfocus="if(this.value==this.defaultValue) this.value=\'\';" onblur="if(this.value==\'\') this.value=this.defaultValue;" onkeyup="xajax_intelliSearch(this.value);"'));

    //EOF - Dokuman - 14.08.2009 - Put dynamic "search"-text into box
    $box_smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_quick_find.gif', IMAGE_BUTTON_SEARCH));
    $box_smarty->assign('FORM_END', '</form>');
    $box_smarty->assign('LINK_ADVANCED', xtc_href_link(FILENAME_ADVANCED_SEARCH));
    $box_smarty->assign('BOX_CONTENT', $box_content);

    $box_smarty->assign('language', $_SESSION['language']);
    $box_smarty->caching = 0;
    $box_search = $box_smarty->fetch(CURRENT_TEMPLATE . '/boxes/box_search.html');

    $smarty->assign('box_SEARCH', $box_search);
    /*******************************************
    INTELLI SEARCH

    Extension Module for the XT Commerce Project.
    http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

    Copyright (c) 2006 Ing. Michael Fürst
    --------------------------------------------
    based on:
    The XAJAX Project Framework
    http://www.xajaxproject.org
    *******************************************/


    // Load XAJAX Library - http://www.xajaxproject.org
    // ------------------------------------------------
    require("templates/".CURRENT_TEMPLATE."/javascript/xajax/xajax.inc.php");
    $intelliSearchXajax=new xajax();

    /*******************************************
    Intelli Search Configuration:
    You may change the following parameters as you like.
    Please have a look at the notes on the right hand side!
    *******************************************/

    define(INTELLISEARCH_REQUESTMETHOD,XAJAX_GET); // Method for sumiting Data to the Webserver. Possible values: XAJAX_GET / XAJAX_POST.
    define(INTELLISEARCH_SEARCH_IN_PRODUCTNAME,true); // Would you like to search in the product names? Possible values: true / false. Standard: true
    define(INTELLISEARCH_SEARCH_IN_PRODUCTDESCRIPTION,false); // Would you like to search in the product description? Possible values: true / false. Standard: true
    define(INTELLISEARCH_SEARCH_IN_CATEGORYNAMES,true); // Would you like to search in the category names? Possible values: true / false. Standard: true

    define(INTELLISEARCH_SUBSTRING_COUNT,25); // Length of results in the list (signs). Possible values: INT from 1 to 256. Standard: 15
    define(INTELLISEARCH_SUBSTRING_FINALIZER,'...'); // Signs after a word is cutted in the suggestlist. Possible values: Any String. Standard: '...'
    define(INTELLISEARCH_PRODUCT_RESULT_COUNT,10); // How many found products should be displayed? Possible values: INT from 1 to 256. Standard: 5
    define(INTELLISEARCH_CATEGORY_RESULT_COUNT,5); // How many found categories should be displayed? Possible values: INT from 1 to 256. Standard: 5
    define(INTELLISEARCH_HIGHLIGHT_FOUND_TEXT,true); // Would you like to highlight (<strong>) the found text in the result list? Possible values: true / false. Standard: true

    /*******************************************
    Intelli Search Core:
    Please DON'T CHANGE any lines of code bellow!
    Changes may result in data loss and a non
    working extension!
    *******************************************/


    // Suggest List Function
    // $searchQuery [STRING] will be submited via POST/GET
    // ------------------------------------------------

    function intelliSearch($searchQuery) {
            $intelliSearchObjResponse = new xajaxResponse();
            $suggestListContent='';
            $foundProductsCount = array();
            $foundCategoriesCount = array();

            // Clear & hide suggest list
            // ------------------------------------------------
            $intelliSearchObjResponse->addClear("intelliSearchResult","innerHTML");
            $intelliSearchObjResponse->addAssign("intelliSearchResult","style.display","none");
            $intelliSearchObjResponse->addAssign("intelliSearchResult","style.visibility","hidden");

            if (strlen($searchQuery)>0) {
                    // Catch XTC category data from database
                    // ------------------------------------------------
                    if (INTELLISEARCH_SEARCH_IN_CATEGORYNAMES) {
                            $xtcSQLQuery = "SELECT
                                                    categories_description.categories_name,
                                                    categories_description.categories_id
                                                    FROM "
    . TABLE_CATEGORIES_DESCRIPTION . " AS categories_description
                                                    INNER JOIN "
    . TABLE_CATEGORIES . " AS categories ON categories_description.categories_id=categories.categories_id
                                                    WHERE categories_description.language_id='"
    .$_SESSION['languages_id']."'
                                                    AND (categories.categories_status=1)
                                                    AND categories_description.categories_name LIKE '%"
    .mysql_real_escape_string($searchQuery)."%'
                                                    ORDER BY categories.sort_order ASC, categories_description.categories_name ASC
                                                    LIMIT 0,"
    .INTELLISEARCH_CATEGORY_RESULT_COUNT;
                            $category_query = xtc_db_query($xtcSQLQuery);

                            while (($row = xtc_db_fetch_array($category_query )) && ($foundCategoriesCount[] = $row)){
                                    $originalCategoryName=substr($row['categories_name'],0,INTELLISEARCH_SUBSTRING_COUNT).(strlen($row['categories_name'])>INTELLISEARCH_SUBSTRING_COUNT ? INTELLISEARCH_SUBSTRING_FINALIZER : false);
                                    if (INTELLISEARCH_HIGHLIGHT_FOUND_TEXT) {
                                            $categoryName=preg_replace('/(' . preg_quote($searchQuery,'/') . ')/i', '<u>$1</u>', $originalCategoryName);
                                    } else {
                                            $categoryName=$originalCategoryName;
                                    }
                                    $suggestListContent.="<a href=\"".xtc_href_link(FILENAME_DEFAULT, xtc_category_link($row['categories_id'],$categoryName))."\"><span style=\"float:right; font-weight:normal;white-space: nowrap;\">Kategorie</span>".$categoryName."</a>";
                            }
                    }
    // Catch XTC MANUFACTURERS data from database
                    // ------------------------------------------------
                    if (INTELLISEARCH_SEARCH_IN_CATEGORYNAMES) {
                            $xtcSQLQuery = "SELECT
                                                    manufacturers_name,
                                                    manufacturers_id
                                                    FROM "
    . TABLE_MANUFACTURERS . "
                                                    WHERE manufacturers_name LIKE '%"
    .mysql_real_escape_string($searchQuery)."%'
                                                    ORDER BY manufacturers_name ASC
                                                    LIMIT 0,"
    .INTELLISEARCH_CATEGORY_RESULT_COUNT;
                            $manu_query = xtc_db_query($xtcSQLQuery);

                            while (($row = xtc_db_fetch_array($manu_query )) && ($foundmanuCount[] = $row)){
                                    $originalmanuName=substr($row['manufacturers_name'],0,INTELLISEARCH_SUBSTRING_COUNT).(strlen($row['manufacturers_name'])>INTELLISEARCH_SUBSTRING_COUNT ? INTELLISEARCH_SUBSTRING_FINALIZER : false);
                                    if (INTELLISEARCH_HIGHLIGHT_FOUND_TEXT) {
                                            $manuName=preg_replace('/(' . preg_quote($searchQuery,'/') . ')/i', '<u>$1</u>', $originalmanuName);
                                    } else {
                                            $manuName=$originalmanuName;
                                    }
                                    $suggestListContent.="<a href=\"".xtc_href_link(FILENAME_DEFAULT, xtc_manufacturer_link($row['manufacturers_id'],$manuName))."\"><span style=\"float:right; font-weight:normal;white-space: nowrap;\">Marke</span>".$manuName."</a>";
                            }
                    }
                    // Catch XTC product data from database
                    // ------------------------------------------------

                    $xtcSQLQuery =  "SELECT
                                                    products_description.products_name,
                                                    products_description.products_id
                                                    FROM "
    . TABLE_PRODUCTS_DESCRIPTION . " AS products_description
                                                    INNER JOIN "
    . TABLE_PRODUCTS . " AS products ON products_description.products_id=products.products_id
                                                    WHERE products_description.language_id='"
    .$_SESSION['languages_id']."'
                                                    AND (products.products_status=1)
                                                    AND ("
    ;

                                                    if (INTELLISEARCH_SEARCH_IN_PRODUCTNAME) {
                                                            $temp_ary = explode(' ', mysql_real_escape_string($searchQuery));
                                                            $temp_ary2 = array();
                                                            for ( $i = 0; $i <count($temp_ary); ++$i )
                                                            {
                                                                    $temp_ary2[] = ' products_description.products_name LIKE \'%' . $temp_ary[$i] . '%\' ';
                                                            }
                                                            if ( count($temp_ary2)> 0 )
                                                            {

                                                                    //$xtcSQLQuery.="products_description.products_name LIKE '%".mysql_real_escape_string($searchQuery)."%' ";
                                                                    $xtcSQLQuery.=implode(' AND ', $temp_ary2);
                                                            }
                                                            $firstItem=false;
                                                    }
                                                    if (INTELLISEARCH_SEARCH_IN_PRODUCTDESCRIPTION) {
                                                            !$firstItem ? $xtcSQLQuery.=" OR" : false;
                                                            $xtcSQLQuery.=" products_description.products_description LIKE '%".mysql_real_escape_string($searchQuery)."%' ";
                                                            $firstItem=false;
                                                    }
                                                    $xtcSQLQuery.="
                                                    )
                                                    ORDER BY products. products_sort ASC, products_description.products_name ASC
                                                    LIMIT 0,"
    .INTELLISEARCH_PRODUCT_RESULT_COUNT;
                    $product_query = xtc_db_query($xtcSQLQuery);

                    while (($row = xtc_db_fetch_array($product_query)) && ($foundProductsCount[] = $row)){
                            $originalProductName=substr($row['products_name'],0,INTELLISEARCH_SUBSTRING_COUNT).(strlen($row['products_name'])>INTELLISEARCH_SUBSTRING_COUNT ? INTELLISEARCH_SUBSTRING_FINALIZER : false);
                            if (INTELLISEARCH_HIGHLIGHT_FOUND_TEXT) {
                                    $productName=preg_replace('/(' . preg_quote($searchQuery,'/') . ')/i', '<u>$1</u>', $originalProductName);
                            } else {
                                    $productName=$originalProductName;
                            }
                            $suggestListContent.="<a href=\"".xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($row['products_id'], $productName))."\"><span style=\"float:right; font-weight:normal;white-space: nowrap;\">Artikel</span>".$productName."</a>";
                    }

                    // Send resultset as XML to Client
                    // ------------------------------------------------
                    $suggestListContent=utf8_encode($suggestListContent);
                    $intelliSearchObjResponse->addAssign("intelliSearchResult","innerHTML",$suggestListContent);

                    // Display suggest list (if one ore more resultsets found)
                    // ------------------------------------------------
                    if ((count($foundProductsCount) + count($foundCategoriesCount) + count($foundmanuCount))>0) {
                            $intelliSearchObjResponse->addAssign("intelliSearchResult","style.display","block");
                            $intelliSearchObjResponse->addAssign("intelliSearchResult","style.visibility","visible");
                    }
            }

            return $intelliSearchObjResponse->getXML();
    }

    // Initialize function and request
    // ------------------------------------------------
    $intelliSearchXajax->registerFunction("intelliSearch",INTELLISEARCH_REQUESTMETHOD);
    $intelliSearchXajax->processRequests();

    ?>

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #129 am: 19. Juli 2010, 16:56:15
    Danke für die Anpassung, aber mal eine Frage... dein Shop ist doch ein modified eCommerce Shopsoftware Shop, wo genau ist denn eigentlich unser Footer hin gekommen?!

    Grüße

    Torsten

    StanleyStagger

    • Neu im Forum
    • Beiträge: 9
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #130 am: 19. Juli 2010, 17:54:33
    das ganze ist kein modified eCommerce Shopsoftware, sondern eine 3.04sp1 installation mit statischer startseite - darum taucht der normale xt:Commerce footer erst auf den weiterführenden seiten auf.

    gruß,
    robert

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #131 am: 19. Juli 2010, 21:27:15
    Ich hätte schwören können, aber gut. ;-)

    Grüße

    Torsten

    it-adviser

    • Neu im Forum
    • Beiträge: 14
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #132 am: 26. Juli 2010, 15:44:34
    Moinsen!
    Geiles Modul, aber irgendwie scheine ich zu doof zu sein es zu installieren...
    Ich habe alle Steps aus der Anleitung gemacht (so viele sind es ja nicht), aber ich bekomme kein Auflistung der Artikel... Sehr suspekt.

    Ich habe die
    Zitat
    box_search.html
    stylesheet.css
    general.js.php
    search.php
    bearbeitet und alle Dateien kopiert, keine Fehlermeldung beim Aufruf aber auch kein Ergebnis...

    Leider ist alles noch lokal und ich habe keinen Link, mmmhh.

    Kann jemand Hellsehen :)

    jfandsons

    • Fördermitglied
    • Beiträge: 51
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #133 am: 26. Juli 2010, 21:47:12
    Ich habe das gleiche problem! habe sogar alle dateien nochmal runtergeschmiessen und neu bearbeitet... leider kein intellisearch :P
    vll. bin ich nicht so intelli *lach*

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    MODUL: IntelliSearch für modified eCommerce Shopsoftware
    Antwort #134 am: 26. Juli 2010, 21:59:59
    Habt ihr beide mal einen Link zum Shop?

    Grüße

    Torsten

    Werbung / Banner buchen
    42 Antworten
    32411 Aufrufe
    25. Dezember 2013, 00:07:23 von rayban
    497 Antworten
    186756 Aufrufe
    04. August 2024, 16:59:42 von yorgey
    106 Antworten
    87837 Aufrufe
    12. Januar 2022, 13:07:58 von Tomcraft
               
    anything