assets/s2diproduct.php
/// Art: Shop
/// Inhalt: Aufbau der Produktseite
/// Beschreibung: Aufbau der Produktseite
/// Benötigt: einiges, bekommt es vom Header
/// CCML-Parsing: nein
///
//////////////////////////////////////////////////////////////////////////////////////////
///
/// Letzte Änderungen:
/// 30.01.2009 ProtectDisc Hinweis hinzugefügt
/// 18.03.2009 Geiwicht ergänzt
/// 25.03.2009 Textlänge konfigurierbare Produkte
/// 26.06.2009 Korrektur Rabattstaffeln bei zwei Varianten
/// 21.09.2009 Korrektur Anzeige Versandgewicht
/// 09.08.2010 Syntaxfehler
///
//////////////////////////////////////////////////////////////////////////////////////////
///<09.08.2010/7.0.1.11/>
if (!defined('SHOP_TO_DATE'))
die('Forbidden');
$template = new template(CC_TPL_PRODUCT, 0);
// Ecotax-Anpassung Frankreich
if ($product_data->ecotax && $product_data->ecotaxamount)
$ecotaxpriceinfotext = str_replace('[p]', $product_data->ecotaxamount.' '.CC_SITE_CURRENCY, CC_RESSOURCE_PRICEINFOECOTAX);
if ($product_data->variations == 1) {
foreach($product_data->variationacaption as $num => $value) {
// Rabatte
$rebatetext = '';
if (CC_SITE_SHOWREBATES)
for ($i = 1; $i <= 5; $i++)
if ($product_data->rebatefrom[$num][$i] > 0)
$rebatetext .=
$product_data->rebatefrom[$num][$i].' '.
$product_data->unit.' '.
format::price($product_data->rebateprice[$num][$i], CC_SITE_CURRENCY).
'
';
$rebatetext = str_replace("'", "", $rebatetext);
$template->loop('variationa', array(
'i' => $num,
'attributevalue' => $value,
'selected' => $num == $product_data->defaulta ? 'selected="selected"' : '',
'id' => $product_data->id[$num],
'weight' => $product_data->weight[$num],
'status' => $product_data->status[$num],
'rebatetext' => $rebatetext,
'price' => $product_data->price[$num],
'originalprice' => $product_data->originalprice[$num],
));
}
} else if ($product_data->variations == 2) {
foreach($product_data->variationbcaption as $bnum => $bvalue) {
$template->loop('variationb', array(
'i' => $bnum,
'attributevalue' => $bvalue,
'selected' => $bnum == $product_data->defaultb ? 'selected="selected"' : '',
));
}
foreach($product_data->variationacaption as $anum => $avalue) {
$template->loop('variationa', array(
'i' => $anum,
'attributevalue' => $avalue,
'selected' => $anum == $product_data->defaulta ? 'selected="selected"' : '',
));
foreach($product_data->variationbcaption as $bnum => $bvalue) {
// Rabatte
$rebatetext = '';
if (CC_SITE_SHOWREBATES)
for ($i = 1; $i <= 5; $i++)
if ($product_data->rebatefrom[$anum][$bnum][$i] > 0)
$rebatetext .=
$product_data->rebatefrom[$anum][$bnum][$i].' '.
$product_data->unit.' '.
''.
format::price($product_data->rebateprice[$anum][$bnum][$i], CC_SITE_CURRENCY).
'
';
$template->loop('variationab'.$anum, array(
'i' => $bnum,
'id' => $product_data->id[$anum][$bnum],
'weight' => $product_data->weight[$anum][$bnum],
'status' => $product_data->status[$anum][$bnum],
'rebatetext' => $rebatetext,
'price' => $product_data->price[$anum][$bnum],
'originalprice' => $product_data->originalprice[$anum][$bnum],
));
}
}
} else {
// Produkt ID
if (CC_SITE_SHOWID && $product_data->id)
$productidtext = CC_RESSOURCE_PRODUCTID.': '.$product_data->id;
// Angebot
if (CC_SITE_SHOWSALE && $product_data->originalprice != -1) {
$message = CC_RESSOURCE_SALEPRICE;
$message = str_replace('[n]', format::price($product_data->originalprice, CC_SITE_CURRENCY), $message);
$message = str_replace('[s]', format::price($product_data->originalprice - $product_data->price, CC_SITE_CURRENCY), $message);
$sale = $message;
}
// Verfügbarkeit
if (!$product_data->status)
$template->show('statusna');
else if (CC_SITE_SHOWSTATUS) {
if ($product_data->status == 1)
$template->show('statusgreen');
else if ($product_data->status == 2)
$template->show('statusyellow');
else if ($product_data->status == 3)
$template->show('statusred');
}
// Rabatte
if (CC_SITE_SHOWREBATES)
for ($i = 1; $i <= 5; $i++)
if ($product_data->rebatefrom[$i] > 0)
$template->loop('rebates', array(
'from' => $product_data->rebatefrom[$i],
'price' => $product_data->rebateprice[$i],
'i' => $i,
'formatted_price' => format::price($product_data->rebateprice[$i], CC_SITE_CURRENCY),
));
// Priceinfo
if ($product_data->priceinfo) {
$priceinfotext = $product_data->priceinfo;
// Ecotax-Anpassung Frankreich
if ($product_data->ecotax && $product_data->ecotaxamount)
$priceinfotext .= '
'.$ecotaxpriceinfotext;
if ($product_data->basefactor) {
$basepriceinfo = $product_data->basepriceinfo;
$basepriceinfo = str_replace('[p]', format::price($product_data->price * $product_data->basefactor, CC_SITE_CURRENCY), $basepriceinfo);
$priceinfotext .= '
'.$basepriceinfo;
}
} else {
// Ecotax Anpassung Frabnkreich
if ($product_data->ecotax && $product_data->ecotaxamount)
$priceinfotext = $ecotaxpriceinfotext;
}
}
// Produktkonfiguration
if ($product_data->has_configuration) {
foreach($product_data->configuration as $special) {
$template->loop('special', array(
'caption' => $special->caption,
'text' => $special->type == PRODUCT_CONFIG_TEXT,
'combo' => $special->type == PRODUCT_CONFIG_COMBO,
'checkbox' => $special->type == PRODUCT_CONFIG_CHECK,
'number' => $special->number,
'maxlength' => $special->type == PRODUCT_CONFIG_TEXT && $special->maxlength ? $special->maxlength : '',
'price' => $special->type == PRODUCT_CONFIG_CHECK ? $special->price : null,
));
if ($special->type == PRODUCT_CONFIG_COMBO)
foreach($special->options_caption as $number => $caption)
$template->loop('option'.$special->number, array(
'number' => $number,
'price' => $special->options_price[$number],
'caption' => $caption,
));
}
}
// Kombinationsprodukte
if (count($product_data->related)) {
$template->show('related');
foreach($product_data->related as $related->product)
$template->loop('related', array(), $related->product);
}
if ($product_data->priceinfo)
$template->show('priceinfo');
if (!$product_data->variations && !$product_data->status)
$template->show('statusna');
if ($product_data->has_configuration)
$template->show('configuration');
if ($product_data->variations) {
$template->show('variations');
if ($product_data->variations == 1)
$template->show('one_variation');
if ($product_data->variations == 2)
$template->show('two_variations');
}
// ProtectDisc Hinweis
if (is_get(PARAMETER_VIEW) && get(PARAMETER_VIEW) == 'pd')
$template->show('viewpd');
$template->assign(array(
'_productidtext' => isset($productidtext) ? $productidtext : '',
'_sale' => isset($sale) ? $sale : '',
'_priceinfo' => $product_data->priceinfo,
'_priceinfotext' => isset($priceinfotext) ? $priceinfotext : '',
'_formatted_price' => format::price($product_data->price, CC_SITE_CURRENCY),
'_uid' => $product_data->uid,
'_weightinfotext' => $product_data->weight && CC_SITE_SHOWWEIGHT ? '
'.CC_RESSOURCE_WEIGHT.': '.$product_data->weight.' '.CC_SITE_WEIGHTUNIT : '',
'_price' => $product_data->variations ? 0 : $product_data->price,
'_mailcaption' => html_entity_decode($product_data->mailcaption).'',
'_formatted_quantity' => format::quantity($product_data->defaultquantity, $product_data->qprecision),
'_quantity_size' => (5 + ($product_data->qprecision ? 1 : 0) + $product_data->qprecision) * 7,
'_quantity_maxlength' => 4 + ($product_data->qprecision ? 1 : 0) + $product_data->qprecision,
'_unit' => $product_data->unit,
'_specialcount' => $product_data->has_configuration ? count($product_data->configuration) : 0,
'_defaulta' => $product_data->defaulta,
'_defaultb' => $product_data->defaultb,
'_attributeacaption' => $product_data->attributeacaption,
'_attributebcaption' => $product_data->attributebcaption,
'_ecotax' => $product_data->ecotax ? 1 : 0,
'_ecotaxamount' => $product_data->ecotax ? $product_data->ecotaxamount : null,
'_ecotaxpriceinfotext' => $product_data->ecotax ? $product_data->ecotaxpriceinfotext : null,
'_basepriceinfo' => $product_data->basepriceinfo.'',
'_basefactor' => $product_data->basefactor,
'_readonly' => $product_data->esd ? 'readonly="readonly"' : '',
));
$template->out();
?>