<?php
include realpath(__DIR__ . '/../../Evo/php/functions.php');
$smarty->unregisterPlugin('function', 'get_product_list')
->registerPlugin('function', 'get_product_list', 'get_product_list_fixed');
/**
* @param array $params
* @param JTLSmarty $smarty
* @return array
*/
function get_product_list_fixed($params, &$smarty)
{
$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;
foreach ($cMerkmalFilter_arr as &$cMerkmalFilter) {
$cMerkmalFilter = ltrim($cMerkmalFilter, 'mf');
}
$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);
}
$smarty->assign($cAssign, $oArtikel_arr);
if (isset($params['bReturn'])) {
return $oArtikel_arr;
}
}