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: Direkt auf Artikel weiterleiten, wenn Kategorie nur einen Artikel enthält für Shopversion 2.x

    webald

    • modified Team
    • Beiträge: 2.795
    Ich fand es doof wenn eine Kategorie nur einen Artikel enthält erst die Kategorie anzuzeigen und dann den Artikel anklicken zu müssen.

    Beiliegende Datei einfach in /includes/extra/header/header_begin entpacken und falls eine Kategorie genau einen Artikel enthält wird automatisch die product_info geöffnet.

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

    longchuan

    • Viel Schreiber
    • Beiträge: 647
    • Geschlecht:
    Super danke

    Herr_Bert

    • Fördermitglied
    • Beiträge: 756
    • Geschlecht:
    Schöne Idee, wäre das auch im 1.06 machbar, da kann ich includes/extra nicht finden  :-?

    Herr_Bert

    Timm

    • Fördermitglied
    • Beiträge: 6.339
    Auto-include gibt’s erst seit 2.x.

    karsta.de

    • Experte
    • Beiträge: 3.068
    Für Version 1.06 gibt es von Gunnar Tillmann schon seit 2008 hier: Nur ein Artikel in der Kategorie - Klicks sparen - redirectToSingleProd dafür eine Erweiterung. (Die man im Übrigen ebenfalls für Version V2.X.X.X nutzen kann.)

    BG kgd

    Blaumann

    • Frisch an Board
    • Beiträge: 58
    Funktioniert diese Direktverlinkung in der Version 2.0.5.1 nicht mehr?  Oder habe ich einen Fehler gemacht?

    Gruß Martin

    karsta.de

    • Experte
    • Beiträge: 3.068
    Die Erweiterung von webald funktioniert wie sie soll in Version 2.0.5.1 . Einfach ins root laden. Fertig.

    BG Karsta

    karsta.de

    • Experte
    • Beiträge: 3.068
    Nachtrag!
    Allerdings sollte ab Version 2.0.5.0 die Datei nicht ins Verzeichnis:
    shoproot/includes/extra/header/header_begin/ gelegt werden, sondern damit keine Fehler ins log geschrieben werden, die neue Datei nach shoproot/includes/extra/header/header_head/ verschieben.

    Sucht man Artikel über die Shopsuche gibt es leider immer noch Wahrnungen im log:
    Code: PHP  [Auswählen]
    [warning][modified][pid:11556]  mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in File: /xxx/inc/db_functions_mysqli.inc.php on Line: 292        {}      {}
    [warning][modified][pid:11556]  Backtrace #0 - /xxx/includes/extra/header/header_head/webald_category_forwarding.php called at Line 6   {}      {}
    [warning][modified][pid:11556]  Backtrace #1 - /xxx/includes/header.php called at Line 156      {}      {}
    [warning][modified][pid:11556]  Backtrace #2 - /xxx/advanced_search_result.php called at Line 71        {}      {}

    BG Karsta

    ddehning

    • Neu im Forum
    • Beiträge: 16
    Hallo zusammen,

    mit der derzeit aktuellen Shopversion 2.0.7.2 läuft diese kleine nützliche Erweiterung nicht mehr (ggf. auch schon früher), weil die genutzte SQL-Abfrage in der default.php um ein "LIMIT 1" ergänzt wurde und das Ergebnis somit immer 1 Produkt pro Kategorie sein wird.

    Ich habe deswegen die SQL-Abfrage in das Skript kopiert und einen neuen Variablennamen vergeben:

    Code: PHP  [Auswählen]
    <?php
    /* Check if category contains only 1 article
            If only one article open directly articles-details-page
    */

    if(isset($_GET['cPath'])) {
            $local_categories_products_query = "SELECT p2c.products_id
                                      FROM "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                      JOIN "
    .TABLE_PRODUCTS." p
                                           ON p2c.products_id = p.products_id
                                              AND p2c.categories_id "
    .((count($subcategories_array) > 1) ? "IN (".implode(', ', $subcategories_array).") " : "= '".(int)$current_category_id."' ")."
                                     WHERE p.products_status = '1'
                                           "
    .PRODUCTS_CONDITIONS_P;

            $local_categories_products_result = xtDBquery($local_categories_products_query);

            if (($category_depth == 'products') && (xtc_db_num_rows($local_categories_products_result, true) == 1)){
                    $forward_product = xtc_db_fetch_array($categories_products_result, true);
                    xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$forward_product['products_id']));
            }
    }
    ?>

    Zusätzlich sollte das Skript verschoben werden nach includes/extra/default/category_depth/ da es ansonsten unter PHP 8.x zu einem Fehler auf alle Nicht-Kategorie-Seiten, da dort die verwendeten Variablen nicht verfügbar sind.

    Gruß
    Dominik
               
    anything