In Bearbeitung [SHOP-1356] Top-Artikel per get_product_list ausspielen

RCE

Aktives Mitglied
31. Januar 2018
99
6
Hallo,
ich möchte gerne eine bestimmte Anzahl von Top-Artikeln auf einer bestimmten Seite anzeigen.

Code:
{get_product_list cTopArtikel=Y nLimit=10000 cAssign="myProducts"}

funktioniert nicht, ich habe das
Code:
$cTopArtikel    = (isset($params['cTopArtikel']))
        ? (int)$params['cTopArtikel']
        : null;
in meine functions.php eingetragen.

Mit Conditions geht es auch nicht, entweder können nur alle Top-Produkte angezeigt werden oder der Iterationswert ist zu niederig um genügend Top-Produkte im Array zu finden.
Code:
{if $oCustomArtikel->cTopArtikel == "Y"}
 

  {if $oCustomArtikel@iteration <= 8}

Wie kann ich also schon beim erstellen der Produktliste nach Top-Artikeln filtern?

Vielen Dank
 

RCE

Aktives Mitglied
31. Januar 2018
99
6
Habe gerade herausgefunden, dass Top-Artikel das Suchspecial Nr. 4 sind (kSuchspecial=4), wenn das so stimmt, könnt Ihr den Beitrag löschen.
 

RCE

Aktives Mitglied
31. Januar 2018
99
6
Ich habe das Ganze jetzt hinbekommen, allerdings ist es in einigen Browsern (IE und Mozilla) so, dass man keine Artikelsortierung vornehmen kann. Bei "nSortierung" kann jeder beliebige Wert stehen, trotzdem ändert sich an der Sortierung nichts.
 

david

Administrator
Mitarbeiter
16. Juli 2010
2.309
169
Hi, die Abhängigkeit zu einem Browser kann ich mir grad nicht wirklich erklären.
Magst dein aktuelles Snippet nochmal posten, damit man das Problem vielleicht nachstellen kann?
 

RCE

Aktives Mitglied
31. Januar 2018
99
6
Das finde ich auch komisch, das sollte ja serverseitig und nicht beim Client sortiert werden.

PHP:
<div class="row">

{assign var=rdmSort value=1|mt_rand:10}

<span class="h-line"><span>Kunden-Lieblinge</span><span class="hidden">{$rdmSort}</span></span>

{get_product_list nSortierung=$rdmSort kSuchspecial=4 nLimit=8 cAssign="myProducts"}

{if $myProducts}

  {foreach name=custom from=$myProducts item=oCustomArtikel}
{assign var=rdmBild value=0|mt_rand:1}

<div class="col-xs-6 col-sm-3">
    <div class="hover-off"></div>
        <a class="image-wrapper" href="{$oCustomArtikel->cURL}">
                    {if isset($oCustomArtikel->Bilder[$rdmBild]->cAltAttribut)}
                        {assign var="alt" value=$oCustomArtikel->Bilder[$rdmBild]->cAltAttribut|strip_tags|truncate:60|escape:"html"}
                    {else}
                        {assign var="alt" value=$oCustomArtikel->cName}
                    {/if}

                    {include file="snippets/image.tpl" src=$oCustomArtikel->Bilder[$rdmBild]->cPfadNormal alt=$alt tplscope=$tplscope}

                    {if isset($Artikel->oSuchspecialBild)}
                        <img class="overlay-img visible-lg" src="{$oCustomArtikel->Bilder[$rdmBild]->cPfadNormal}" alt="{$oCustomArtikel->cName}">
                    {/if}
                </a>
       <div class="start-article-text"><p>{$oCustomArtikel->cMerkmalAssoc_arr.Artikelgruppen}</p> <p><span>ab</span><span class="price"> {$oCustomArtikel->Preise->cVKLocalized[0]}</span></p></div>

     
     
     
     

<div class="hover-on flex-container flex-c flex-justify v-align"> <a class="btn btn-primary" href="{$oCustomArtikel->cURL}">Zum Produkt</a></div></div>


  {/foreach}

{/if}

</div>

Ergänzung: Es wird auch nicht anders sortiert, wenn man statt der Variable "$rdmSort" irgendeine Zahl direkt einfügt. Desweiteren geht das jetzt auch nicht mehr unter Chrome.
 
Zuletzt bearbeitet:

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Hi, die Abhängigkeit zu einem Browser kann ich mir grad nicht wirklich erklären.
Magst dein aktuelles Snippet nochmal posten, damit man das Problem vielleicht nachstellen kann?

Ihr habt etwas geändert wie es scheint, da ich auch mit dieser Funktion arbeite und in meinem Plugin CSS Kategorie PLUS auf das gleiche Problem gestoßen bin.

