$smarty->registerPlugin ( 'function', 'css_gib_gratis_geschenke', 'cssGibGratisGeschenke' );
function cssGibGratisGeschenke($params, &$smarty) {
$nLimit = (isset($params['limit']))
? (int)$params['limit']
: 100;
$cAssign = (isset($params['assign']))
? $params['assign']
: '';
$nWert = (isset($params['wert']))
? (int) $params['wert']
: 9999999;
if(isset($_SESSION['Warenkorb'])) {
$wkWert = $_SESSION['Warenkorb']->gibGesamtsummeWarenExt([C_WARENKORBPOS_TYP_ARTIKEL], true);
}
$Einstellungen = Shop::getSettings([
CONF_GLOBAL,
CONF_RSS,
CONF_KAUFABWICKLUNG,
CONF_KUNDEN,
CONF_ARTIKELUEBERSICHT,
CONF_SONSTIGES
]);
/** @var array('Warenkorb') $_SESSION['Warenkorb'] */
$oArtikelGeschenke_arr = [ ];
$cSQLSort = ' ORDER BY CAST(tartikelattribut.cWert AS DECIMAL) DESC';
if ($Einstellungen['sonstiges']['sonstiges_gratisgeschenk_sortierung'] === 'N') {
$cSQLSort = ' ORDER BY tartikel.cName';
} elseif ($Einstellungen['sonstiges']['sonstiges_gratisgeschenk_sortierung'] === 'L') {
$cSQLSort = ' ORDER BY tartikel.fLagerbestand DESC';
}
$query = "SELECT tartikel.kArtikel, tartikelattribut.cWert
FROM tartikel
JOIN tartikelattribut
ON tartikelattribut.kArtikel = tartikel.kArtikel
WHERE (tartikel.fLagerbestand > 0 ||
(tartikel.fLagerbestand <= 0 &&
(tartikel.cLagerBeachten = 'N' || tartikel.cLagerKleinerNull = 'Y')))
AND tartikelattribut.cName = '" . FKT_ATTRIBUT_GRATISGESCHENK . "'
AND CAST(tartikelattribut.cWert AS DECIMAL) <= " . $nWert . $cSQLSort . " LIMIT ".$nLimit;
$oArtikelGeschenkeTMP_arr = \Shop::DB ()->query ( $query, 2 );
if (is_array ( $oArtikelGeschenkeTMP_arr ) && count ( $oArtikelGeschenkeTMP_arr ) > 0) {
foreach ( $oArtikelGeschenkeTMP_arr as $i => $oArtikelGeschenkeTMP ) {
$oArtikel = new Artikel ();
$oArtikel->fuelleArtikel ( $oArtikelGeschenkeTMP->kArtikel, Artikel::getDefaultOptions () );
$oArtikel->cBestellwert = gibPreisStringLocalized ( (float) $oArtikelGeschenkeTMP->cWert );
if ($oArtikel->kArtikel > 0 && ($oArtikel->kEigenschaftKombi > 0 || ! is_array ( $oArtikel->Variationen ) || count ( $oArtikel->Variationen ) === 0)) {
$oArtikel->gratis_ab = (int) $oArtikelGeschenkeTMP->cWert;
if( (int) $oArtikelGeschenkeTMP->cWert <= (int) $wkWert) {
$oArtikel->canGetFreeGift= true;
} else {
$oArtikel->canGetFreeGift= false;
}
$oArtikelGeschenke_arr[] = $oArtikel;
}
}
}
if(!empty($cAssign)) {
$smarty->assign("cssGratisartikel",$oArtikelGeschenke_arr);
$output = $smarty->fetch("snippets/cssUmsetzung/cssGratisArtikel.tpl");
$smarty->assign($cAssign,$output);
} else {
return $output;
}
}