Neu Hersteller nach aktiver Kategorie anzeigen

matteodelmulino

Aktives Mitglied
24. Januar 2014
10
3
Hallo,

ich versuche im Megamenu die Hersteller der aktiven Kategorie anzeigen zu lassen. Leider bekomme ich nur alle Hesteller aller Kategorien des Shops angezeigt. Wie kann ich die Ausgabe folgenden Codes dahingehend eingrenzen:

Code:
{foreach name=hersteller from=$manufacturers item=hst}
<div class="col-xs-6 col-sm-3 col-lg-4">
   <div class="category-wrapper manufacturer top15{if isset($NaviFilter->Hersteller) && $NaviFilter->Hersteller->kHersteller == $hst->kHersteller} active{/if}">
      <div class="caption{if isset($Einstellungen.template.megamenu.show_category_images) && $Einstellungen.template.megamenu.show_category_images !== 'N'} text-center{/if}">
      <h5 class="title"><a href="{$hst->cSeo}"><span>{$hst->cName}</span></a></h5>
      </div>
   </div>{* /category-wrapper *}
</div>
{/foreach}


1000 Dank für jegliche Unterstützung 😉
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Hallo, da Hersteller nicht direkt an Kategorien gebunden sind, ist dies nicht so einfach möglich.
Hierzu müßten Sie nicht nur das Template selbst anpassen, sondern auch die functions.php Ihres Child-Templates um eine Funktion zum Abruf der Hersteller je Kategorie erweitern.
 

matteodelmulino

Aktives Mitglied
24. Januar 2014
10
3
Hallo,
vielen Dank für den Hinweis. Wie kann man an sich die aktuelle Kategorie abfrage? Ich habe versucht auf der Artikeldetailseite folgenden Slider für die Anzeige von Produkten aus der aktiven Hauptkategorie einzubauen, scheiter aber jedesmal wieder an der Kategorieabfrage:
Code:
{get_product_list nLimit=6 kKategorie=???Aktuelle Hauptkategorie??? cAssign="katProducts"}
{if $katProducts}
  {include file='snippets/product_slider.tpl' productlist=$katProducts title='Headline'}
{/if}
 

matteodelmulino

Aktives Mitglied
24. Januar 2014
10
3
Hallo,
ich habe um die Produktliste abfragen zu können folgenden Code aus JTL Shop3 in die function.php eingebunden:

Code:
function get_product_list($params, &$smarty) {
    require_once(PFAD_ROOT . PFAD_INCLUDES . "filter_inc.php");

    $nLimit = intval($params['nLimit']);
    $nSortierung = intval($params['nSortierung']);

    $cAssign = "oCustomArtikel_arr";
    if (isset($params['cAssign']) && strlen($params['cAssign']) > 0)
        $cAssign = $params['cAssign'];

    $cMerkmalFilter_arr = setzeMerkmalFilter(explode(";", $params['cMerkmalFilter']));
    $cSuchFilter_arr = setzeSuchFilter(explode(";", $params['cSuchFilter']));
    $cTagFilter_arr = setzeTagFilter(explode(";", $params['cTagFilter']));

    $cParameter_arr = array(
        "kKategorie" => $params['kKategorie'],
        "kHersteller" => $params['kHersteller'],
        "kArtikel" => $params['kArtikel'],
        "kVariKindArtikel" => $params['kVariKindArtikel'],
        "kSeite" => $params['kSeite'],
        "kSuchanfrage" => $params['kSuchanfrage'],
        "kMerkmalWert" => $params['kMerkmalWert'],
        "kTag" => $params['kTag'],
        "kSuchspecial" => $params['kSuchspecial'],
        "kNews" => $params['kNews'],
        "kNewsMonatsUebersicht" => $params['kNewsMonatsUebersicht'],
        "kNewsKategorie" => $params['kNewsKategorie'],
        "kUmfrage" => $params['kUmfrage'],
        "kKategorieFilter" => $params['kKategorieFilter'],
        "kHerstellerFilter" => $params['kHerstellerFilter'],
        "nBewertungSterneFilter" => $params['nBewertungSterneFilter'],
        "cPreisspannenFilter" => $params['cPreisspannenFilter'],
        "kSuchspecialFilter" => $params['kSuchspecialFilter'],
        "nSortierung" => $nSortierung,
        "MerkmalFilter_arr" => $cMerkmalFilter_arr,
        "TagFilter_arr" => $cTagFilter_arr,
        "SuchFilter_arr" => $cSuchFilter_arr,
        "nArtikelProSeite" => $params['nArtikelProSeite'],
        "cSuche" => $params['cSuche'],
        "seite" => $params['seite'],
        "cArtAttrib" => $params['cArtAttrib']);

    // Fix: gibArtikelKeys benutzt Variable
    $_SESSION["Usersortierung"] = $nSortierung;

    // Filter
    $NaviFilter = baueNaviFilter($NaviFilter, $cParameter_arr);

    // 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);

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

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

Die Ausgabe des Parameternamen kHersteller kann ich erfolgreich in Verbindung mit dem Produktslider anzeigen lassen. Die Ausgabe kKategorie funktioniert allgemein in Shop 4 nicht, obwohl ich die Werte z.B. für eine Oberkategorie $via Smarty Debug (oKategorieliste->elemente[0]->kKategorie=332) angezeigt bekomme.
Die Ausgabe erfolgt über folgenden Code:

Code:
{get_product_list nLimit=6 kKategorie=332 cAssign="katProducts"}
{if $katProducts}
  {include file='snippets/product_slider.tpl' productlist=$katProducts title='Headline'}
{/if}

Stehe irgendwie auf dem Schlauch... kann mir jemand bitte unter die Arme greife 🙂 DANKE!
 

Ähnliche Themen