Ich muss bevor ich diese Funktion nutze extra $_SESSION['Usersortierung'] auf 100 setzen und nach dem ich die Funktion verwendet habe den originalen Wert wiederherstellen, bzw. die Variable überhaupt zur Verfügung stellen.

Code:
                        if(!isset($_SESSION['Usersortierung'])) {
                            $_SESSION['Usersortierung'] = 100;
                        }

                        $Usersortierung = $_SESSION['Usersortierung'];
                        $_SESSION['Usersortierung'] = 100;
                        $obj->Artikel = $this->get_product_list ( $params, $smarty );
                        $_SESSION['Usersortierung'] = $Usersortierung;

Es fällt auf, wenn ich auf der Startseite diese Funktion verwende und ein neuer User kommt, vermutlich weil dieser Session Eintrag dann noch nicht vorhanden ist und erst bei einem Listing erstellt wird.
Was jetzt noch ein Problem ist, dass es nicht möglich ist nach Bestsellern zu sortieren, das weiß ich aber erst seit heute und muss schauen warum das neuerdings auch nicht mehr geht.
 
  • Gefällt mir
Reaktionen: Horus Sirius

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Das von mir geschriebene gehört zu meinem Plugin, das kannst du so nicht einfach übernehmen, das war nur zum veranschaulichen was ich machen muss damit die Sortierung wieder geht.

In deinem Fall wäre das in der functions.php aber ich bin eigentlich dagegen das man in der originalen functions.php arbeitet, daher wäre es besser eine im Child Template zu haben, hast du ein Child Template?

anstelle von {get_product_list nSortierung=$rdmSort kSuchspecial=4 nLimit=8 cAssign="myProducts"}
verwendest du dann {get_myproduct_list nSortierung=$rdmSort kSuchspecial=4 nLimit=8 cAssign="myProducts"}

So würde das in deiner functions.php im Child Template aussehen müssen:
Code:
<?php
include_once $smarty->get_template_vars('parent_template_path').'php/functions.php';
$smarty->registerPlugin('function', 'get_myproduct_list', 'get_myproduct_list');

/**
 * @param array     $params
 * @param JTLSmarty $smarty
 * @return array
 */
