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: Produktfilter

    pepe0815

    • Neu im Forum
    • Beiträge: 17
    Re: MODUL: Produktfilter
    Antwort #165 am: 11. Februar 2016, 08:43:10
    Vielen Dank erstmal hpzeller, funktioniert schon mal top. Eine Kombination aus main-content.html und dem Filter ist nicht möglich?

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Produktfilter
    Antwort #166 am: 11. Februar 2016, 11:56:03
    Hallo pepe0815,

    doch das ist auch möglich.

    Suche in includes/modules/default.php ca. Zeile 325 folgenden Code

    Code: PHP  [Auswählen]
      include (DIR_WS_INCLUDES.FILENAME_CENTER_MODULES);
     

    und füge unmittelbar danach diesen Code ein

    Code: PHP  [Auswählen]
      $module_smarty = new Smarty;
     
      $module_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

            $filter_array = array ();



            $cat_count = xtc_db_query("SELECT id,titel FROM ".TABLE_PRODUCT_FILTER_CATEGORIES." WHERE language_id = '".$_SESSION['languages_id']."' AND status = '1'");



            $count = xtc_db_num_rows($cat_count);



            while ($cat_data = xtc_db_fetch_array($cat_count))

            {

                $filter_array[$cat_data['id']]['name'] = $cat_data['titel'];

            }



            for ($cat = 1; $cat <= $count; $cat++)

            {

                $filter_query = xtc_db_query("SELECT id, name, categories_id, position FROM ".TABLE_PRODUCT_FILTER_ITEMS." WHERE categories_id = '".$cat."' AND language_id = '".$_SESSION['languages_id']."' AND status = '1' ORDER BY position ASC");

                while ($filter = xtc_db_fetch_array($filter_query))

                {

                    $filter_array[$cat]['data'][] = array ('id'=>$filter['id'],
                                                           'text'=>'<label for="id_'.$filter['id'].'">'.$filter['name'].'</label>',
                                                           'checkbox'=>xtc_draw_checkbox_field('filter[]', $filter['id'],'','id="id_'.$filter['id'].'"'));

                }

            }



            $module_smarty->assign('FORM_START',xtc_draw_form('advanced_filter_search',xtc_href_link('product_filter.php', 'request', 'NONSSL', false),'post').xtc_hide_session_id());

            $module_smarty->assign('VERBINDER', '<input id="v_1" name="verbinder" type="radio" value="true" checked="" /><label for="v_1">'. PRODUCT_FILTER_AND . '</label>&nbsp;&nbsp;&nbsp;&nbsp;<input id="v_2" name="verbinder" type="radio" value="false" /><label for="v_2">'. PRODUCT_FILTER_OR.'</label>');

            $module_smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_search.gif', IMAGE_BUTTON_SEARCH));

            $module_smarty->assign('FORM_END','</form>');

            $module_smarty->assign('filter_search_items', $filter_array);
           
      $module_smarty->assign('language', $_SESSION['language']);
             
      $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_filter.html');
     
      $default_smarty->assign('MODULE_product_filter', $module);
     

    dann füge in templates/xtc5/module/main_content.html nach

    Code: XML  [Auswählen]
    <div>{$text}</div>
     

    folgenden Code ein

    Code: XML  [Auswählen]
    {if $MODULE_product_filter}
    <div style="margin: 10px 0; padding: 8px; border: 1px solid #000">{$MODULE_product_filter}</div>
    {/if}  
     

    Der Style im <div> ist nur ein Beispiel.

    Grüsse
    Hanspeter

    pepe0815

    • Neu im Forum
    • Beiträge: 17
    Re: MODUL: Produktfilter
    Antwort #167 am: 11. Februar 2016, 12:41:08
    Hallo hpzeller, vielen vielen Dank für den Tip. Werde ich gleich heute abend ausprobieren. Vielen Tausend Dank nochmal. :-B

    pepe0815

    • Neu im Forum
    • Beiträge: 17
    Re: MODUL: Produktfilter
    Antwort #168 am: 11. Februar 2016, 15:42:10
    Hallo hpzeller,

    also ja, der der erweiterte Filter erscheint, jedoch wird bis auf "trifft auf alles zu" und "trifft auf eins" zu und der suchen-Button angezeigt, alles andere fehlt.

    Also sämtliche Filterkategorien und deren inhalte.

    Noch irgendeine Idee und vielen Dank bis hierhin für den Support

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Produktfilter
    Antwort #169 am: 11. Februar 2016, 19:54:48
    Hallo pepe0815,

    wird der erweiterte Filter korrekt, also mit allen Kategorien etc. angezeigt, wenn du ihn via klick auf 'Erweiterter Filter' aufrufst?

    Kontrolliere doch nochmal ob der Code richtig in der 'includes/modules/default.php' eingebaut ist.

    Wennn es immer noch nicht richtig funkioniert, kannst du am Ende des eingebauten Codes folgendes einfügen,

    Code: PHP  [Auswählen]
           
    echo 'Spache: |'.$_SESSION['languages_id'].'|<br>Counter: |'.$count.'|<br>';        
    ?><pre><?php
    var_dump ($filter_array);
    ?></pre><?php
     

    danach sollte auf dem Bildschirm soetwas ausgegeben werden.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Ich habe den geposteten Code, jetzt mal zum Testen in einen neuen aktuellen Shop eingebaut und bei mir funktioniert es, siehe Screenshot.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    compdirk

    • Neu im Forum
    • Beiträge: 32
    Re: MODUL: Produktfilter
    Antwort #170 am: 12. Februar 2016, 12:30:34
    Moin,

    da ich von einigen Mitgliedern angeschrieben worden bin, habe meine Produktfilterversion für Shop 1.06 ver. 4642 SP2 zusammengesucht.

    Habe ein komplettes Paket gepackt und die Anleitung ergänzt. Bitte gut lesen da ich noch ab und zu Kommentare rein geschrieben habe. Diese Version läuft bei mir in einem responsive Template.

    :thx:

    Vielen Dank die anderen Mitglieder die durch Ihre ergänzenden Hilfestellungen zu diesem Modul, welche ich in diesem Paket mit übernommen habe.

    Schöne Grüße aus Ostfriesland 
    Dirk

    [EDIT Tomcraft 12.02.2016: Modul in Beitrag 1 ergänzt.]

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Produktfilter
    Antwort #171 am: 12. Februar 2016, 13:01:17
    Hallo Dirk,

    wenn du ein neues  Modul veröffentlichen willst, dann musst du das in einem neuen Thread machen, wenn jetzt nämlich Fragen zu deinem Modul hier in diesem Thread gestellt werden gibt es ein heilloses Durcheinander.

    Grüsse
    Hanspeter

    compdirk

    • Neu im Forum
    • Beiträge: 32
    Re: MODUL: Produktfilter
    Antwort #172 am: 12. Februar 2016, 14:02:12
    Hallo Hanspeter,

    neu ist das Modul nicht es ist aus dem Beitrag 1 mit allen geposteten modifikationen und meinen Anpassungen in der produkt_filter.html und stylesheet.css. Falls es nicht passt dann mache ich einen neuen Thread auf, kann dieses aber erst am Sonntagabend machen. Reicht das? Vielleicht kann bitte ein Admin unterstützen, wenn es zu lange dauert.
    Sorry vielmals.

    Dirk

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: MODUL: Produktfilter
    Antwort #173 am: 12. Februar 2016, 16:36:23
    In dem Fall klickt man auf "Moderator informieren", damit das im ersten Post angehängt wird.

    Ist hiermit erledigt.

    pepe0815

    • Neu im Forum
    • Beiträge: 17
    Re: MODUL: Produktfilter
    Antwort #174 am: 23. Februar 2016, 08:42:23
    Guten morgen an alle,
    also nach der hilfe von compdirk und hpzeller läuft der erweiterte Filter nun auch auf der startseite meines Onlineshops. Jedoch habe ich noch ne Kleinigkeit, die ein wenig stört.
    Und zwar, wenn ich beim ersten aufruf auf der Startseite auf "Suchen" gehe, komme ich auf die Seite 1 der Ergebnisliste, will ich jedoch auf Seite 2 klicken, komme ich erstmal auf eine etwas geänderte ansicht des erweiterten Filter, dieser dann jedoch ohne checkboxen.

    Hier zu sehen:
    http://bit.ly/1Twpgdk

    Woran liegt das?

    Danke für Eure Hilfe

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Produktfilter
    Antwort #175 am: 23. Februar 2016, 15:05:24
    Ja, da scheint ein Bug im Skript product_filter.php zu stecken und zwar bei ca. Zeile 451 sollte man folgenden Code

    Code: PHP  [Auswählen]
    $smarty->assign('FORM_START',xtc_draw_form('advanced_filter_search',xtc_href_link('product_filter.php', 'request', 'NONSSL', false),'post').xtc_hide_session_id());

    mit diesem ersetzen

    Code: PHP  [Auswählen]
    $smarty->assign('FORM_START',xtc_draw_form('advanced_filter_search',xtc_href_link('product_filter.php', 'request=1', 'NONSSL', false),'post').xtc_hide_session_id());

    und die entsprechende Codestelle aus meiner Antwort #166 natürlich dann auch noch.

    Danach sollten die Links der Seitenwahl jeweils den Parameter 'request' auch enthalten.

    Grüsse
    Hanspeter

    pepe0815

    • Neu im Forum
    • Beiträge: 17
    Re: MODUL: Produktfilter
    Antwort #176 am: 25. Februar 2016, 09:25:24
    Guten Morgen an alle und besonders an hpzeller,

    erstmal vielen Dank wieder für deinen Tip, habe die Dateien jetzt abgeändert laut deiner Nachricht. Wenn ich nur die product-filter.php im root abänder, hat es keinerlei auswirkung, änder ich aber die default.php, dann hat der Button "Suchen" im Produktfilter keine Funktion mehr.

    Da steh ich echt mal wieder auf dem Schlauch.

    Bin für jede Hilfe dankbar.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Produktfilter
    Antwort #177 am: 26. Februar 2016, 10:20:38
    Das jetzt der Button "Suche" nicht mehr geht wundert mich, aber versuch es mal so, ersetze einfach in diesem Code

    Code: PHP  [Auswählen]
    $smarty->assign('FORM_START',xtc_draw_form('advanced_filter_search',xtc_href_link('product_filter.php', 'request', 'NONSSL', false),'post').xtc_hide_session_id());
     

    einfach nur

    Code: PHP  [Auswählen]
     'request'

    durch

    Code: PHP  [Auswählen]
    'request=1'

    PS:
    Manchmal schlägt einem auch der Editor mit welchem man Codeänderungen macht ein Schnippchen, empfehlen würde ich diese einfachen Editoren "Notepad ++" oder "PSPad", wobei es beim "Notepad ++" wichtig ist, das man beim Menüpunkt "Kodierung" die Einstellung "UTF-8 ohne BOM" wählt.

    Grüsse
    Hanspeter

    pepe0815

    • Neu im Forum
    • Beiträge: 17
    Re: MODUL: Produktfilter
    Antwort #178 am: 27. Februar 2016, 00:34:35
    Super Hans Peter, jetzt funzt es!!!! Tausend Dank :thumbs: Schönes Wochenende

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: Produktfilter
    Antwort #179 am: 28. Februar 2016, 12:09:23
    Hallo pepe0815,

    freut mich wenn es geklappt hat, ich habe aber beim Besuch deines Shops festgestellt, dass das Modul leider falsche Ergebnisse liefert.

    Das Modul nutzt die gesetzten Werte der Radiobuttons 'alle Kriterien müssen zutreffen'(vorgewählt) und 'ein Kriterium muss zutreffen' nur beim Klick auf den Button "Suche", wenn das Ergebnis dann aber mehrere Seiten hat, entspricht das Ergebnis bei einem Klick auf eine Folgeseite immer als hätte man den Radiobutton 'ein Kriterium muss zutreffen' ausgewählt.

    Konkretes Beispiel aus deinem Shop:

    Radiobutton: alle Kriterien müssen zutreffen
    Herkunftsland: Deutschland
    Wein: Weißwein

    Nach Klick auf "Suche" erhält man 87 Weine zur Auswahl nach einem Klick auf Seite zwei sind es dann aber deren 183.

    Um das Problem zu beheben kannst Du folgendes versuchen, ersetze in der product_filter.php ca. ab  Zeile 31 diese Codesequenz

    Code: PHP  [Auswählen]
    if((isset($_POST)) && (isset($_GET['request']))) {



        if(sizeof($_POST['filter']) > 0) {

            $i = 0;

            foreach($_POST['filter'] as $term) {

            if($i == 0)

                $in .="'".$term."'";

            else

                $in .=",'".$term."'";

            $i++;

            }

            $_SESSION['filter'] = $in;

            $_SESSION['filter_id'] = $_POST['filter'];

        }



        if (isset($_SESSION['filter']) && $_SESSION['filter'] != '') {

        $having = '';

        if($_POST['verbinder'] == 'true') {

            $having = "HAVING CHAR_LENGTH(filter) > ".(strlen(str_replace('\'','',$_SESSION['filter'])) - 1);

            $_SESSION['verbinder'] = 'true';

        } elseif ($_POST['verbinder'] == 'false') {

            $_SESSION['verbinder'] = 'false';

        }
     

    mit dieser

    Code: PHP  [Auswählen]

    if(isset($_GET['request'])) {

        if(!isset($_GET['page'])) {

            unset($_SESSION['filter']);

            unset($_SESSION['filter_id']);

        }
         

        if(sizeof($_POST['filter']) > 0) {

            $i = 0;

            foreach($_POST['filter'] as $term) {

            if($i == 0)

                $in .="'".$term."'";

            else

                $in .=",'".$term."'";

            $i++;

            }

            $_SESSION['filter'] = $in;

            $_SESSION['filter_id'] = $_POST['filter'];

        }



        if (isset($_SESSION['filter']) && $_SESSION['filter'] != '') {

        $having = '';

        if($_POST['verbinder'] == 'true' || (!isset($_POST['verbinder']) && $_SESSION['verbinder'] == 'true')) {

                $having = "HAVING CHAR_LENGTH(filter) > ".(strlen(str_replace('\'','',$_SESSION['filter'])) - 1);

                $_SESSION['verbinder'] = 'true';

        } else {
       
            $_SESSION['verbinder'] = 'false';
       
        }
     

    Grüsse
    Hanspeter
    2 Antworten
    2750 Aufrufe
    13. Mai 2013, 09:09:04 von keineLustmehr
    2 Antworten
    2520 Aufrufe
    06. Juli 2015, 09:14:20 von voodoopupp
    2 Antworten
    3291 Aufrufe
    11. Juli 2014, 10:31:26 von Bonsai
    2 Antworten
    1864 Aufrufe
    02. August 2017, 14:21:49 von Brianb
               
    anything