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: Produkt List Filter in Specials

    martin63

    • Fördermitglied
    • Beiträge: 41
    • Geschlecht:
    Produkt List Filter in Specials
    am: 22. Juni 2011, 07:34:39
    Hallo,
    Ich versuche gerade den Produkt List Filter (manufacturer dropdown) in die Sonderangebote einzubauen.
    Die Abfrage habe ich angepasst und die Herstellernamen erscheinen auch im Dropdown - nur bei Auswahl eines Herstellers werden trotzdem immer noch alle Artikel angezeigt.
    Weiss irgendwer, was man noch anpassen muß?
    Der Code in der "specials.php":

    Code: PHP  [Auswählen]
      // BOF optional Product List Filter
        $filterlist_sql = "select distinct m.manufacturers_id as id,
            m.manufacturers_name as name
            from "
    .TABLE_PRODUCTS." p,
            "
    .TABLE_SPECIALS." s,
            "
    .TABLE_MANUFACTURERS." m
            where p.products_status = '1'
            and p.manufacturers_id = m.manufacturers_id
            and s.products_id = p.products_id
            order by m.manufacturers_name"
    ;

      $filterlist_query = xtDBquery($filterlist_sql);
      if (xtc_db_num_rows($filterlist_query, true)> 1) {
        $manufacturer_dropdown = xtc_draw_form('filter',$_REQUEST[linkurl], 'get');
        $manufacturer_dropdown .= xtc_draw_hidden_field('cat', $current_category_id);
        $options = array (array ('text' => TEXT_ALL_MANUFACTURERS));
        $manufacturer_dropdown .= xtc_draw_hidden_field('sort', $_GET['sort']);
        $manufacturer_dropdown .= xtc_draw_hidden_field(xtc_session_name(), xtc_session_id());
        while ($filterlist = xtc_db_fetch_array($filterlist_query, true)) {
        $options[] = array ('id' => $filterlist['id'], 'text' => $filterlist['name']);
        }
        $manufacturer_dropdown .= xtc_draw_pull_down_menu('filter_id', $options, $_GET['filter_id'], 'onchange="this.form.submit()"');
        $manufacturer_dropdown .= '</form>'."\n";
      }
    // EOF optional product list filter
     
    Danke und lg
    Martin



    Linkback: https://www.modified-shop.org/forum/index.php?topic=13616.0

    franky_n

    • Experte
    • Beiträge: 4.950
    Produkt List Filter in Specials
    Antwort #1 am: 22. Juni 2011, 09:04:42
    Hallo martin63,

    ich denke Du solltest dann noch in der eigentlichen Produktabfrage einbauen das er nur Produkte raussucht die auch die Manufacturers ID haben:

    include/classes/specials.php in Z.35ff

    Code: PHP  [Auswählen]
    $specials_query_raw = "select p.products_id,
                                    pd.products_name,
                                    p.products_price,
                                    p.products_tax_class_id,p.products_shippingtime,
                                    p.products_image,p.products_vpe_status,p.products_vpe_value,p.products_vpe,p.products_fsk18,
                                    s.specials_new_products_price from "
    .TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_SPECIALS." s
                                    where p.products_status = '1'
                                    and s.products_id = p.products_id
                                    and p.products_id = pd.products_id
                                    "
    .$group_check."
                                    "
    .$fsk_lock."
                                    and pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                    and s.status = '1' order by s.specials_date_added DESC"
    ;
    ändern in:

    Code: PHP  [Auswählen]
    if ($_GET['filter']['specials']) { // <= Hier passend ändern...
      $manufacturers_id = " and p.manufacturers_id = '" . (int)$_GET['filter']['specials'] ."' ";
    }

    $specials_query_raw = "select p.products_id,
                                    pd.products_name,
                                    p.products_price,
                                    p.products_tax_class_id,p.products_shippingtime,
                                    p.products_image,p.products_vpe_status,p.products_vpe_value,p.products_vpe,p.products_fsk18,
                                    s.specials_new_products_price from "
    .TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_SPECIALS." s
                                    where p.products_status = '1'
                                    and s.products_id = p.products_id
                                    and p.products_id = pd.products_id
                                    "
    .$manufacturers_id."
                                    "
    .$group_check."
                                    "
    .$fsk_lock."
                                    and pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                    and s.status = '1' order by s.specials_date_added DESC"
    ;
     
    Ist ungetestet und muss evtl. noch ein wenig angepasst werden.
    Vor allen Dingen die $_GET Variable könnte falsch sein. :)

    Viele Grüße

    Franky

    martin63

    • Fördermitglied
    • Beiträge: 41
    • Geschlecht:
    Produkt List Filter in Specials
    Antwort #2 am: 22. Juni 2011, 11:06:19
    Hallo Franky,
    danke für die schnelle Antwort.
    Es ändert sich leider auch nichts. Bei mir haben eigentlich alle Produkte auch einen Hersteller zugeordnet und im Dropdown sind auch alle Hersteller, die in den Sonderangeboten vorhanden sind, gelistet. Nur bei Klick darauf wird eben nicht gefiltert.
    PS.: Bei PHP bin ich noch ein Zauberlehrling im ersten Lehrjahr.

    Viele Grüße
    Martin

    franky_n

    • Experte
    • Beiträge: 4.950
    Produkt List Filter in Specials
    Antwort #3 am: 22. Juni 2011, 11:12:55
    Hallo martin63,

    ich kann Dir hier trotzdem keinen PHP Kurs geben! ;)

    Schau einfach im Quelltext (HTML) der Seite welche Variable Du übergibst.

    Demnach müsstest Du dann versuchen diese Abfrage:

    Code: PHP  [Auswählen]
    if ($_GET['filter']['specials'])
    anzupassen.

    Habe bitte Verständnis dafür, dass wir Euch hier nicht alles erklären können denn das geht zu sehr in die Grundlagen...

    Viele Grüße

    Franky

    1 Antworten
    2460 Aufrufe
    15. September 2011, 20:38:09 von EarthPlague
    0 Antworten
    2358 Aufrufe
    31. Dezember 2014, 12:03:24 von manne35
    6 Antworten
    2331 Aufrufe
    08. Juni 2013, 16:33:02 von hi-automotive
    1 Antworten
    914 Aufrufe
    25. Juli 2022, 08:13:20 von voodoopupp