function get_myproduct_list($params, &$smarty)
{
    
    if(!isset($_SESSION['Usersortierung'])) {
        $_SESSION['Usersortierung'] = 100;
    }

    $Usersortierung = $_SESSION['Usersortierung'];
    $_SESSION['Usersortierung'] = 100;

  
    $nLimit             = isset($params['nLimit'])
        ? (int)$params['nLimit']
        : 10;
    $nSortierung        = isset($params['nSortierung'])
        ? (int)$params['nSortierung']
        : 0;
    $cAssign            = (isset($params['cAssign']) && strlen($params['cAssign']) > 0)
        ? $params['cAssign']
        : 'oCustomArtikel_arr';
    $cMerkmalFilter_arr = isset($params['cMerkmalFilter'])
        ? setzeMerkmalFilter(explode(';', $params['cMerkmalFilter']))
        : null;
    $cSuchFilter_arr    = isset($params['cSuchFilter'])
        ? setzeSuchFilter(explode(';', $params['cSuchFilter']))
        : null;
    $cTagFilter_arr     = isset($params['cTagFilter'])
        ? setzeTagFilter(explode(';', $params['cTagFilter']))
        : null;
    $cParameter_arr     = [
        'kKategorie'             => isset($params['kKategorie']) ? $params['kKategorie'] : null,
        'kHersteller'            => isset($params['kHersteller']) ? $params['kHersteller'] : null,
        'kArtikel'               => isset($params['kArtikel']) ? $params['kArtikel'] : null,
        'kVariKindArtikel'       => isset($params['kVariKindArtikel']) ? $params['kVariKindArtikel'] : null,
        'kSeite'                 => isset($params['kSeite']) ? $params['kSeite'] : null,
        'kSuchanfrage'           => isset($params['kSuchanfrage']) ? $params['kSuchanfrage'] : null,
        'kMerkmalWert'           => isset($params['kMerkmalWert']) ? $params['kMerkmalWert'] : null,
        'kTag'                   => isset($params['kTag']) ? $params['kTag'] : null,
        'kSuchspecial'           => isset($params['kSuchspecial']) ? $params['kSuchspecial'] : null,
        'kKategorieFilter'       => isset($params['kKategorieFilter']) ? $params['kKategorieFilter'] : null,
        'kHerstellerFilter'      => isset($params['kHerstellerFilter']) ? $params['kHerstellerFilter'] : null,
        'nBewertungSterneFilter' => isset($params['nBewertungSterneFilter']) ? $params['nBewertungSterneFilter'] : null,
        'cPreisspannenFilter'    => isset($params['cPreisspannenFilter']) ? $params['cPreisspannenFilter'] : null,
        'kSuchspecialFilter'     => isset($params['kSuchspecialFilter']) ? $params['kSuchspecialFilter'] : null,
        'nSortierung'            => $nSortierung,
        'MerkmalFilter_arr'      => $cMerkmalFilter_arr,
        'TagFilter_arr'          => $cTagFilter_arr,
        'SuchFilter_arr'         => $cSuchFilter_arr,
        'nArtikelProSeite'       => isset($params['nArtikelProSeite']) ? $params['nArtikelProSeite'] : null,
        'cSuche'                 => isset($params['cSuche']) ? $params['cSuche'] : null,
        'seite'                  => isset($params['seite']) ? $params['seite'] : null
    ];
    if ($cParameter_arr['kArtikel'] !== null) {
        $oArtikel_arr = [];
        if (!is_array($cParameter_arr['kArtikel'])) {
            $cParameter_arr['kArtikel'] = [$cParameter_arr['kArtikel']];
        }
        foreach ($cParameter_arr['kArtikel'] as $kArtikel) {
            $article = new Artikel();
            $article->fuelleArtikel($kArtikel, Artikel::getDefaultOptions());
            $oArtikel_arr[] = $article;
        }
    } else {
        // Filter
        $NaviFilter = Shop::buildNaviFilter($cParameter_arr);
        if (isset($NaviFilter->Suche->cSuche) && strlen($NaviFilter->Suche->cSuche) > 0) {
            $NaviFilter->Suche->cSuche     = StringHandler::filterXSS($NaviFilter->Suche->cSuche, 1);
            $NaviFilter->Suche->kSuchCache = bearbeiteSuchCache($NaviFilter);
        }
        // Artikelattribut
        if (isset($cParameter_arr['cArtAttrib']) && strlen($cParameter_arr['cArtAttrib']) > 0) {
            $NaviFilter->ArtikelAttributFilter->cArtAttrib = $cParameter_arr['cArtAttrib'];
        }
        //Filter SQLs Objekte
        $FilterSQL = bauFilterSQL($NaviFilter);
        // Artikelliste
        $oArtikel_arr = gibArtikelKeys($FilterSQL, $nLimit, $NaviFilter, true, null);
    }
    $_SESSION['Usersortierung'] = $Usersortierung;

    $smarty->assign($cAssign, $oArtikel_arr);


    if (isset($params['bReturn'])) {
        return $oArtikel_arr;
    }
}
}

Das wäre jetzt aber nur ein workaround um den derzeitigen Fehler zu beheben
 
  • Gefällt mir
Reaktionen: RCE

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Sehr gut, Danke für die Info.
Ist nur noch die Frage warum man nicht mehr nach Bestseller sortieren kann, da bin ich noch nicht dazu gekommen, das zu prüfen.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Ausgabe Kundengruppenattribute JTL-Shop 5.3 Allgemeine Fragen zu JTL-Shop 0
Neu Badges / Artikelsticker bei JTL Shop 5.3.0 Templates für JTL-Shop 0
Neu - Lieferzeit in Wochen / Monaten statt Tagen SHOP-4080 - wo finde ich diese Möglichlichkeit im Admin Bereich Installation / Updates von JTL-Shop 1
Neu Bug Popup/eModal - JTL Shop 5.3 JTL-Shop - Fehler und Bugs 1
Neu Gravierender Fehler in der Shop Software Betrieb / Pflege von JTL-Shop 3
Gelöst Shop 5.3.1 Fatal Error Gelöste Themen in diesem Bereich 2
Neu Händlerbund Plugin lässt sich nicht installieren Shop ver. 5.3.0 Plugins für JTL-Shop 1
Neu Shop extrem langsam Betrieb / Pflege von JTL-Shop 8
Neu Shop mehrsprachig machen Allgemeine Fragen zu JTL-Shop 6
Neu JTL-Shop 5.3 - Aktuell 5.3.1 Releaseforum 1
Neu JTL 1.8.12.0 - Artikelattribut für Shop importieren - Format CSV-Datei / Hilfe bei Import von individuellen Attributen für JTL-Shop (googlekat) JTL-Ameise - Ideen, Lob und Kritik 1
Neu Merkmalübersetzung wird im Shop nicht angezeigt JTL-Shop - Fehler und Bugs 2
JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Vouchers 1
Neu Hilfe - Performanceproblem mit Shop durch Worker JTL-Shop - Fehler und Bugs 27
Neu JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Shop 0
Neu Shop Suchfunktion Probleme mit (HTML-)Sonderzeichen JTL-Shop - Fehler und Bugs 0
Kundenattribute aus Shop übernehmen und aus Wawi zurück an Shop übermitteln Einrichtung JTL-Shop5 1
Neu Produktdaten aus Shop zur Wawi WooCommerce-Connector 9
Neu Unterstützung bei JTL5-Shop-Überarbeitung gesucht - Template/Plugin uvm. Dienstleistung, Jobs und Ähnliches 1
Neu Shop in Unterverzeichnis führt dazu, dass Inhalte aus dem übergeordneten Verzeichnis im Shop gezeigt werden JTL-Shop - Fehler und Bugs 3
Neu Kuriosum - Shop 5.1.5 mit Datenbank 5.2.4 Mischbetrieb nach fehlgeschlagenem Update Installation / Updates von JTL-Shop 8
Neu Weiße Seite nach Update Shop 5.1.5. auf 5.2.4 Installation / Updates von JTL-Shop 24
Neu E-Commerce-Effizienz steigern: Welche Programmiersprache verbessert die JTL-Shop-Entwicklung? Technische Fragen zu Plugins und Templates 1
Neu Kompatibilitätsliste JTL Shop & JTL Wawi Installation / Updates von JTL-Shop 2
Neu JTL-Shop 5 Paypal Zahlung 30 Tage Zahlungsziel Allgemeine Fragen zu JTL-Shop 6
Neu JTL-Shop 5.3.0 RC3 Fehler nach Update Portlet Banner, fehlendes Produkt JTL-Shop - Fehler und Bugs 0
Neu Funktionsattribut unverkäuflich wird nicht an den Shop übertragen Allgemeine Fragen zu JTL-Shop 1
Neu Umstieg von Shopware 5 zu JTL Shop 5 - Ranking behalten Allgemeine Fragen zu JTL-Shop 2
Neu Verbindungsproblem Wawi (1.8.12.0) zum JTL-Shop (5.2.4) über localhost User helfen Usern - Fragen zu JTL-Wawi 0
Neu Lizenz zu verkaufen für JTL-Shop Standard Edition Allgemeine Fragen zu JTL-Shop 4
Neu Suchbegriff hängt Shop auf?! Allgemeine Fragen zu JTL-Shop 2
JTL Shop : automatisch setzen: Verfügbar ab: 28.04.2024 (Vorbestellung möglich) JTL-Wawi 1.8 0
Neu Programmierung eines Tools zur Verwaltung einer Datentabelle (JTL Shop 5) Technische Fragen zu Plugins und Templates 6
I have faced an issue while the JTL Shop order has synchronized to the JTL WAWI 1.8 version. JTL-Wawi 1.8 0
Neu JTL Shop 5 Umfrage!? Allgemeine Fragen zu JTL-Shop 0
Neu Woocommerce mit JTL Connector "Die Shop-URL verweist nicht auf einen gültigen Shop" WooCommerce-Connector 4
Hosting JTL- Shop unter https://...12358.jtl-shop.de/ Einrichtung JTL-Shop5 0
Neu Issue SHOP-1348: Sortierung nach Preis unter Umständen fehlerhaft Allgemeine Fragen zu JTL-Shop 0
Neu JTL-Shop Standard Edition Lizenz zu verkaufen Umstieg auf JTL-Shop 7
Neu WAWI Kategorien werden im Shop nicht angezeigt Gelöste Themen in diesem Bereich 3
Neu Bilder werden Falsch im Shop angezeigt. WooCommerce-Connector 0
Neu Shop nicht mehr erreichbar HTTP 500 Error Betrieb / Pflege von JTL-Shop 1
Neu Wie kann ich im JTL-Shop einen Abwesenheitshinweis einstellen? Allgemeine Fragen zu JTL-Shop 1
Neu JTL Shop 5.30? Allgemeine Fragen zu JTL-Shop 9
Neu Anzeige von Neuheiten und Topsellern im JTL Shop 5 Allgemeine Fragen zu JTL-Shop 2
Neu Variationen im Shop Auswahl zurücksetzen (Plugin?) Betrieb / Pflege von JTL-Shop 3
Neu NEU ✔️ PDF-Angebots-Plugin für den JTL-Shop 5 - PDF Angebote von der Produktseite oder aus dem Warenkorb heraus generieren B2C / B2B Plugins für JTL-Shop 5
Neu JTL Shop funktioniert nicht mehr Allgemeine Fragen zu JTL-Shop 2
Neu Shop im Urlaub offline stellen/oder Benachrichten Allgemeine Fragen zu JTL-Shop 8
Neu JTL Shop Template Domain lösen? Allgemeine Fragen zu JTL-Shop 0

Ähnliche Themen