data['LV_OPTIONS']['LV_SHOWPRICE_MODE'];
if (isset($conf->data['LV_OPTIONS']['LV_BLOCKED']) && ($conf->data['LV_OPTIONS']['LV_BLOCKED'] == 1)) {
echo 'This site is blocked by administrator.';
exit;
}
$deviceMustbeset = ((!isset($_SESSION['lv_device']) || ($_SESSION['lv_device'] == '')) && ((isset($conf->data['LV_OPTIONS']['LV_MOBILE_ENABLED']) && ($conf->data['LV_OPTIONS']['LV_MOBILE_ENABLED'] == 1)) || (isset($conf->data['LV_OPTIONS']['LV_SOCIAL_ENABLED']) && ($conf->data['LV_OPTIONS']['LV_SOCIAL_ENABLED'] == 1))));
setSessionDevice($conf, $pg);
$tpl = new Template($_SESSION['lv_device']);
$tpl->assign('LV_DEVICE', $_SESSION['lv_device']);
$ociDebug = false;
$ociLog = new Log(__DIR__ . '/lvlog/oci.log', $ociDebug);
if(isset($_SESSION['oci']) && $_SESSION['oci'] == true) {
$ociData = array(
'module' => $_SESSION['oci_module'],
'return' => $_SESSION['oci_return'],
);
$oci = new Oci($ociData);
}
if (isset($conf->data['LV_OPTIONS']['LV_BUDGETCOUNTER']) && ($conf->data['LV_OPTIONS']['LV_BUDGETCOUNTER'] == 1)) {
$oBudget = new BudgetCounter();
$oBudget->getBudgetDetails();
$fCurBudgetAmount = $oBudget->getCurrentBudget();
$tpl->assign('fBudget', $fCurBudgetAmount);
$tpl->assign('aBudgetDetails', $oBudget->getBudgetDetails());
}
if ($pg->exists("action")) {
if ($pg->action == "a") {
$pg->action = "article";
} elseif ($pg->action == "e") {
$pg->action = "extra";
} elseif ($pg->action == "p") {
$pg->action = "page";
}
$action = $pg->action;
} else {
$action = "";
}
if ($pg->exists("time")) {
$pg->_unset("time");
}
if ($pg->exists("oldurl")) {
$oldurl = $pg->oldurl;
$oldurl = urldecode($oldurl);
$oldurl = str_replace('&', '&', $oldurl);
if ((strlen($oldurl) > 0) && ($oldurl[0] == '/')) {
$oldurl = substr($oldurl, 1);
}
} else {
$oldurl = '';
}
checkSettingsConf($conf, $action);
$httpreferrer = $_SERVER['HTTP_REFERER'];
$fullhttps = $conf->data['LV_OPTIONS']['LV_ORDER_SSL_FULL'];
if (($fullhttps != 1) && ($action != "order") && isset($httpreferrer) && (strpos($httpreferrer, 'ttps://' . $_SERVER['HTTP_HOST']) == 1)) {
lvredirect(redirectToHttp($dir, $pg));
} else {
$shop_root_dir = getShopRootDir($fullhttps, $action, $conf, $isSSL);
$_SESSION['http_pref'] = $shop_root_dir;
$tpl->assign('http_pref', $shop_root_dir);
$tpl->assign('isssl', $isSSL);
if (isset($conf->data['LV_OPTIONS']['LV_MSHOP_SOURCE']) && ($conf->data['LV_OPTIONS']['LV_MSHOP_SOURCE'] != '')) {
$_SESSION['http_mshop'] = $conf->data['LV_OPTIONS']['LV_MSHOP_SOURCE'];
} else {
$_SESSION['http_mshop'] = $_SESSION['http_pref'];
};
$tpl->assign('http_mshop', $_SESSION['http_mshop']);
$_SESSION['http_pref_payment'] = str_replace('https://', 'http://', $shop_root_dir);
$tpl->assign('http_pref_payment', str_replace('https://', 'http://', $shop_root_dir));
$tpl->assign('refferer', (isset($httpreferrer) ? $httpreferrer : NULL));
if (isset($_SESSION['vatitems'])) {
$vatitems = $_SESSION['vatitems'];
} else {
$vatitems_xml = new CustomXML('lvconfig/vatitems.xml');
$vatitems = array();
foreach ($vatitems_xml->xml['LV_VATITEMS']['LV_VATITEM'] as $v) {
$vatitems[$v['LV_NUMBER']] = $v;
} unset($vatitems_xml);
$_SESSION['vatitems'] = $vatitems;
}
try {
$tpl->xmlArray2Smarty($conf->data['LV_OPTIONS']);
$tpl->xmlArray2Smarty($conf->data['LV_TEXT']);
$tpl->xmlArray2Smarty(array('LV_LANGUAGES_SELECTION' => $conf->data['LV_LANGUAGES_SELECTION']));
$language = new Language($tpl);
if ($pg->exists("lang") && $language->isLanguageExists(strtoupper($pg->lang))) {
$pg->lang = strtolower($pg->lang);
$tpl->assign('LV_LANGUAGECODE', $pg->lang);
$language->setLanguage($pg->lang);
$url = $_SERVER['REQUEST_URI'];
$url = str_replace(('&lang=' . $pg->lang), '', $url);
$url = str_replace(('&lang=' . $pg->lang), '', $url);
if (strpos($url, 'action=') == false) {
if (strpos($url, 'index.php?') != false) {
$url = str_replace('index.php?', 'index.php', $url);
} $url = str_replace('index.php', 'index.php?action=home', $url);
}
if (strpos($url, '/index.php?') != false) {
$url = substr($url, strpos($url, '/index.php?') + 1);
}
$tpl->assign('curr_url', $url);
} else {
if (isset($_SESSION['globallang'])) {
$language->setLanguage($_SESSION['globallang']);
} else {
$language->setLanguage($conf->data['LV_OPTIONS']['LV_LANGUAGECODE']);
}
}
$tpl->assign('RECOMMENDED_PRICE_SHOW_LANG', "LV_LANG_" . strtoupper($language->getCurrentLanguage()));
$currentLanguage = $language->getCurrentLanguage();
if (!isset($tpl->tpl_vars['curr_url']) || $tpl->tpl_vars['curr_url'] == '') {
if (isset($conf->data['LV_OPTIONS']['LV_STATIC_URLS']) && ($conf->data['LV_OPTIONS']['LV_STATIC_URLS'] != '1')) {
$url = $shop_root_dir . 'index.php?action=home';
if (strpos($url, '/index.php?') != false) {
$url = substr($url, strpos($url, '/index.php?') + 1);
}
$tpl->assign('curr_url', $url);
} else {
$tpl->assign('curr_url', $_SERVER['REQUEST_URI']);
}
}
} catch (Exception $e) {
}
$tpl->assign('LV_LANGUAGECODE', strtolower($tpl->tpl_vars['LV_LANGUAGECODE']));
if ($pg->exists('group_id')) {
$group_id = $pg->group_id;
} else {
$group_id = 0;
}
try {
$group = new Groups($group_id, $currentLanguage);
} catch (Exception $e) {
echo $e->__toString();
}
$tpl->assign('LV_MAIN_GROUPS', $group->main);
$tpl->assign('LV_GROUPS_FULLSTRUCT', $group->fullstruct);
getGroupLevelId($tpl, $group);
$attr = new Attributes($conf, $pg->values['attr'], $currentLanguage);
if ($attr->set) {
$tpl->assign('LV_ATTR_FULLSTRUCT', $attr->fullstruct);
}
$extrapages = new extrapages($tpl, "lvconfig/extrapages.xml", $currentLanguage);
if (isset($conf->data['LV_OPTIONS']['LV_FREEBLOCKS_ENABLED']) && ($conf->data['LV_OPTIONS']['LV_FREEBLOCKS_ENABLED'] == 1)) {
constructFreeblocks($tpl, "lvconfig/freeblocks.xml", $currentLanguage);
};
constructFreemenus($tpl, "lvconfig/freemenu.xml", $currentLanguage);
$tpl->assign('LV_PATH', $group->path);
$tpl->assign('LV_SUBGROUPS', $group->sub);
$tpl->assign('LV_CURRENT_GROUP', $group->current);
$validator = new Login($tpl);
// Affiliates
if ($pg->exists('lv_af') && (preg_match('/^\d*$/', $pg->lv_af) == 1)) {
$_SESSION['lv_af'] = $pg->lv_af;
setcookie($GLOBALS['conf']->data['LV_OPTIONS']['LV_SESSIONID'] . 'LastLvAf', $pg->lv_af, time() + (86400 * 14));
} elseif (isset($_SESSION['lv_af'])) {
if ($_SESSION['Alpha'] != -1) {
unset($_SESSION['lv_af']);
}
} elseif ($_COOKIE[$GLOBALS['conf']->data['LV_OPTIONS']['LV_SESSIONID'] . 'LastLvAf'] != '') {
$_SESSION['lv_af'] = $_COOKIE[$GLOBALS['conf']->data['LV_OPTIONS']['LV_SESSIONID'] . 'LastLvAf'];
}
//login
$tpl->assign('member_mode', $member_mode = $conf->data['logivert']['LV_MEMBER_MODE']);
$tpl->assign('member_showarticles', $member_showarticles = $conf->data['logivert']['LV_MEMBER_SHOWARTICLES']);
if (isset($conf->data['logivert']['LV_MEMBER_EMAILLOGIN'])) {
$tpl->assign('member_emaillogin', $conf->data['logivert']['LV_MEMBER_EMAILLOGIN']);
} else {
$tpl->assign('member_emaillogin', '0');
}
$tpl->assign('member_showprices', "1");
if ($pg->exists('passerror')) {
if ($pg->passerror == 2) {
$tpl->assign('loginerror', $tpl->getTemplateVars('LV_LOGIN_INSERVICEMODE'));
} else {
$tpl->assign('loginerror', $tpl->getTemplateVars('LV_LOGIN_ERROR'));
}
}
if ($member_mode == "Necessary") {
if ($action == "register") {
$action = "home";
}
if (($action != "login") && ($tpl->getTemplateVars('username') == "")) {
$tpl->assign('LV_SHOPPINGCART_ENABLED', "0");
$tpl->assign('LV_ATTPROMOARTICLES_ENABLED', "0");
// if login is necessary, user isn't logged in and articles may not be shown to "un"logged users then show home page psp_paymentStatus
if ($member_showarticles != 1) {
if (($action != "extra") && ($action != "home") && ($action != "formmail") && ($action != "recover") && ($action != "psp_paymentStatus")) {
$action = "home";
}
}
$hidearticlegroups = (isset($conf->data['logivert']['LV_MEMBER_HIDEARTICLEGROUPS']) ? $conf->data['logivert']['LV_MEMBER_HIDEARTICLEGROUPS'] : '0');
}
if ($tpl->getTemplateVars('username') == "") {
$tpl->assign('member_showprices', "0");
}
}
$tpl->assign('hidearticlegroups', (isset($hidearticlegroups) ? $hidearticlegroups : '0'));
if ($_SESSION['Alpha'] != -1) {
$tpl->assign('member_invisib_inorder_countryselect', $conf->data['logivert']['LV_MEMBER_INVISIB_INORDER_COUNTRYSELECT']);
$tpl->assign('member_invisib_inorder_wayofdelivery', $conf->data['logivert']['LV_MEMBER_INVISIB_INORDER_WAYOFDELIVERY']);
$tpl->assign('member_invisib_inorder_wayofpayment', $conf->data['logivert']['LV_MEMBER_INVISIB_INORDER_WAYOFPAYMENT']);
$tpl->assign('member_invisib_inorder_step2', $conf->data['logivert']['LV_MEMBER_INVISIB_INORDER_STEP2']);
}
//
if ($conf->data['LV_OPTIONS']['LV_CLIENT_DISPLAY_CHANGE_ENABLED']) {
if (!isset($_SESSION['artldisplay']) || ($_SESSION['artldisplay'])) {
$_SESSION['artldisplay'] = $conf->data['LV_OPTIONS']['LV_ARTLIST_COMPACTDISPLAY'];
}
if ($_SESSION['artldisplay'] == "0") {
$conf->data['LV_OPTIONS']['LV_ARTLIST_COMPACTDISPLAY'] = "0";
$conf->data['LV_OPTIONS']['LV_ARTLIST_LINEDISPLAY'] = "1";
$tpl->assign('LV_CLIENT_ARTICLE_DISPLAY', 1);
} else {
$conf->data['LV_OPTIONS']['LV_ARTLIST_COMPACTDISPLAY'] = "1";
$conf->data['LV_OPTIONS']['LV_ARTLIST_LINEDISPLAY'] = "0";
$tpl->assign('LV_CLIENT_ARTICLE_DISPLAY', 0);
}
}
$highlightblocks = new Highlightblocks($tpl);
$attention = new Attention($tpl, $currentLanguage, true);
$attention->Assign(-1, true);
$promotion = new Attention($tpl, $currentLanguage, false);
$promotion->Assign(-1, false);
$tpl->assign('LV_ATTPROMOARTICLES_ENABLED', "1");
if (($action == "") && ($conf->data['LV_OPTIONS']['LV_LANGUAGE_SELECTION_PAGE'] == 0)) {
$action = "home";
};
setBaseMetatags($tpl, $deviceMustbeset, $baseMetatags, $shop_root_dir);
$tpl->assign('tags', getTags());
$tpl->assign('customblocks', getCustomblocks($conf->data['LV_OPTIONS']['LV_CUSTOMBLOCKS_ENABLED']));
if ((($action == "search") || ($action == "advanced_search_results")) && ((isset($conf->data['LV_OPTIONS']['LV_SEARCH_DETAILRESULT'])) && ($conf->data['LV_OPTIONS']['LV_SEARCH_DETAILRESULT'] == 1))) {
$action = $action . "_detail";
}
if ($action == "psp_success_url" || $action == "psp_cancel_url") {
$next_action = 'home';
$lastOrderName = $_COOKIE[$GLOBALS['conf']->data['LV_OPTIONS']['LV_SESSIONID'] . 'LastOrderName'];
$path = "./data/orders/";
if ($lastOrderName != '') {
if ((is_dir($path)) && (file_exists($path . $lastOrderName))) {
$lastOrder = new CustomXML($path . $lastOrderName);
$lastOrder_xml = $lastOrder->xml['Logivert'];
}
} else {
require_once('framework/psp_common.class.php');
$lastOrder_xml = psp_findAndLoadOrderFile($pg, $path);
}
if ($action == "psp_success_url") {
include_once('framework/psp_common.class.php');
$payment_successful = psp_check_success_return($lastOrder_xml, $pg);
if ($payment_successful == 1) {
if ($conf->data['LV_OPTIONS']['LV_GA_ECOM_TRACKING_ON'] == "payment_success") {
if (!isset($lastOrder_xml['orders']['ITEM'][0])) {
$lastOrder_xml['orders']['ITEM'] = array(0 => $lastOrder_xml['orders']['ITEM']);
}
$totalcostArts = 0;
foreach ($lastOrder_xml['orders']['ITEM'] as $v) {
$totalcostArts = $totalcostArts + $v['quantity'] * $v['unit_price_show'];
}
$tpl->assign('last_order', $lastOrder_xml['orders']['ITEM']);
$tpl->assign('last_order_id', $lastOrder_xml['order_number']);
$tpl->assign('last_total_cost', $lastOrder_xml['total_cost']);
$tpl->assign('last_ship_price', $lastOrder_xml['ship_price']);
$tpl->assign('last_order_costs', $lastOrder_xml['total_cost'] - $totalcostArts);
$tpl->assign('order', $lastOrder_xml['orders']['ITEM']);
$tpl->assign('order_id', $lastOrder_xml['order_number']);
$tpl->assign('total_cost', $lastOrder_xml['total_cost']);
$tpl->assign('ship_price', $lastOrder_xml['ship_price']);
$tpl->assign('order_costs', $lastOrder_xml['total_cost'] - $totalcostArts);
$tpl->assign('LV_OPTIONS_SITEFOOTERTEXT', $tpl->tpl_vars['LV_OPTIONS_SITEFOOTERTEXT'] . $conf->data['LV_OPTIONS']['LV_PSP_SUCCESS_URL_CODE']);
}
if (isset($lastOrder_xml['payment_successpage']) && ($lastOrder_xml['payment_successpage'] != '')) {
$next_action = 'extra';
$pg->extra = $lastOrder_xml['payment_successpage'];
}
} else {
if (isset($lastOrder_xml['payment_cancelpage']) && ($lastOrder_xml['payment_cancelpage'] != '')) {
$next_action = 'extra';
$pg->extra = $lastOrder_xml['payment_cancelpage'];
}
}
} else {
if (isset($lastOrder_xml['payment_cancelpage']) && ($lastOrder_xml['payment_cancelpage'] != '')) {
$next_action = 'extra';
$pg->extra = $lastOrder_xml['payment_cancelpage'];
}
}
$action = $next_action;
}
if (isset($conf->data['LV_OPTIONS']['LV_SLIDESHOW']) && ($conf->data['LV_OPTIONS']['LV_SLIDESHOW'] == 4)) {
$slide = new ConfigLoader(array("lvconfig/slide.xml"));
if (isset($slide->data['LV_SLIDE']) && isset($slide->data['LV_SLIDE']['LV_ITEM'])) {
$tpl->xmlArray2Smarty(array('LV_SLIDE' => $slide->data['LV_SLIDE']['LV_ITEM']));
}
}
$tpl->assign('action', $action);
switch ($action) {
case "home":
// Check if sitemap.xml exists. This is only needed if some error occured while creating the sitemap by the offline back-office. The creation of the sitemap offline is beter optimized, it's thereby adviced to use the sitemap created by the offline back-office.
if (!file_exists('sitemap.xml')) {
$sitemap = new Genmap($language);
}
try {
$conf_home = new ConfigLoader(array("lvconfig/articles_promotion_block.xml", "lvconfig/articles_promotion.xml"));
if (isset($conf_home->data['LV_ARTICLES_ATTENTION_BLOCK'])) {
$tpl->xmlArray2Smarty(array('LV_ARTICLES_ATTENTION_BLOCK' => $conf_home->data['LV_ARTICLES_ATTENTION_BLOCK']));
}
if (isset($conf_home->data['LV_ARTICLES_PROMOTION_BLOCK'])) {
$tpl->xmlArray2Smarty(array('LV_ARTICLES_PROMOTION_BLOCK' => $conf_home->data['LV_ARTICLES_PROMOTION_BLOCK']));
}
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
} catch (Exception $e) {
echo $e->__toString();
}
$baseMetatags .= $language->xml_array['LV_META_TAGS'];
$tpl->assign('LV_METATAG', AddCanonicalTag($baseMetatags, $shop_root_dir, $action, '', '', $currentLanguage));
$oNews = new News();
$aLastItems = $oNews->getLastItems(3);
if ($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") {
lvredirect($conf->data['LV_OPTIONS']['LV_HOMEPAGE']);
} else {
$tpl->assign('layout_include', 'page.home.html');
$tpl->assign('aNewsItems', $aLastItems);
lvDisplay($tpl, 'layout.html');
}
break;
case "article":
try {
if ($pg->exists('srchval')) {
lvRegisterSearch(html_entity_decode($pg->srchval, NULL, 'UTF-8'), $currentLanguage, '1');
}
if (($pg->exists('justinbasket')) && ($pg->justinbasket == 'true')) {
$tpl->assign('justinbasket', 1);
} else {
$tpl->assign('justinbasket', 0);
}
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
$art = new Article($pg->aid);
if ($art->data['artnotavailable'] == 1) {
$tpl->assign('layout_include', 'page.errors.html');
$errors = $language->xml_array['LV_TEXT_ARTNOTAVAILABLE'];
$tpl->assign('errors', $errors);
} else {
$article = $art->data;
if ($pg->exists('svariant') && $pg->svariant == 1) {
} else {
if ($article['has_variantparents'] == 1) {
$art = new Article($article['variantparents']['variant_parent']);
$article = $art->data;
$pg->aid = $article['nr'];
}
}
$curr_lang = 'lang_' . $currentLanguage;
$article['description'] = $article['description'][$curr_lang];
$article['descriptionandmeasure'] = $article['descriptionandmeasure'][$curr_lang];
$article['measure'] = $article['measure'][$curr_lang];
$article['urlitem'] = $article['urlitem'][$curr_lang];
if (isset($article['specification'])) {
$article['specification'] = $article['specification'][$curr_lang];
}
if (isset($article['shortmemo'])) {
$article['shortmemo'] = $article['shortmemo'][$curr_lang];
}
if (isset($article['longmemo'])) {
$article['longmemo'] = $article['longmemo'][$curr_lang];
}
$curr_lang2 = 'LV_ARTICLES_' . strtoupper($curr_lang);
if (isset($article['lightbox']) && isset($article['lightbox']['lightbox_big'])) {
$article['use_lightbox'] = 1;
if (!is_array($article['lightbox']['lightbox_big']['picture'])) {
$article['lightbox']['lightbox_big']['picture'] = array(0 => $article['lightbox']['lightbox_big']['picture']);
}
if (!is_array($article['lightbox']['lightbox_small']['picture'])) {
$article['lightbox']['lightbox_small']['picture'] = array(0 => $article['lightbox']['lightbox_small']['picture']);
}
} else {
$article['use_lightbox'] = 0;
}
if (!isset($article['bottom_scripts'])) {
$article['bottom_scripts'] = '';
}
if ($article['use_variants'] == 0) {
$article = $art->article_language_conversions($article, $art->get_stock_quantity($art['nr']), $currentLanguage, $art->get_stockslave_quantity($art['nr']));
} elseif ($article['use_variants'] == 1) {
$article_variants = array();
if (isset($article['variants']['variant'])) {
if (!is_array($article['variants']['variant'][0])) {
$article['variants']['variant'] = array(0 => $article['variants']['variant']);
}
foreach ($article['variants']['variant'] as $v) {
$a = $art->get_another_product($v['variant_art'], 1);
if ($a) {
$a['stdam'] = $v['variant_stdam'];
$a = $art->article_language_conversions($a, $art->get_stock_quantity($a['nr']), $currentLanguage, $art->get_stockslave_quantity($a['nr']));
$a['descriptionandmeasure'] = $a['descriptionandmeasure'][$curr_lang];
if (isset($a['shortmemo'])) {
$a['shortmemo'] = $a['shortmemo'][$curr_lang];
}
if (isset($a['longmemo'])) {
$a['longmemo'] = $a['longmemo'][$curr_lang];
}
if (isset($a['options_struct']['options_struct_item'][0]) && (sizeof($a['options_struct']['options_struct_item'][0]) == 0)) {
unset($a['options_struct']);
}
if (isset($a['text_struct']['text_struct_item'][0]) && (sizeof($a['text_struct']['text_struct_item'][0]) == 0)) {
unset($a['text_struct']);
}
$real_vat = 0;
if (isset($vatitems[$a['vat']])) {
if (isset($vatitems[$a['vat']]['LV_PERCENTAGE'])) {
$real_vat = $vatitems[$a['vat']]['LV_PERCENTAGE'];
}
}
$a['vat'] = $real_vat;
$a['price_currname'] = $a['price_currname'][$curr_lang];
$a['availability']['availability_text'] = $a['availability'][$curr_lang]['availability_text'];
if (isset($a['pictbiblio']['item'])) {
$a['pictbiblio']['item'] = $art->get_picturebiblio($a['pictbiblio']['item']);
}
$a['stock_qty'] = $art->get_stock_quantity($a['nr']);
$article_variants[] = $a;
}
}
} elseif (isset($article['variants']['variant_article'])) {
if (!is_array($article['variants']['variant_article'])) {
$article['variants']['variant_article'] = array(0 => $article['variants']['variant_article']);
}
foreach ($article['variants']['variant_article'] as $v) {
$a = $art->get_another_product($v, 1);
if ($a) {
$a = $art->article_language_conversions($a, $art->get_stock_quantity($a['nr']), $currentLanguage, $art->get_stockslave_quantity($a['nr']));
$a['descriptionandmeasure'] = $a['descriptionandmeasure'][$curr_lang];
if (isset($a['shortmemo'])) {
$a['shortmemo'] = $a['shortmemo'][$curr_lang];
}
if (isset($a['longmemo'])) {
$a['longmemo'] = $a['longmemo'][$curr_lang];
}
if (isset($a['options_struct']['options_struct_item'][0]) && (sizeof($a['options_struct']['options_struct_item'][0]) == 0)) {
unset($a['options_struct']);
}
if (isset($a['text_struct']['text_struct_item'][0]) && (sizeof($a['text_struct']['text_struct_item'][0]) == 0)) {
unset($a['text_struct']);
}
$real_vat = 0;
if (isset($vatitems[$a['vat']])) {
if (isset($vatitems[$a['vat']]['LV_PERCENTAGE'])) {
$real_vat = $vatitems[$a['vat']]['LV_PERCENTAGE'];
}
}
$a['vat'] = $real_vat;
$a['price_currname'] = $a['price_currname'][$curr_lang];
$a['availability']['availability_text'] = $a['availability'][$curr_lang]['availability_text'];
if (isset($a['pictbiblio']['item'])) {
$a['pictbiblio']['item'] = $art->get_picturebiblio($a['pictbiblio']['item']);
}
$a['stock_qty'] = $art->get_stock_quantity($a['nr']);
$article_variants[] = $a;
}
}
}
$tpl->assign('article_variants', $article_variants);
}
if (isset($article['related_products']['item'])) {
if (!is_array(current($article['related_products']['item']))) {
$article['related_products']['item'] = array(0 => $article['related_products']['item']);
}
foreach ($article['related_products']['item'] as $k => $v) {
$a = $art->get_another_product($v['article_nr']);
if ($a) {
if (is_array(current($a['LV_ARTICLES_GROUP']))) {
$a_group = $a['LV_ARTICLES_GROUP']['LV_ARTICLES_ITEM'][0];
} else {
$a_group = $a['LV_ARTICLES_GROUP']['LV_ARTICLES_ITEM'];
}
$article['related_products']['item'][$k]['group_id'] = $a_group;
$article['related_products']['item'][$k]['descriptionandmeasure'] = $a['LV_ARTICLES_DESCRIPTIONANDMEASURE'][$curr_lang2];
$article['related_products']['item'][$k]['picturemini'] = $a['LV_ARTICLES_PICTUREMINI'];
$article['related_products']['item'][$k]['picturesmall'] = $a['LV_ARTICLES_PICTURESMALL'];
$article['related_products']['item'][$k]['price_currname'] = $a['LV_ARTICLES_PRICE_CURRNAME'][$curr_lang2];
$article['related_products']['item'][$k]['showprice_mode'] = $a['LV_ARTICLES_SHOWPRICE_MODE'];
$article['related_products']['item'][$k]['urlitem'] = $a['LV_ARTICLES_URLITEM'][$curr_lang2];
$article['related_products']['item'][$k]['nr'] = $a['LV_ARTICLES_NR'];
$article['related_products']['item'][$k]['show_pricetext'] = $a['LV_ARTICLES_SHOW_PRICETEXT'];
$article['related_products']['item'][$k]['shoppingcart_disabled'] = $a['LV_ARTICLES_SHOPPINGCART_DISABLED'];
$real_vat = 0;
if (isset($vatitems[$a['LV_ARTICLES_VAT']])) {
if (isset($vatitems[$a['LV_ARTICLES_VAT']]['LV_PERCENTAGE'])) {
$real_vat = $vatitems[$a['LV_ARTICLES_VAT']]['LV_PERCENTAGE'];
}
}
$article['related_products']['item'][$k]['vat'] = $real_vat;
}
}
}
// Cross Marketing
if (isset($article['cm']['cm_text'])) {
$article['cm']['cm_text'] = $article['cm']['cm_text'][$curr_lang];
if (isset($article['cm']['cm_item'])) {
if (!is_array($article['cm']['cm_item'])) {
$article['cm']['cm_item'] = array(0 => $article['cm']['cm_item']);
}
foreach ($article['cm']['cm_item'] as $v) {
$a = $art->get_another_product($v);
if ($a) {
if (is_array(current($a['LV_ARTICLES_GROUP']))) {
$a_group = $a['LV_ARTICLES_GROUP']['LV_ARTICLES_ITEM'][0];
} else {
$a_group = $a['LV_ARTICLES_GROUP']['LV_ARTICLES_ITEM'];
}
$real_vat = 0;
if (isset($vatitems[$a['LV_ARTICLES_VAT']])) {
if (isset($vatitems[$a['LV_ARTICLES_VAT']]['LV_PERCENTAGE'])) {
$real_vat = $vatitems[$a['LV_ARTICLES_VAT']]['LV_PERCENTAGE'];
}
}
$article['cm']['products'][] = array(
'nr' => $a['LV_ARTICLES_NR'],
'group_id' => $a_group,
'picturesmall' => $a['LV_ARTICLES_PICTURESMALL'],
'picturemini' => $a['LV_ARTICLES_PICTUREMINI'],
'description' => $a['LV_ARTICLES_DESCRIPTION'][$curr_lang2],
'measure' => $a['LV_ARTICLES_MEASURE'][$curr_lang2],
'descriptionandmeasure' => $a['LV_ARTICLES_DESCRIPTIONANDMEASURE'][$curr_lang2],
'urlitem' => $a['LV_ARTICLES_URLITEM'][$curr_lang2],
'price_currname' => $a['LV_ARTICLES_PRICE_CURRNAME'][$curr_lang2],
'price' => $a['LV_ARTICLES_PRICE_SHOW'],
'showprice_mode' => $a['LV_ARTICLES_SHOWPRICE_MODE'],
'vat' => $real_vat,
'first_group' => $a['first_group'],
'show_pricetext' => $a['LV_ARTICLES_SHOW_PRICETEXT'],
'shoppingcart_disabled' => $a['LV_ARTICLES_SHOPPINGCART_DISABLED']
);
}
}
}
}
if (isset($article['ecotaxes']['ecotax']) && !is_array(current($article['ecotaxes']['ecotax']))) {
$article['ecotaxes']['ecotax'] = array(0 => $article['ecotaxes']['ecotax']);
}
if (!empty($article['recommendedprice'])) {
if (is_array($article['recommendedprice'])) {
$tpl->assign('INVALID_RECOMMENDED_PRICE', 'true');
} else {
$tpl->assign('INVALID_RECOMMENDED_PRICE', 'false');
}
} else {
$tpl->assign('INVALID_RECOMMENDED_PRICE', 'false');
}
if (isset($conf->data['LV_OPTIONS']['LV_REVIEW_ENABLED']) && ($conf->data['LV_OPTIONS']['LV_REVIEW_ENABLED'] == 1)) {
if (isset($article['review_total']) && ($article['review_total'] >= 1)) {
$article['reviews'] = $art->get_reviews($pg->aid, strtoupper($currentLanguage));
}
}
$article = $art->setArticleAttributes($conf, $article, $attr, $currentLanguage);
$real_vat = 0;
if (isset($vatitems[$article['vat']])) {
if (isset($vatitems[$article['vat']]['LV_PERCENTAGE'])) {
$real_vat = $vatitems[$article['vat']]['LV_PERCENTAGE'];
}
}
$article['vat'] = $real_vat;
$article['availability']['availability_text'] = $article['availability'][$curr_lang]['availability_text'];
if (($article['options_struct'] != '') && isset($article['options_struct']['options_struct_item'][0]) && (sizeof($article['options_struct']['options_struct_item'][0]) == 0)) {
unset($article['options_struct']);
}
if (($article['text_struct'] != '') && isset($article['text_struct']['text_struct_item'][0]) && (sizeof($article['text_struct']['text_struct_item'][0]) == 0)) {
unset($article['text_struct']);
}
$article['stock_qty'] = $art->get_stock_quantity($article['nr']);
$tpl->assign('article', $article);
$tpl->assign('group_id', $group_id);
$tpl->assign('group_id_level1', $group->level1);
$tpl->assign('oMultiWishlist', new WishlistMulti());
$art->get_another_product($pg->aid);
$tpl->assign('LV_OPTIONS_SITETITLE', $art->xml['Logivert']['LV_META_TITLE']['LV_' . strtoupper($currentLanguage)]);
$baseMetatags .= $art->xml['Logivert']['LV_META_TAGS']['LV_' . strtoupper($currentLanguage)];
$tpl->assign('LV_METATAG', AddCanonicalTag($baseMetatags, $shop_root_dir, $action, $pg->aid, $art->data['urlitem'][$curr_lang], $currentLanguage));
if (isset($article['recept']) && ($article['recept']='1')) {
$tpl->assign('layout_include','page.recipes.html');
} else {
$tpl->assign('layout_include','page.art.html');
}
}
lvDisplay($tpl,'layout.html');
} catch (Exception $e) { lvredirect('index.php?action=home&lang='.strtoupper($currentLanguage)); }
break;
case "extra":
try {
if (strpos($pg->extra, 'A_') !== 0) {
$pg->extra = 'A_' . $pg->extra;
}
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
$extrapages->AssignPage($pg->extra, $currentLanguage);
$extra = new extrapage($pg->extra);
$tpl->assign('extra', $pg->extra);
$tpl->assign('LV_OPTIONS_SITETITLE', $extra->xml['LV_EXTRAPAGE']['LV_SEARCHTITLE']['LV_' . strtoupper($currentLanguage)]);
if (isset($extra->xml['LV_EXTRAPAGE']['LV_META_TAGS']) && isset($extra->xml['LV_EXTRAPAGE']['LV_META_TAGS']['LV_' . strtoupper($currentLanguage)])) {
$baseMetatags .= $extra->xml['LV_EXTRAPAGE']['LV_META_TAGS']['LV_' . strtoupper($currentLanguage)];
}
$tpl->assign('LV_METATAG', AddCanonicalTag($baseMetatags, $shop_root_dir, $action, $pg->extra, '', $currentLanguage));
$tpl->assign('formvalues', $_SESSION['formvalues']);
$tpl->assign('formsent', $_SESSION['formsent']);
$tpl->assign('errors', $_SESSION['errors']);
$_SESSION['formvalues'] = null;
$_SESSION['formsent'] = "";
$_SESSION['errors'] = "";
$tpl->assign('layout_include', 'page.extra.html');
lvDisplay($tpl, 'layout.html');
} catch (Exception $e) {
lvredirect('index.php?action=home&lang=' . strtoupper($currentLanguage));
}
break;
case "page": // fallthrough
case "filter":
case "tags":
case "search_detail":
case "advanced_search_results_detail":
if (isset($group->current) || ($action == "filter") || ($action == "tags") || ($action == "search_detail") || ($action == "advanced_search_results_detail")) {
if (($pg->exists('justinbasket')) && ($pg->justinbasket == 'true')) {
$tpl->assign('justinbasket', 1);
} else {
$tpl->assign('justinbasket', 0);
}
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
if ($pg->exists('page')) {
$page = $pg->page;
} else {
$page = 0;
}
$tpl->assign('current_page', $page);
$tpl->assign('group_id', $group_id);
$tpl->assign('group_id_level1', $group->level1);
$art = new Articles();
$first = $page * $conf->data['LV_OPTIONS']['LV_ARTICLES_PER_PAGE'];
switch ($action) {
case "page":
$tpl->assign('oMultiWishlist', new WishlistMulti());
$resource = $art->Select(('limit ' . $first . ',' . $conf->data['LV_OPTIONS']['LV_ARTICLES_PER_PAGE']), $group_id);
$pages = ceil($art->quantity_in_group / $conf->data['LV_OPTIONS']['LV_ARTICLES_PER_PAGE']);
break;
case "filter":
$search = new Search($currentLanguage);
$res = $search->artsWithAttributes(implode(",", $pg->values['attr']), $pg->values['price_from'], $pg->values['price_to']);
$resource = $art->Select(('limit ' . $first . ',999999'), "", $res);
$tpl->assign('attr', $pg->values['attr']);
$tpl->assign('price_from', $pg->values['price_from']);
$tpl->assign('price_to', $pg->values['price_to']);
$tpl->assign('scrollTop', $pg->values['scrollTop']);
$pages = 1;
break;
case "tags":
$search = new Search($currentLanguage);
$res = $search->artsWithArttags($pg->values['tagid'], $tagname);
$resource = $art->Select(('limit ' . $first . ',999999'), "", $res);
$pages = 1;
break;
case "search_detail":
$search = new Search($currentLanguage);
//$search_string=mb_strtolower(htmlspecialchars($pg->srchval, ENT_QUOTES, 'UTF-8'));
$search_string = mb_strtolower($pg->srchval);
lvRegisterSearch(html_entity_decode($pg->srchval, NULL, 'UTF-8'), $currentLanguage, '0');
$res = $search->find($search_string, null, true);
$resource = $art->Select(('limit ' . $first . ',999999'), "", $res);
$pages = 1;
break;
case "advanced_search_results_detail":
$advanced = getAdvancedForSearchResults($pg, $group);
$search = new Search($currentLanguage);
$res = $search->find($pg->keywords, $advanced, true);
$resource = $art->Select(('limit ' . $first . ',999999'), "", $res);
$pages = 1;
break;
}
$tpl->assign('pages', $pages);
$articles = array();
$stock = array();
$curr_lang = 'lang_' . $currentLanguage;
while ($a = $art->Fetch($resource)) {
$a->data = $a->article_language_conversions($a->data, $a->get_stock_quantity($a->data['nr']), $currentLanguage, $a->get_stockslave_quantity($a->data['nr']));
$a = $a->data;
$a['description'] = $a['description'][$curr_lang];
$a['descriptionandmeasure'] = $a['descriptionandmeasure'][$curr_lang];
$a['measure'] = $a['measure'][$curr_lang];
$a['specification'] = $a['specification'][$curr_lang];
$a['urlitem'] = $a['urlitem'][$curr_lang];
$a['compordertextvisible']['compordertext'] = (isset($a['compordertextvisible'][$curr_lang]['compordertext']) ? $a['compordertextvisible'][$curr_lang]['compordertext'] : "");
$a['shortmemo'] = $a['shortmemo'][$curr_lang];
if (isset($a['ecotaxes']['ecotax']) && !is_array(current($a['ecotaxes']['ecotax']))) {
$a['ecotaxes']['ecotax'] = array(0 => $a['ecotaxes']['ecotax']);
}
if (isset($a['options_struct']['options_struct_item'][0]) && (sizeof($a['options_struct']['options_struct_item'][0]) == 0)) {
unset($a['options_struct']);
}
if (isset($a['text_struct']['text_struct_item'][0]) && (sizeof($a['text_struct']['text_struct_item'][0]) == 0)) {
unset($a['text_struct']);
}
$real_vat = 0;
if (isset($vatitems[$a['vat']])) {
if (isset($vatitems[$a['vat']]['LV_PERCENTAGE'])) {
$real_vat = $vatitems[$a['vat']]['LV_PERCENTAGE'];
} else {
}
} else {
}
$a['vat'] = $real_vat;
$a['availability']['availability_text'] = $a['availability'][$curr_lang]['availability_text'];
if (!isset($a['calcform']) || ($a['calcform'] == '')) {
$a['calcform'] = 0;
};
$articles[] = $a;
}
$art->Free($resource);
switch ($action) { // Set meta tags
case "page":
if (isset($group->current)) {
$tpl->assign('LV_OPTIONS_SITETITLE', $group->current['LV_SEARCHTITLE']['LV_' . strtoupper($currentLanguage)]);
$baseMetatags .= $group->current['LV_METATAG']['LV_' . strtoupper($currentLanguage)];
$tpl->assign('LV_METATAG', AddCanonicalTag($baseMetatags, $shop_root_dir, $action, $pg->group_id, $group->current['LV_GROUP_URLITEM'], $currentLanguage));
}
break;
case "filter":
$tpl->assign('LV_OPTIONS_SITETITLE', $language->xml_array['LV_TEXT_FILTER']);
$tpl->assign('LV_METATAG', $baseMetatags);
break;
}
$tpl->assign('articles', $articles);
$tpl->assign('stock', $stock);
$tpl->assign('sortart', $_SESSION['sortart']);
if (isset($group->current['LV_RECEPT']) && ($group->current['LV_RECEPT'] = '1')) {
$tpl->assign('layout_include', 'page.recipelist.html');
} else {
$tpl->assign('layout_include', 'page.artlist.html');
}
lvDisplay($tpl, 'layout.html');
} else {
lvredirect('index.php?action=home&lang=' . strtoupper($currentLanguage));
}
break;
case "showbasket":
if (!isset($_SESSION)) {
session_start();
}
$basket = new Basket();
$errors = '';
if ($pg->exists('calculate')) {
if ($pg->exists('quantity') && is_array($pg->quantity)) {
if ($pg->exists('ids') && is_array($pg->ids) && (count($pg->quantity) == count($pg->ids))) {
$i = 0;
$j = 0;
unset($OrderedNumberManuf);
$OrderedNumberManuf = array();
$z = count($pg->quantity);
foreach ($basket->data['articles'] as $tm) {
$tmp[$tm['id']][$j++] = $tm['ArtQuantity'];
}
$art = new Article($tm['id']);
while ($i < $z) {
unset($addarr);
if ($pg->exists('additional')) {
$addarr = unserialize(urldecode($pg->additional[$i]));
};
unset($addarr2);
$addarr2 = array();
$addarr2['artid'] = $pg->ids[$i];
foreach ($addarr as $k => $v) {
$addarr2[$k] = $v['value'];
}
if ($basket->find_in_cart($pg->ids[$i], 'articles', $addarr2, $currentLanguage) == -1) {
$errors .= diplayError('no such article in the cart');
$i++;
continue;
}
// Check minimum and maximum quantity
$art = new Article($pg->ids[$i]);
if ($pg->quantity[$i] < $art['minimumquantity']) {
$errors .= diplayError($art['descriptionandmeasure']['lang_' . $currentLanguage] . ': ' . $language->xml_array['LV_TEXT_AT_LEAST'] . ' ' . $art['minimumquantity']);
} elseif (isset($art['maximumquantity']) && ($pg->quantity[$i] > $art['maximumquantity'])) {
$errors .= diplayError($art['descriptionandmeasure']['lang_' . $currentLanguage] . ': ' . $language->xml_array['LV_TEXT_AT_MAX'] . ' ' . $art['maximumquantity']);
} else {
// Check stock
if ($art->article_canbeordered($pg->quantity[$i])) {
if (!array_key_exists($pg->ids[$i], $tmp)) {
$i++;
continue;
}
if ($pg->quantity[$i] < $tmp[$pg->ids[$i]][$i]) {
if ($pg->exists('additional')) {
$basket->remove_from_cart($pg->ids[$i], ($tmp[$pg->ids[$i]][$i] - $pg->quantity[$i]), 'articles', $addarr2, $currentLanguage);
} else {
$basket->remove_from_cart($pg->ids[$i], ($tmp[$pg->ids[$i]][$i] - $pg->quantity[$i]), 'articles', Null, $currentLanguage);
}
} elseif ($pg->quantity[$i] > $tmp[$pg->ids[$i]][$i]) {
if ($pg->exists('additional')) {
$basket->add_to_cart($pg->ids[$i], ($pg->quantity[$i] - $tmp[$pg->ids[$i]][$i]), $currentLanguage, $lvShowPriceMode, 'articles', $addarr2);
} else {
$basket->add_to_cart($pg->ids[$i], ($pg->quantity[$i] - $tmp[$pg->ids[$i]][$i]), $currentLanguage, $lvShowPriceMode, 'articles');
}
}
} else {
$art = $art->get_another_product($pg->ids[$i]);
$errors .= diplayError($art['LV_ARTICLES_DESCRIPTIONANDMEASURE']['LV_ARTICLES_LANG_' . strtoupper($currentLanguage)] . ': ' . $language->xml_array['LV_TEXT_MORE_THAN_IN_STOCK']);
}
}
unset($addarr2);
unset($addarr);
$i++;
}
unset($tmp);
}
}
} else {
if (isset($basket->data['articles'])) {
foreach ($basket->data['articles'] as $cartLine) {
$art = new Article($cartLine['id']);
if (!$art->article_canbeordered($cartLine['ArtQuantity'])) {
$lang = strtolower($currentLanguage);
$errors .= diplayError($art->data['description']["lang_{$lang}"] . ': ' . $language->xml_array['LV_TEXT_MORE_THAN_IN_STOCK']);
}
}
}
}
// Check on minimum manufacturer order amount
if (($tpl->tpl_vars['LV_MINIMUMMANUFACTURERORDERAMOUNT_ENABLED'] == 1) && (file_exists("lvconfig/manufacturers.xml")) && ($basket->data['articles'] != NULL)) {
unset($OrderedNumberManuf);
foreach ($basket->data['articles'] as $tm) { // collect manufacturers and quantities of this order
unset($art);
$art = new Article($tm['id']);
$OrderedNumberManuf[$art->data['manufacturer']] = (isset($OrderedNumberManuf) ? $OrderedNumberManuf[$art->data['manufacturer']] : 0) + $tm['ArtQuantity'];
}
unset($art);
$manufacturers = new CustomXML("lvconfig/manufacturers.xml");
$manufacturers_array = $manufacturers->xml['LV_MANUFACTURERS']['LV_MANUFACTURER'];
$manufacturersminorder_array = $manufacturers->xml['LV_MANUFACTURERS']['LV_MINIMUMORDERAMOUNT'];
foreach ($OrderedNumberManuf as $ONMkey => $ONMvalue) { // Check the manufacturer quantities of this order with the minimums
if ($ONMkey != '') {
$minimumorderamount = $manufacturersminorder_array[array_search($ONMkey, $manufacturers_array)];
if ($ONMvalue < $minimumorderamount) {
$errors .= diplayError($ONMkey . ': ' . $language->xml_array['LV_TEXT_AT_LEAST'] . ' ' . $minimumorderamount);
}
}
}
unset($OrderedNumberManuf);
unset($manufacturers);
unset($manufacturers_array);
unset($manufacturersminorder_array);
}
$basket_summary = $basket->get_summary($lvShowPriceMode, $currentLanguage);
if (isset($conf->data['LV_OPTIONS']['LV_BUDGETCOUNTER']) && ($conf->data['LV_OPTIONS']['LV_BUDGETCOUNTER'] == 1)) {
$oBudget = new BudgetCounter();
$fCurBudgetAmount = $oBudget->getCurrentBudget();
$tpl->assign('budgetamount', $fCurBudgetAmount);
}
$tpl->assign('basket_summary', (isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit', (isset($basket_summary[1]) ? $basket_summary[1] : NULL));
$tpl->assign('basket_summary_gifts', $basket_summary[1]['summary_gifts']);
$tpl->assign('basket_gifts_total_price', $basket_summary[1]['basket_gifts_total_price']);
$tpl->assign('basket_total_price', $basket_summary[1]['basket_total_price']);
$tpl->assign('ecotaxes_total_price', $basket_summary[1]['ecotaxes_total']);
$tpl->assign('discount_on_total_order', $basket_summary[1]['discount_on_total_order']);
$tpl->assign('discount_on_total_order_amount', $basket_summary[1]['discount_on_total_order_amount']);
if ($errors != '') {
$tpl->assign('errors', $errors);
}
if (!empty($basket_summary[1]['gift_articles']) && (count($basket->data['gifts']) < $basket->gifts_quantity)) {
$tpl->assign('gift_articles', $basket_summary[1]['gift_articles']);
$tpl->assign('gift_articles_on', 1);
} else {
$tpl->assign('gift_articles_on', 0);
}
if (isset($conf->data['LV_OPTIONS']['LV_ORDER_SSL']) && ($conf->data['LV_OPTIONS']['LV_ORDER_SSL'] == 1)) {
$_SESSION['document_root'] = $_SERVER['DOCUMENT_ROOT'] . str_replace('\\', '/', dirname($_SERVER['PHP_SELF']));
$_SESSION['http_document_root'] = 'http://' . $_SERVER['HTTP_HOST'] . str_replace('\\', '/', dirname($_SERVER['PHP_SELF']));
$action_url = 'https://' . $_SERVER['HTTP_HOST'] . str_replace('\\', '/', dirname($_SERVER['PHP_SELF']));
if (isset($conf->data['LV_OPTIONS']['LV_ORDER_SSL_NO_WWW']) && ($conf->data['LV_OPTIONS']['LV_ORDER_SSL_NO_WWW'] == 1)) {
$action_url = str_replace('//www.', '//', $action_url);
}
} else {
$action_url = $shop_root_dir . 'index.php';
}
$tpl->assign('LV_METATAG', AddCanonicalTag($baseMetatags, $shop_root_dir, $action, '', '', $currentLanguage));
$tpl->assign('action_url', $action_url);
$tpl->assign('layout_include', 'page.cart.html');
lvDisplay($tpl, 'layout.html');
break;
case "budget":
if (isset($_SESSION)) {
$basket = new Basket();
$basket_summary = $basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary', (isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit', (isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$tpl->assign('layout_include', 'page.budget.html');
$oBudget = new BudgetCounter();
$tpl->assign('oBudget', $oBudget);
$tpl->assign('sDisplayMode', $oBudget->getDisplayMode());
$tpl->assign('action_url', 'budget.php?action=toevoegen');
lvDisplay($tpl, 'layout.html');
break;
case "budgetperiod":
if (isset($_SESSION)) {
$basket = new Basket();
$basket_summary = $basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary', (isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit', (isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$tpl->assign('layout_include','page.budgetperiod.html');
$oBudget = new BudgetCounter();
$tpl->assign('oBudget',$oBudget);
$tpl->assign('sDisplayMode',$oBudget->getDisplayMode());
lvDisplay($tpl,'layout.html');
break;
case "bulkselect":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oBulk = New Bulkmeal();
$aWeeks = $oBulk->getNext4Weeks();
$tpl->assign('aWeeks',$aWeeks);
$tpl->assign('layout_include','page.bulkselect.html');
lvDisplay($tpl,'layout.html');
break;
case "bulkhistory":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oBulk = New Bulkmeal();
$aWeeks = $oBulk->getLast6Weeks();
$tpl->assign('aWeeks',$aWeeks);
$tpl->assign('bHistory',true);
$tpl->assign('layout_include','page.bulkselect.html');
lvDisplay($tpl,'layout.html');
break;
case "budgetperiodprint":
$tpl->assign('sHtml',$_SESSION['periodhtml']);
lvDisplay($tpl,'printlayout.html');
break;
case "wishlist":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oRecepten = new Wishlist();
$tpl->assign('oRecepten',$oRecepten->getAllListData());
$tpl->assign('layout_include','page.multiwishlist.html');
$tpl->assign('oMultiWishlist',new WishlistMulti());
lvDisplay($tpl,'layout.html');
break;
case "showwishlist":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$tpl->assign('layout_include','page.showwishlist.html');
$oMultiWishlist = new WishlistMulti();
$aArticles = array();
foreach($oMultiWishlist->getItemsFromList($_GET['wid']) as $aArticle) {
$oArticle = new Article($aArticle['art_id']);
$aArticles[] = $oArticle->data;
}
$oWishlist = new WishlistMulti();
$tpl->assign('aWishlists', $oWishlist->getWishlists());
$tpl->assign('oMultiWishlist',$oWishlist);
$tpl->assign('iWishlist',$_GET['wid']);
$tpl->assign('sWishlistName',$oWishlist->getName($_GET['wid']));
$tpl->assign('aArticles',$aArticles);
lvDisplay($tpl,'layout.html');
break;
case "news":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oNews = new News();
$aLastFive = $oNews->getLastFive();
$tpl->assign('layout_include','page.news.html');
$tpl->assign('aLastFive',$aLastFive);
$tpl->assign('aYears',$oNews->getYears());
$tpl->assign('aLastTitles',$oNews->getLastTitles());
lvDisplay($tpl,'layout.html');
break;
case "newsmonth":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oNews = new News();
$tpl->assign('layout_include','page.newsmonth.html');
$tpl->assign('aNewsItems',$oNews->getItemsPerMonth($_GET['year'],$_GET['month']));
$tpl->assign('aYears',$oNews->getYears());
$tpl->assign('aLastTitles',$oNews->getLastTitles());
lvDisplay($tpl,'layout.html');
break;
case "newsitem":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oNews = new News();
$tpl->assign('layout_include','page.newsitem.html');
$tpl->assign('aNews',$oNews->getNewsItem($_GET['id']));
$tpl->assign('aListTitles',$oNews->getLastTitles());
$tpl->assign('aYears',$oNews->getYears());
lvDisplay($tpl,'layout.html');
break;
case "blog":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oBlog = new Blog();
$aLastFive = $oBlog->getLastFive();
//var_dump($oNews->getItemsPerYear(2015));die;
$tpl->assign('layout_include','page.blog.html');
$tpl->assign('aLastFive',$aLastFive);
$tpl->assign('aYears',$oBlog->getYears());
$tpl->assign('aLastTitles',$oBlog->getLastTitles());
lvDisplay($tpl,'layout.html');
break;
case "blogmonth":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oBlog = new Blog();
$tpl->assign('layout_include','page.blogmonth.html');
$tpl->assign('aNewsItems',$oBlog->getItemsPerMonth($_GET['year'],$_GET['month']));
$tpl->assign('aYears',$oBlog->getYears());
$tpl->assign('aLastTitles',$oBlog->getLastTitles());
lvDisplay($tpl,'layout.html');
break;
case "blogitem":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oBlog = new News();
$tpl->assign('layout_include','page.blogitem.html');
$tpl->assign('aNews',$oBlog->getNewsItem($_GET['id']));
$tpl->assign('aListTitles',$oBlog->getLastTitles());
$tpl->assign('aYears',$oBlog->getYears());
lvDisplay($tpl,'layout.html');
break;
case "bulkmeal":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oBulk = new Bulkmeal();
$bulkdate = $_GET['date'];
$aDailyMenus = $oBulk->getMenus($bulkdate);
$_SESSION['bulkdate'] = $bulkdate;
$sDateNice = $oBulk->NiceDate($bulkdate);
if (count($aDailyMenus) === 1) {
$aMenu1 = $aDailyMenus[0];
$aMenu2 = array();
} else {
$aMenu1 = $aDailyMenus[0];
$aMenu2 = $aDailyMenus[1];
}
$aCourses = array();
if (isset($aMenu1['courses'])) {
foreach($aMenu1['courses'] as $key => $aCourse) {
$aCourses[$key] = '';
}
}
if (isset($aMenu2['courses'])) {
foreach($aMenu2['courses'] as $key => $aCourse) {
$aCourses[$key] = '';
}
}
$tpl->assign('layout_include','page.bulkmeals.html');
$tpl->assign('aDailyMenus',$aDailyMenus);
$tpl->assign('aCourses',$aCourses);
$tpl->assign('aMenu1',$aMenu1);
$tpl->assign('aMenu2',$aMenu2);
$tpl->assign('sBulkDate',$sDateNice);
$tpl->assign('sBulkIntDate', $bulkdate);
$tpl->assign('isOrdered', $oBulk->isOrdered($bulkdate));
$tpl->assign('isCreated', $oBulk->hasMenu($bulkdate));
lvDisplay($tpl,'layout.html');
break;
case "bulkorder":
if(isset($_SESSION)) {
$basket=new Basket();
$basket_summary=$basket->get_summary($lvShowPriceMode, $currentLanguage);
$tpl->assign('basket_summary',(isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit',(isset($basket_summary[1]) ? $basket_summary[1] : NULL));
}
$oBulk = new Bulkmeal();
$sDateNice = $oBulk->NiceDate($_SESSION['bulkdate']);
$tpl->assign('layout_include','page.bulkorder.html');
$tpl->assign('aMenus', $_SESSION['bulkmeal']);
$tpl->assign('sNiceDate', $sDateNice);
$tpl->assign('sDailyMenuDate', $_SESSION['bulkdate']);
$tpl->assign('aAlternatives', $_SESSION['alternatives']);
lvDisplay($tpl,'layout.html');
break;
case "order" :
$p_lang = strtoupper($currentLanguage);
if (isset($_SESSION)) {
$basket = new Basket();
$basket_summary = $basket->get_summary_small($currentLanguage, $lvShowPriceMode);
$tpl->assign('basket_summary', (isset($basket_summary[0]) ? $basket_summary[0] : NULL));
$tpl->assign('basket_summary_addit', (isset($basket_summary[1]) ? $basket_summary[1] : NULL));
if (empty($basket_summary)) {
lvredirect('index.php?action=showbasket&lang=' . strtoupper($currentLanguage));
exit;
}
}
if (isset($conf->data['LV_OPTIONS']['LV_BUDGETCOUNTER']) && ($conf->data['LV_OPTIONS']['LV_BUDGETCOUNTER']==1)) {
$oBudget = new BudgetCounter();
$fCurBudgetAmount = $oBudget->getCurrentBudget();
$tpl->assign('budgetamount',$fCurBudgetAmount);
}
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
if ($pg->exists('step')) {
$order_step = $pg->step;
} else {
$order_step = 1;
}
$tpl->assign('action_url', 'index.php');
if (!$pg->exists('error')) {
$_SESSION['out_array'] = array();
}
$baseMetatags .= $language->xml_array['LV_META_TAGS'];
$tpl->assign('LV_METATAG', AddCanonicalTag($baseMetatags, $shop_root_dir, $action, $order_step, '', $currentLanguage));
switch ($order_step) {
case 1 :
if (!isset($_SESSION['order_object'])) {
$order = new Order('', $currentLanguage);
} else {
$order = unserialize($_SESSION['order_object']);
}
if ($_SESSION['Alpha'] != -1) {
$order->load_user_data($_SESSION['Alpha']);
}
if (!isset($_SESSION['out_array']['return_step_on_error'])) {
$_SESSION['out_array']['return_step_on_error'] = 0;
}
if (isset($_POST['step']) && $_POST['step'] == 1) {
if (isset($_POST['country']))
$order->set_country($_POST['country']);
if (isset($_POST['way_of_delivery']))
$order->set_way_of_delivery($_POST['way_of_delivery']);
}
$step_data = $order->get_data_for_step1();
$country = $step_data['country'];
$tpl->assign('step_data', $step_data);
$tpl->assign('country', $country);
$conf_order = new ConfigLoader(array("lvconfig/shipitems.xml", "lvconfig/paymethoditems.xml", "lvconfig/countries.xml"));
if (!isset($conf_order->data['LV_COUNTRIES']['LV_COUNTRY'][0])) {
$conf_order->data['LV_COUNTRIES']['LV_COUNTRY'] = array(0 => $conf_order->data['LV_COUNTRIES']['LV_COUNTRY']);
}
$countries_list = $conf_order->data['LV_COUNTRIES']['LV_COUNTRY'];
$order->set_country_name($countries_list[$country]['LV_NAME']);
$country_id = -1;
foreach ($countries_list as $k => $v) {
if ($v['LV_ID'] == $country) {
$country_id = $k;
if (($v['LV_ID'] != 0) && ($v['LV_EU'] == 1)) {
$intracom = 1;
} else {
$intracom = 0;
}
}
}
$ship_items = array();
$ship_items_temp = array();
if (isset($countries_list[$country_id]['LV_SHIPITEMS']['LV_ITEMNUMBER'])) {
if (count($countries_list[$country_id]['LV_SHIPITEMS']['LV_ITEMNUMBER']) == 1) {
$countries_list[$country_id]['LV_SHIPITEMS']['LV_ITEMNUMBER'] = array(0 => $countries_list[$country_id]['LV_SHIPITEMS']['LV_ITEMNUMBER']);
}
}
if (!isset($conf_order->data['LV_SHIPITEMS']['ITEM']['0'])) {
$conf_order->data['LV_SHIPITEMS']['ITEM'] = array(0 => $conf_order->data['LV_SHIPITEMS']['ITEM']);
}
foreach ($conf_order->data['LV_SHIPITEMS']['ITEM'] as $key => $v) {
if ((!isset($basket->data['shipitems_excluded'])) || ($basket->data['shipitems_excluded'] == NULL) || (!in_array($v['LV_SHIPITEMNUMBER'], $basket->data['shipitems_excluded']))) {
$v["LV_SHIPDESCRIPTION"] = $v["LV_SHIPDESCRIPTION_$p_lang"];
$ship_items[$v['LV_SHIPITEMNUMBER']] = $v;
if (isset($countries_list[$country_id]['LV_SHIPITEMS']['LV_ITEMNUMBER'])) {
if (in_array($v['LV_SHIPITEMNUMBER'], $countries_list[$country_id]['LV_SHIPITEMS']['LV_ITEMNUMBER'])) {
// Check maximum weight
if ((isset($v['LV_MAXWEIGHT']) && ($v['LV_MAXWEIGHT'] > 0) && ($v['LV_MAXWEIGHT'] < $basket->data['additional']['weight_total'])) ||
(isset($v['LV_MINWEIGHT']) && ($v['LV_MINWEIGHT'] > 0) && ($v['LV_MINWEIGHT'] > $basket->data['additional']['weight_total']))) {
//do not add -> max weight for ship item has been reached
} else {
// Check min and max order
if ((isset($v['LV_MINORDER']) && isset($v['LV_MAXORDER'])) &&
((round($v['LV_MINORDER'], 2) > round($basket->data['additional']['basket_total_price_exvat'], 2)) ||
(($v['LV_MAXORDER'] > 0) && (round($v['LV_MAXORDER'], 2) < round($basket->data['additional']['basket_total_price_exvat'], 2))))) {
//do not add -> order total to low or to high
} else {
$ship_items_temp[$v['LV_SHIPITEMNUMBER']] = $v['LV_SHIPDESCRIPTION'];
}
}
}
}
}
}
asort($ship_items_temp);
$countries_list[$country]['LV_SHIPITEMS']['LV_ITEMNUMBER'] = array_keys($ship_items_temp);
unset($ship_items_temp);
$paymethods = array();
$paymethods_temp = array();
$paymethods_temp2 = array();
$paymethods_array = $conf_order->data['LV_PAYMETHODITEMS']['ITEM'];
if (!isset($paymethods_array['0'])) {
$paymethods_array = array(0 => $paymethods_array);
}
if (isset($countries_list[$country_id]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER'])) {
if (count($countries_list[$country_id]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER']) == 1) {
$countries_list[$country_id]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER'] = array(0 => $countries_list[$country_id]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER']);
}
}
foreach ($paymethods_array as $k => $v) {
if ((!isset($basket->data['paymethod_excluded'])) || ($basket->data['paymethod_excluded'] == NULL) || (!in_array($v['LV_PAYMETHODITEMNUMBER'], $basket->data['paymethod_excluded']))) {
if (isset($v['LV_EXCLCUSTOMERS']['LV_SPECIALGROUP']) && (!is_array($v['LV_EXCLCUSTOMERS']['LV_SPECIALGROUP']) || !isset($v['LV_EXCLCUSTOMERS']['LV_SPECIALGROUP'][0]))) {
$v['LV_EXCLCUSTOMERS']['LV_SPECIALGROUP'] = array(0 => $v['LV_EXCLCUSTOMERS']['LV_SPECIALGROUP']);
}
if (isset($paymethods_array[$k]['LV_MAXORDERAMOUNT']) && ($paymethods_array[$k]['LV_MAXORDERAMOUNT'] < $basket->data['additional']['basket_total_price'])) {
} elseif ((($_SESSION['Alpha'] == -1) && isset($v['LV_EXCLCUSTOMERSWITHOUTLOGIN']) && ($v['LV_EXCLCUSTOMERSWITHOUTLOGIN'] == 1)) ||
(($_SESSION['Alpha'] != -1) && in_array($order->userspecialgroup, $v['LV_EXCLCUSTOMERS']['LV_SPECIALGROUP'])) ||
(($_SESSION['Alpha'] != -1) && isset($v['LV_EXCLCUSTOMERSWITHOUTLOGIN']) && ($v['LV_EXCLCUSTOMERSWITHOUTLOGIN'] == 1) && ($order->userspecialgroup == '0'))) {
// do not add
} else {
$paymethods[$v['LV_PAYMETHODITEMNUMBER']] = $v;
if (in_array($v['LV_PAYMETHODITEMNUMBER'], $countries_list[$country]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER'])) {
$paymethods_temp[$v['LV_PAYMETHODITEMNUMBER']] = $v["LV_PAYMETHODDESCRIPTION_$p_lang"];
}
}
}
}
// Check if all paymethoditem are active with selected shipitem
if (isset($conf->data['LV_OPTIONS']['LV_CARTSTEP1_SHIPPINGCHANGE_ENABLED']) && ($conf->data['LV_OPTIONS']['LV_CARTSTEP1_SHIPPINGCHANGE_ENABLED'] == 1)) {
if (isset($step_data['way_of_delivery'])) {
$way_of_delivery = $step_data['way_of_delivery'];
} else {
$way_of_delivery = key($ship_items);
}
if (isset($ship_items[$way_of_delivery]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER'])) {
if (count($ship_items[$way_of_delivery]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER']) == 1) {
$ship_items[$way_of_delivery]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER'] = array(0 => $ship_items[$way_of_delivery]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER']);
}
}
foreach ($ship_items[$way_of_delivery]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER'] as $v) {
if (isset($paymethods_temp[$v])) {
$paymethods_temp2[$v] = $paymethods_temp[$v];
}
}
} else {
$paymethods_temp2 = $paymethods_temp;
}
asort($paymethods_temp2);
$countries_list[$country]['LV_PAYMETHODITEMS']['LV_ITEMNUMBER'] = array_keys($paymethods_temp2);
foreach ($paymethods as $k => $v) {
$paymethods[$k]['LV_PAYMETHODDESCRIPTION'] = $paymethods[$k]["LV_PAYMETHODDESCRIPTION_$p_lang"];
$paymethods[$k]['LV_PAYMETHODINFOFIELD'] = (isset($paymethods[$k]['LV_PAYMETHODINFOFIELDS']["LV_LANGUAGE_$p_lang"]) ? $paymethods[$k]['LV_PAYMETHODINFOFIELDS']["LV_LANGUAGE_$p_lang"] : '');
if (isset($paymethods[$k]['LV_PAYMENT_PSP_TRANSLIST'])) {
/* ideal banken */
if ($paymethods[$k]['LV_PAYMENT_PSP_TRANSLIST']==1) {
include_once('framework/psp_common.class.php');
$paymethods[$k]['LV_PAYMENT_PSP_TRANSLISTAR'] = psp_translist(strtolower($paymethods[$k]['LV_PAYMENT_PSP_TRANSACTION']), $paymethods[$k]['LV_PAYMETHODITEMNUMBER']);
/* sisow giropay banklist */
} elseif ($paymethods[$k]['LV_PAYMENT_PSP_TRANSLIST']==2) {
/* sisow EPS banklist */
} elseif ($paymethods[$k]['LV_PAYMENT_PSP_TRANSLIST']==3) {
}
} else {
$paymethods[$k]['LV_PAYMENT_PSP_TRANSLIST'] = 0;
}
}
unset($paymethods_temp);
unset($paymethods_temp2);
// check if deliverydate is disabled by selected shipitem
if (isset($step_data['way_of_delivery'])) {
$way_of_delivery = $step_data['way_of_delivery'];
} else {
$way_of_delivery = key($ship_items);
}
if ((!isset($conf->data['LV_OPTIONS']['LV_DELIVERYDATE_ENABLED']) || ($conf->data['LV_OPTIONS']['LV_DELIVERYDATE_ENABLED'] == 0)) || (isset($ship_items[$way_of_delivery]['LV_DELIVERYDATE_DISABLED']) && ($ship_items[$way_of_delivery]['LV_DELIVERYDATE_DISABLED'] == 1))) {
$tpl->assign('LV_DELIVERYDATE_ENABLED', 0);
$_SESSION['Deliverydate_enabled'] = 0;
} else {
$_SESSION['Deliverydate_enabled'] = 1;
}
$tpl->assign('LV_SHIPITEMS', $ship_items);
$tpl->assign('LV_PAYMETHODITEMS', $paymethods);
$tpl->assign('countries_list', $countries_list);
$tpl->assign('intracom', $intracom);
if (isset($tpl->tpl_vars['LV_DELIVERYDATE_ENABLED']) && ($tpl->tpl_vars['LV_DELIVERYDATE_ENABLED']->value == 1)) {
//check if logged in and set user deliverydate_unavailabledates
if (isset($_SESSION, $_SESSION['Alpha']) && $_SESSION['Alpha'] != -1) {
$user = new CustomXML('data/users/user_' . $_SESSION['Alpha'] . '.xml');
$user->xml = $user->xml['Logivert'];
if (isset($user->xml['deliverydate_unavailabledates']) && !empty($user->xml['deliverydate_unavailabledates'])) {
$tpl->tpl_vars['LV_DELIVERYDATE_UNAVAILABLEDATES']->value = $user->xml['deliverydate_unavailabledates'];
}
unset($user);
}
if (!isset($tpl->tpl_vars['LV_DELIVERYDATE_FROM'])) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value = 1;
}
if ($tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value < $basket_summary[2]) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value = $basket_summary[2];
}
$startDeliveryDateFrom = $tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value;
$procDaysBeforeDeliv = 0;
if (isset($tpl->tpl_vars['LV_PROCESSINGDATE_UNAVAILABLEDATES']) && ($tpl->tpl_vars['LV_PROCESSINGDATE_UNAVAILABLEDATES']->value!='')) {
$today = date("j-n-Y");
$procDaysBeforeDeliv = 0;
if (isset($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']) && ($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']->value!=0)) {
if ($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']->value <= date('H')) {
$today = date("j-n-Y", strtotime($today.' +1 day'));
$procDaysBeforeDeliv++;
}
}
if ((!isset($tpl->tpl_vars['LV_DELIVERYDATE_MINPROCESSINGDAYS'])) || ($tpl->tpl_vars['LV_DELIVERYDATE_MINPROCESSINGDAYS']->value=='0')) {
// One processingday before delivery is enough
if ($procDaysBeforeDeliv == 0) {
$deliverydatebefore = date("j-n-Y", strtotime($today .' +'.($tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value-1).' day'));
while (!(strpos($tpl->tpl_vars['LV_PROCESSINGDATE_UNAVAILABLEDATES']->value, '"'.$deliverydatebefore.'"') === false)) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value++;
$deliverydatebefore = date("j-n-Y", strtotime($today .' +'.($tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value-1).' day'));
}
}
} else {
/*$i = 0;
$starti = $i;
while ($i < $tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value) {
$thisDay = date("j-n-Y", strtotime($today .' +'.($starti+$procDaysBeforeDeliv).' day'));
$procDaysBeforeDeliv++;
if (strpos($tpl->tpl_vars['LV_PROCESSINGDATE_UNAVAILABLEDATES']->value, '"'.$thisDay.'"') === false) {
$i++;
}
}
if ($startDeliveryDateFrom < $procDaysBeforeDeliv) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value = $procDaysBeforeDeliv;
$deliverydatebefore = date("j-n-Y", strtotime($today .' +'.($tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value).' day'));
While (strpos($tpl->tpl_vars['LV_DELIVERYDATE_UNAVAILABLEDATES']->value, '"'.$deliverydatebefore.'"') !== false) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value++;
$deliverydatebefore = date("j-n-Y", strtotime($today .' +'.($tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value).' day'));
}
}*/
$i = 0;
//$starti = $i;
$startprocDaysBeforeDeliv = $procDaysBeforeDeliv;
while ($i < ($tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value)) {
//while ($i < $tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value) {
//$thisDay = date("j-n-Y", strtotime($today .' +'.($starti+$procDaysBeforeDeliv).' day'));
$thisDay = date("j-n-Y", strtotime($today .' +'.($procDaysBeforeDeliv - $startprocDaysBeforeDeliv).' day'));
//$loctoday = date("j-n-Y");
//$thisDay = date("j-n-Y", strtotime($loctoday .' +'.($starti+$procDaysBeforeDeliv).' day'));
$procDaysBeforeDeliv++;
if (strpos($tpl->tpl_vars['LV_PROCESSINGDATE_UNAVAILABLEDATES']->value, '"'.$thisDay.'"') === false) {
$i++;
}
}
if ($startDeliveryDateFrom < $procDaysBeforeDeliv) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value = $procDaysBeforeDeliv - $startprocDaysBeforeDeliv;
$deliverydatebefore = date("j-n-Y", strtotime($today .' +'.($tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value).' day'));
While (strpos($tpl->tpl_vars['LV_DELIVERYDATE_UNAVAILABLEDATES']->value, '"'.$deliverydatebefore.'"') !== false) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value++;
$deliverydatebefore = date("j-n-Y", strtotime($today .' +'.($tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value).' day'));
}
}
}
}
/*if (($procDaysBeforeDeliv<=$startDeliveryDateFrom) && isset($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']) && ($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']->value!=0)) {
if ($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']->value <= date('H')) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value++;
}
}*/
if (isset($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']) && ($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']->value!=0)) {
if ($tpl->tpl_vars['LV_DELIVERYDATE_FROM_SWITCHTIME']->value <= date('H')) {
$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value++;
}
}
if (isset($step_data['delivery_date'])) {
$delDatAsDatTime = DateTime::createFromFormat('d-m-Y', $step_data['delivery_date']);
$delDateFrom = new DateTime();
$delDateFrom->modify('+'.$tpl->tpl_vars['LV_DELIVERYDATE_FROM']->value.' day');
if ($delDatAsDatTime < $delDateFrom) {
$tpl->tpl_vars['step_data']->value['delivery_date'] = $delDateFrom->format('d-m-Y');
}
}
}
if (isset($_SESSION['out_array']['ERROR']) && $_SESSION['out_array']['ERROR'][0]) {
$errors="";
foreach ($_SESSION['out_array']['ERROR'] as $err) {
if(is_array($err))
{
$langvar = array_shift($err);
// Here, $err only contains the variables to contain in the error message.
$error = vsprintf($language->xml_array[$langvar], $err);
} else {
$error = $language->xml_array[$err];
}
$errors.= diplayError($error);
}
$tpl->assign("error_str",$errors);
}
$_SESSION['order_object']=serialize($order);
$tpl->assign('layout_include','page.cart_step1.html');
lvDisplay($tpl,'layout.html');
break;
case 2:
if (!isset($_SESSION['order_object'])) {
lvredirect('index.php?action=showbasket&lang=' . strtoupper($currentLanguage));
}
$order = unserialize($_SESSION['order_object']);
if ($_SESSION['out_array']['return_step_on_error'] != 2 && isset($_POST['step']) && $_POST['step'] == 2) {
$out = $order->step1($pg->values, $conf->data['logivert']['LV_MEMBER_MODE']);
$_SESSION['out_array'] = $order->get_errors();
}
$order_data = $order->get_data_for_step2();
if (isset($order->paymethod_birthdatedisabled) && ($order->paymethod_birthdatedisabled == 1)) {
$tpl->assign('LV_CARTSTEP2_BIRTHDATE_ENABLED', 0);
}
if ($order_data['paymethod_infofields'] != '') {
$order_data['paymethod_infofield'] = $order_data['paymethod_infofields']["LV_LANGUAGE_$p_lang"];
if ($order_data['paymethod_infofield'] == '') {
unset($order_data['paymethod_infofield']);
}
if (isset($order_data['paymethod_infofield']) && !isset($order_data['paymethod_infofield']['LV_FIELD'][0])) {
$order_data['paymethod_infofield']['LV_FIELD'] = array(0 => $order_data['paymethod_infofield']['LV_FIELD']);
}
}
$tpl->xmlArray2Smarty($order_data);
$_SESSION['order_object'] = serialize($order);
$errors = "";
if ($_SESSION['out_array']['return_step_on_error'] == 1) {
lvredirect('index.php?action=order&step=1&error=1&lang=' . strtoupper($currentLanguage));
} elseif ($_SESSION['out_array']['return_step_on_error'] == 2) {
if ($_SESSION['out_array']['ERROR'][0]) {
foreach ($_SESSION['out_array']['ERROR'] as $err) {
if (is_array($err)) {
$langvar = array_shift($err);
// Here, $err only contains the variables to contain in the error message.
$error = vsprintf($language->xml_array[$langvar], $err);
} elseif (substr($err, 0, 3)!='LV_') {
$error = $err;
} else {
$error = $language->xml_array[$err];
}
$errors .= diplayError($error);
}
}
}
if (isset($pg->values['errorstring']) && ($pg->values['errorstring'] != '')) {
$errors .= diplayError($pg->values['errorstring']);
}
$tpl->assign("error_str", $errors);
if (isset($_SESSION['Deliverydate_enabled']) && ($_SESSION['Deliverydate_enabled'] == 1)) {
$tpl->assign('LV_DELIVERYDATE_ENABLED', 1);
} else {
$tpl->assign('LV_DELIVERYDATE_ENABLED', 0);
}
$tpl->assign('LV_TEXT_GENERALCONDITION', str_replace(array('
', '
', '
', '
', '
'), "
", $language->xml_array['LV_TEXT_GENERALCONDITION']));
$tpl->assign('layout_include', 'page.cart_step2.html');
if (($_SESSION['Alpha'] != -1) && (isset($conf->data['logivert']['LV_MEMBER_INVISIB_INORDER_STEP2'])) && ($conf->data['logivert']['LV_MEMBER_INVISIB_INORDER_STEP2'] == 1)) {
$order_step = 3;
} else {
lvDisplay($tpl, 'layout.html');
break;
}
case 3:
if (!isset($_SESSION['order_object'])) {
lvredirect('index.php?action=showbasket&lang=' . strtoupper($currentLanguage));
}
$order = unserialize($_SESSION['order_object']);
if ($_SESSION['out_array']['return_step_on_error'] != 3 && $pg->exists('step') && $pg->step == 3) {
$out = $order->step2($pg->values, $tpl);
$_SESSION['out_array'] = $order->get_errors();
}
$_SESSION['order_object'] = serialize($order);
$order_data = $order->get_data_for_step3();
if ($_SESSION['out_array']['return_step_on_error'] == 2) {
lvredirect('index.php?action=order&step=2&error=1&lang=' . strtoupper($currentLanguage));
}
$tpl->xmlArray2Smarty($order_data);
if (isset($_SESSION['Deliverydate_enabled']) && ($_SESSION['Deliverydate_enabled'] == 1)) {
$tpl->assign('LV_DELIVERYDATE_ENABLED', 1);
} else {
$tpl->assign('LV_DELIVERYDATE_ENABLED', 0);
}
if($conf->data['LV_OPTIONS']['LV_GA_ECOM_TRACKING_ON'] == "pre_order") {
if (!isset($order_data['ORDER']['ITEM'][0])) {
$order_data['ORDER']['ITEM'] = array(0 => $order_data['ORDER']['ITEM']);
}
$totalcostArts = 0;
foreach ($order_data['ORDER']['ITEM'] as $orderLine) {
$totalcostArts += $orderLine['quantity'] * $orderLine['unit_price_show'];
}
$tpl->assign('order', $order_data['ORDER']['ITEM']);
$tpl->assign('order_id', $order_data['order_id']);
$tpl->assign('total_cost', $order_data['total_price']);
$tpl->assign('ship_price', $order_data['ship_price']);
$tpl->assign('order_costs', $order_data['total_price'] - $totalcostArts);
$tpl->assign('LV_OPTIONS_SITEFOOTERTEXT', $tpl->tpl_vars['LV_OPTIONS_SITEFOOTERTEXT'] . $conf->data['LV_OPTIONS']['LV_ORDERTRACKING']);
}
$tpl->assign('layout_include', 'page.cart_step3.html');
lvDisplay($tpl, 'layout.html');
break;
case 4:
include_once('framework/beforestep4.class.php');
if (!isset($_SESSION['order_object'])) {
lvredirect('index.php?action=showbasket&lang=' . strtoupper($currentLanguage));
}
$order = unserialize($_SESSION['order_object']);
// Extra order data added on final step.
$array = array();
if($pg->exists('comments') && strlen($pg->comments) > 0) {
$remarks = $order->getRemarks();
if(strlen($remarks) > 0) $remarks .= "\n";
$array['remarks'] = $remarks .$pg->comments;
}
if($pg->exists('garantQuantity') && intval($pg->garantQuantity) > 0) {
$array['budget_garant'] = array(
'quantity' => intval($pg->garantQuantity),
'defaultQuantity' => $_SESSION['userDefaults']['bulkmeals']['persons'],
'allowOverride' => (int) $_SESSION['budget_garant']['allow_override'],
'budget' => $_SESSION['budget_garant']['budget'],
'totalBudget' => $_SESSION['budget_garant']['budget'] * intval($pg->garantQuantity)
);
}
$order->loadOrderDataFromArray($array);
$paysystem_form = $order->step3($tpl, $order, $status, $paymentid);
actions_beforePaymentsystemStatusCheck($order);
if (((!is_string($status)) && ($status == 0)) || ((is_string($status)) && ($status == 'redirect'))) {
$data = $order->get_data_for_step4();
$tpl->xmlArray2Smarty($data);
$tpl->assign('form', $paysystem_form);
// Let's flip this case:
// if (isset($conf->data['LV_OPTIONS']['LV_NOMAILFORORDERCONFIRMATION']) && ($conf->data['LV_OPTIONS']['LV_NOMAILFORORDERCONFIRMATION'] == 1)) {
//
//} else {
// Only send mails if:
// - Configuration Flag disabling the mail does not exist or contains a different value than 1, AND
// - We are NOT in OCI mode, or when we are in OCI mode, we are in OCI Order mode.
if((!isset($conf->data['LV_OPTIONS']['LV_NOMAILFORORDERCONFIRMATION']) || ($conf->data['LV_OPTIONS']['LV_NOMAILFORORDERCONFIRMATION'] != 1)) &&
!isset($oci) || (isset($_SESSION['OCI_MODE']) && $_SESSION['OCI_MODE'] == 'order')) {
$barcode = isset($conf->data['LV_OPTIONS']['LV_BARCODE_ORDER']) && ($conf->data['LV_OPTIONS']['LV_BARCODE_ORDER'] == 1);
$tpl->assign('barcode', $barcode);
$mail = new mail();
$mail->setMessage($tpl->fetch("order_confirmation.html"));
$mail->setSubject($language->xml_array['LV_OPTIONS_SITETITLE']);
$customer_name = $tpl->getTemplateVars('first_name') . ' ' . $tpl->getTemplateVars('last_name');
$customeremail = array($tpl->getTemplateVars('email') => $customer_name);
// Mail to Customer
$mail->addAddress('to', $customeremail);
$mail->send();
// Mail to Shop Owner
// Deze worden verstuurd vanuit het Mailadres van de site, met de naam van de klant.
// Replies gaan direct naar de klant.
$ListOfOwnerEmails = explode(",", $conf->data['LV_OPTIONS']['SHOP_OWNER_EMAIL']);
foreach ($ListOfOwnerEmails as $OwnerEmail) {
$shopowneremail = array($OwnerEmail => $language->xml_array['LV_OPTIONS_SITETITLE']);
$mail->clearAllRecipients();
$mail->addAddress('from', $customer_name, true); // True overschrijft de originele instelling.
$mail->addAddress('replyto', $customeremail, true);
$mail->addAddress('to', $shopowneremail);
$mail->addHeader('X-On-Behalf-Of', $customeremail);
$mail->addHeader('On-Behalf-Of', $customeremail);
$mail->send();
}
}
// Mail to Affiliate, but only send it if:
// - Affiliate Mailing has been enabled AND
// - We are NOT in OCI mode or, if we are, we are in OCI Order Mode
if((isset($_SESSION['lv_af']) && isset($conf->data['LV_OPTIONS']['LV_MAILAFFILIATE'])) &&
!isset($oci) || (isset($_SESSION['OCI_MODE']) && $_SESSION['OCI_MODE'] == 'order')) {
include_once('framework/affiliates.class.php');
$aff = new affiliates($conf, $_SESSION['lv_af']);
if ($aff->email != '') {
$mail = new mail();
$mail->setSubject($language->xml_array['LV_OPTIONS_SITETITLE']);
$mail->setMessage($tpl->fetch("order_confirmation_aff.html"));
$mail->addAddress('to', $aff->email);
if (!$mail->send()) {
throw new Exception('Mail to Affiliate failed. ' . $mail->getErrors());
}
}
}
actions_beforeStep4($order);
$tpl->assign('basket_summary_full', $basket_summary);
// Perform Bulkmeal operations if:
// - We are not in OCI mode
// - We are in OCI Order mode
if ((isset($basket_summary[1]['menudates']) && count($basket_summary[1]['menudates']) > 0) &&
!isset($oci) || (isset($_SESSION['OCI_MODE']) && $_SESSION['OCI_MODE'] == 'order')) {
$obj = new Bulkmeal();
foreach ($basket_summary[1]['menudates'] as $menudate) {
$obj->addOrderedDay($menudate, true);
}
$obj->save();
}
// Perform Stock Operations if:
// - We are not in OCI mode
// - We are in OCI Order mode
if (isset($_SESSION['useStock']) && ($_SESSION['useStock'] > 0) &&
!isset($oci) || (isset($_SESSION['OCI_MODE']) && $_SESSION['OCI_MODE'] == 'order')) {
$basket->clear_cart('all', True, True);
} else {
$basket->clear_cart('all', False);
}
unset($order_curr_lang);
if(isset($oci)) {
switch($_SESSION['OCI_MODE']) {
case 'catalog':
$oci->doAction('oci_checkout');
break;
case 'order':
$oci->doAction('oci_finalize_order');
break;
}
$oci->finishOciCall();
}
// If OCI is not set, or not redirecting, finish the Order Process as usual
if ((!is_string($status)) && ($status == 0)) {
$tpl->assign('layout_include', 'page.cart_step4.html');
lvDisplay($tpl, 'layout.html');
} else {
lvredirect($paymentid);
}
} else {
lvredirect('index.php?action=order&step=2&error=1&errorstring=' . urlencode($paymentid) . '&lang=' . strtoupper($currentLanguage));
}
break;
default:
$tpl->assign('layout_include', 'page.cart_step1.html');
lvDisplay($tpl, 'layout.html');
break;
}
break;
case "cancel_order":
if (isset($_SESSION['out_array'])) {
unset($_SESSION['out_array']);
}
if (isset($_SESSION['order_object'])) {
$order = unserialize($_SESSION['order_object']);
if ($order->ordername != '') {
unlink('data/orders/' . $order->ordername);
} unset($_SESSION['order_object'], $order);
}
lvredirect('index.php?action=showbasket&lang=' . strtoupper($currentLanguage));
break;
case "start_with_empty_cart":
$basket = new Basket();
$basket->clear_cart('all', False);
lvredirect('index.php');
break;
case "add_multi_to_cart":
if (CookiesEnabled($tpl)) {
try {
$multi_articles = $pg->article;
} catch (Exception $e) {
echo $e->__toString();
}
$basket = new Basket();
$errors = '';
$valid = 1;
foreach ($multi_articles as $key => $value) {
if ($value['quantity'] > 0) {
$basket->check_before_add_to_cart($value['artid'], $value['quantity'], $value['additional'], $errors, $valid, $language, $currentLanguage, 1);
if ($valid == 1) {
$basket->add_to_cart($value['artid'], $value['quantity'], $currentLanguage, $lvShowPriceMode, 'articles', $value['additional']);
} else {
$_SESSION['errors'] = $errors;
$_SESSION['errorsbackurl'] = $httpreferrer;
lvredirect('index.php?action=errors&lang=' . strtoupper($currentLanguage));
exit;
}
}
}
if ($conf->data['LV_OPTIONS']['LV_SHOWORDERPAGEAFTERINBASKET_ENABLED']) {
lvredirect('index.php?action=showbasket&lang=' . strtoupper($currentLanguage));
} else {
lvredirect(lvURLAndVariable($httpreferrer, 'justinbasket=true'));
}
} else {
lvredirect('index.php?action=home&lang=' . strtoupper($currentLanguage));
exit;
}
break;
case "add_to_cart_bulkorder":
if (CookiesEnabled($tpl)) {
if ($pg->exists('artid') && $pg->exists('quantity')) {
$basket = new Basket();
$errors = '';
$valid = 1;
foreach ($pg->values as $k => $v) {
$pg->values[$k] = htmlspecialchars_decode($v);
}
$basket->check_before_add_to_cart($pg->artid, $pg->quantity, $pg->values, $errors, $valid, $language, $currentLanguage);
if ($valid == 1) {
$basket->add_to_cart($pg->artid, $pg->quantity, $currentLanguage, $lvShowPriceMode, 'articles', $pg->values);
echo "OK";
} else {
echo "NOT OK";
}
}
}
exit();
break;
case "add_to_cart":
if (CookiesEnabled($tpl)) {
if ($pg->exists('artid') && $pg->exists('quantity')) {
$basket = new Basket();
$errors = '';
$valid = 1;
foreach ($pg->values as $k => $v) {
$pg->values[$k] = htmlspecialchars_decode($v);
}
$basket->check_before_add_to_cart($pg->artid, $pg->quantity, $pg->values, $errors, $valid, $language, $currentLanguage);
if ($valid == 1) {
$basket->add_to_cart($pg->artid, $pg->quantity, $currentLanguage, $lvShowPriceMode, 'articles', $pg->values);
} else {
$_SESSION['errors'] = $errors;
$_SESSION['errorsbackurl'] = $httpreferrer;
lvredirect('index.php?action=errors&lang=' . strtoupper($currentLanguage));
}
if ($conf->data['LV_OPTIONS']['LV_SHOWORDERPAGEAFTERINBASKET_ENABLED']) {
lvredirect('index.php?action=showbasket&lang=' . strtoupper($currentLanguage));
} else {
lvredirect(lvURLAndVariable($httpreferrer, 'justinbasket=true'));
}
exit;
} else {
if ($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") {
lvredirect($conf->data['LV_OPTIONS']['LV_HOMEPAGE']);
} else {
lvredirect('index.php?action=home&lang=' . strtoupper($currentLanguage));
}
}
}
break;
case "add_to_cart_gift":
if (CookiesEnabled($tpl)) {
if ($pg->exists('aid')) {
$errors = '';
$valid = 1;
if (!lvarticlefile_exists($conf->data['LV_OPTIONS']['LV_CNST_PATH_DATAARTS_DOT'] . '/article_' . $pg->aid . '.xml', $pg->aid)) {
exit;
}
$basket = new Basket();
if (count($basket->data['gifts']) < $basket->gifts_quantity) {
$res = $basket->get_summary($lvShowPriceMode, $currentLanguage);
if (empty($res[1]['gift_articles']) || !in_array($pg->aid, $res[1]['gifts_ids'])) {
$valid = 0;
$errors .= diplayError('no such gift found');
}
} else {
$valid = 0;
$errors .= diplayError('you cannot add more gifts');
}
if ($valid == 1) {
$basket->add_to_cart($pg->aid, 1, $currentLanguage, $lvShowPriceMode, 'gifts');
} else {
$tpl->assign('errors', $errors);
$tpl->assign('layout_include', 'page.errors.html');
lvDisplay($tpl, 'layout.html');
exit;
}
}
lvredirect($httpreferrer);
}
break;
case "remove_from_cart":
if ($pg->exists('cartkey')) {
$basket = new Basket();
$basket->removeart_from_cart_bycartid($pg->cartkey);
}
lvredirect($httpreferrer);
break;
case "remove_from_cart_gift":
if ($pg->exists('artid')) {
$basket = new Basket();
if ($basket->find_in_cart($pg->artid, 'gifts', Null, $currentLanguage) != -1) {
$basket->remove_from_cart($pg->artid, 'all', 'gifts', Null, $currentLanguage);
}
}
lvredirect($httpreferrer);
break;
case "member":
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
addCountriesListToTemplate($tpl);
$marea = new member($tpl, $currentLanguage);
$marea->Display();
break;
case "mupdate":
addCountriesListToTemplate($tpl);
$marea = new member($tpl, $currentLanguage);
$marea->Update();
break;
case "login":
if (CookiesEnabled($tpl)) {
if (!$validator->ProceedAuth($errorType)) {
$url = ($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") ? $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] : ('index.php?action=home&lang=' . strtoupper($currentLanguage));
lvredirect($url . (strpos($url, '?') ? '&' : '?') . 'passerror=' . $errorType . '&lang=' . strtoupper($currentLanguage));
} else {
if ($oldurl != '') {
$basket = new Basket();
$basket->load_data_savecart();
lvredirect($oldurl);
} else {
if ($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") {
lvredirect($conf->data['LV_OPTIONS']['LV_HOMEPAGE']);
} else {
lvredirect('index.php?action=home&lang=' . strtoupper($currentLanguage));
}
}
}
}
break;
case "logout":
$validator->Logout();
$basket = new Basket();
$basket->clear_cart('all', False);
if ($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") {
lvredirect($conf->data['LV_OPTIONS']['LV_HOMEPAGE']);
} else {
lvredirect('index.php?action=home&lang=' . strtoupper($currentLanguage));
}
break;
case "register":
if (CookiesEnabled($tpl)) {
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
addCountriesListToTemplate($tpl);
$marea = new member($tpl, $currentLanguage);
if ($marea->Register($currentLanguage)) {
$validator = new Login($tpl);
if (($pg->exists('form_login')) && is_string($pg->form_login) && ($pg->form_login != '')) {
$validator->Verify($pg->form_login, $pg->form_password);
} else {
$validator->Verify($pg->form_email, $pg->form_password);
}
if ($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") {
lvredirect($conf->data['LV_OPTIONS']['LV_HOMEPAGE']);
} else {
if ($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") {
lvredirect($conf->data['LV_OPTIONS']['LV_HOMEPAGE']);
} else {
lvredirect('index.php?action=home&lang=' . strtoupper($currentLanguage));
}
}
}
}
break;
case "add_to_wish_list":
if (CookiesEnabled($tpl)) {
if ($_SESSION['Alpha'] == -1) {
lvredirect('index.php?action=register&lang=' . strtoupper($currentLanguage));
}
$wish = new WishList();
try {
$wish->add2list($pg->artid, $language);
$tpl->assign('artid', $pg->artid);
} catch (Exception $e) {
}
lvredirect($httpreferrer);
}
break;
case "remove_from_wish_list":
if ($_SESSION['Alpha'] == -1) {
lvredirect('index.php?action=register&lang=' . strtoupper($currentLanguage));
}
$wish = new WishList();
try {
$wish->delete($pg->artid);
$tpl->assign('artid', $pg->artid);
} catch (Exception $e) {
}
lvredirect($httpreferrer);
break;
case "remove_from_pwish_list":
if ($_SESSION['Alpha'] == -1) {
lvredirect('index.php?action=register&lang=' . strtoupper($currentLanguage));
}
try {
$wish = new Pwishlist($pg->list_id, "public");
$wish->delete($pg->artid);
$tpl->assign('artid', $pg->artid);
} catch (Exception $e) {
}
lvredirect($httpreferrer);
break;
case "add_to_public_wishlist":
if (CookiesEnabled($tpl)) {
if ($_SESSION['Alpha'] == -1) {
lvredirect('index.php?action=register&lang=' . strtoupper($currentLanguage));
}
try {
$listid = $pg->listid;
$artid = $pg->artid;
} catch (Exception $e) {
}
if (isset($listid) & isset($artid)) {
try {
$wish = new Pwishlist($listid, "public");
$wish->add2list($artid, $language);
} catch (Exception $e) {
} lvredirect($httpreferrer);
}
}
break;
case "private_wishlist":
try {
if ($pg->send_email) {
$wish = new WishList();
$wish->sendByMail($pg->allboxes, $tpl, $pg->email, $currentLanguage);
}
} catch (Exception $e) {
}
try {
if ($pg->into_cart) {
$wish = new WishList();
$wish->addtocart($pg->allboxes, $tpl, $language, $lvShowPriceMode);
}
} catch (Exception $e) {
}
try {
if ($pg->into_public_whish_list) {
$wishes = split(",", $pg->allboxes);
unset($wishes[0]);
try {
$listid = $pg->listid;
$wish = new Pwishlist($listid, "public");
foreach ($wishes as $key => $value) {
if (is_numeric($value)) {
$wish->add2list($value, $language);
}
}
} catch (Exception $e) {
}
lvredirect($httpreferrer);
}
} catch (Exception $e) {
}
break;
case "wish_send_invitation":
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
if ($pg->exists('emails')) {
try {
$emails = $pg->emails;
} catch (Exception $e) {
unset($emails);
}
} else {
unset($emails);
}
try {
$listid = $pg->listid;
$tpl->assign("listid", $listid);
} catch (Exception $e) {
}
if (!$emails) {
$refferer = $httpreferrer;
if (!$refferer) {
$refferer = "http://" . $_SERVER['HTTP_HOST'];
}
$tpl->assign('backurl', $refferer);
$tpl->assign('layout_include', 'page.invitation.html');
lvDisplay($tpl, 'layout.html');
exit;
} else {
$wish = new Pwishlist($listid, "public");
$wish->SendInvitation($emails, $tpl, $currentLanguage);
exit;
}
break;
case "public_wishlist":
try {
if ($pg->send_email) {
$wish = new Pwishlist($pg->list_id, $tpl);
$wish->sendByMail($pg->allboxes, $tpl, $pg->email, $currentLanguage);
}
} catch (Exception $e) {
}
try {
if ($pg->into_cart) {
$wish = new Pwishlist($pg->list_id, $tpl);
$wish->addtocart($pg->allboxes, $tpl, $language, $lvShowPriceMode);
}
} catch (Exception $e) {
}
break;
case "ff_tab":
break;
case "recover":
$data = new POST();
$recovery_lang = $currentLanguage;
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
if ($data->exists('login')) {
$locLogin = $data->login;
} elseif ($data->exists('email')) {
$locLogin = $data->email;
} else {
$locLogin = '';
}
if (($locLogin != '') && ($data->exists('email'))) {
$users = new Users();
if ($users->loginExists($locLogin)) {
$userdata = $users->GetUserData($locLogin);
if (strtolower($userdata['email']) == strtolower($data->email)) {
$password = substr(sha1(rand()), 0, 10);
$tpl->assign('sent', 1);
$userdata['password'] = $password;
$userdata['sitetitle'] = $language->xml_array['LV_OPTIONS_SITETITLE'];
$users->Update($locLogin, $userdata);
$mail = new mail();
$msg = file_get_contents("./lvconfig/recovery_letter_$recovery_lang");
foreach ($userdata as $key => $value) {
$msg = str_replace("[$key]", $value, $msg);
}
$mail->setMessage($msg);
$mail->setSubject($language->xml_array['LV_OPTIONS_SITETITLE'] . ' - ' . $language->xml_array['LV_FIELD_PASSWORD']);
$mail->addAddress('to', $userdata['email']);
$mail->send();
$users->Update($locLogin, $userdata);
} else {
$tpl->assign('error', $tpl->getTemplateVars('LV_INCORRECT_EMAIL'));
}
}
}
$tpl->assign('layout_include', 'page.recovery.html');
lvDisplay($tpl, 'layout.html');
break;
case "advanced_search":
if (file_exists("lvconfig/manufacturers.xml")) {
$manufacturers = new CustomXML("lvconfig/manufacturers.xml");
$manufacturers_array = $manufacturers->xml['LV_MANUFACTURERS']['LV_MANUFACTURER'];
$tpl->assign("manufacturers", $manufacturers_array);
}
if (file_exists("lvconfig/groups.xml")) {
$sys_groups = new CustomXML("lvconfig/groups.xml");
$sys_groups_array = $sys_groups->xml['LV_GROUPS']['ITEM'];
}
$tpl->assign('num',sizeof($sys_groups->xml['LV_GROUPS']['ITEM'])-1);
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
$tpl->assign('layout_include','page.search.advanced.html');
lvDisplay($tpl,'layout.html');
break;
case "advanced_search_results":
$advanced=getAdvancedForSearchResults($pg,$group);
$search=new Search($currentLanguage);
$res=$search->find($pg->keywords, $advanced);
$tpl->assign('search_res',$res);
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
$tpl->assign('sortart',$_SESSION['sortart']);
$tpl->assign('layout_include','page.search.html');
lvDisplay($tpl,'layout.html');
break;
case "search":
if (!$pg->exists('srchval') || $pg->srchval == '') {
$pg->srchval = '<--NoSearchValues-->';
}
$search = new Search($currentLanguage);
$search_string = mb_strtolower($pg->srchval);
lvRegisterSearch(html_entity_decode($pg->srchval, NULL, 'UTF-8'), $currentLanguage, '0');
$res = $search->find($search_string);
$tpl->assign('search_res', $res);
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
$tpl->assign('sortart', $_SESSION['sortart']);
$tpl->assign('layout_include', 'page.search.html');
$oWishlist = new WishlistMulti();
$tpl->assign('aWishlists', $oWishlist->getWishlists());
$tpl->assign('oMultiWishlist', $oWishlist);
lvDisplay($tpl, 'layout.html');
break;
case "errors":
if (isset($_SESSION['errors']) && $_SESSION['errors']!='') {
addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
$tpl->assign('errors',$_SESSION['errors']);
$tpl->assign('backurl',(isset($_SESSION['errorsbackurl'])?$_SESSION['errorsbackurl']:$httpreferrer));
$tpl->assign('layout_include','page.errors.html');
lvDisplay($tpl,'layout.html');
} else {
if($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") {
lvredirect($conf->data['LV_OPTIONS']['LV_HOMEPAGE']);
} else {
lvredirect('index.php?action=home&lang='.strtoupper($currentLanguage));
}
}
break;
case "formmail":
$formm = new FormM();
$formmAccept = $formm->acceptCaptchaForm($conf, $tpl);
if ($formmAccept == "1") {
$formm->sendFormmail($conf, $pg->lv_extra);
$_SESSION['formvalues'] = null;
$_SESSION['formsent'] = "1";
$_SESSION['errors'] = "";
} else {
$_SESSION['formvalues'] = $formm->collectFormvalues();
$_SESSION['formsent'] = "0";
$_SESSION['errors'] = $formmAccept;
}
unset($formm);
lvredirect('index.php?action=' . $pg->lv_action . '&extra=' . $pg->lv_extra . '&lang=' . $conf->data['LV_OPTIONS']['LV_MAIN_LANGUAGE']);
break;
case "writeareview":
$art = new Article($pg->aid);
$article = $art->data;
$curr_lang = 'lang_' . $currentLanguage;
$article['descriptionandmeasure'] = $article['descriptionandmeasure'][$curr_lang];
if (isset($article['specification'])) {
$article['specification'] = $article['specification'][$curr_lang];
}
$tpl->assign('formvalues', $_SESSION['formvalues']);
$tpl->assign('formsent', $_SESSION['formsent']);
$tpl->assign('errors', $_SESSION['errors']);
$_SESSION['formvalues'] = null;
$_SESSION['formsent'] = "";
$_SESSION['errors'] = "";
$tpl->assign('article', $article);
$tpl->assign('layout_include', 'page.writeareview.html');
lvDisplay($tpl, 'layout.html');
break;
case "writeareview_post":
$formm = new FormM();
$formmAccept = $formm->acceptCaptchaForm($conf, $tpl);
if ($formmAccept == "1") {
$review = new Review();
$review->postReview($pg->aid, $pg->rate, $pg->title, $pg->text, $pg->name, $pg->email, $currentLanguage);
unset($review);
$_SESSION['formvalues'] = null;
$_SESSION['errors'] = "";
$_SESSION['formsent'] = "1";
} else {
$_SESSION['formvalues'] = $formm->collectFormvalues();
$_SESSION['formsent'] = "0";
$_SESSION['errors'] = $formmAccept;
}
unset($formm);
lvredirect('index.php?action=writeareview&lang=' . $conf->data['LV_OPTIONS']['LV_MAIN_LANGUAGE'] . '&aid=' . $pg->aid);
break;
case "sort_art":
$_SESSION['sortart'] = $pg->sorting;
if (($_SESSION['sortart'] == '') || ($_SESSION['sortart'] == 0)) {
$_SESSION['sortart'] = "1";
}
lvredirect($httpreferrer);
break;
case "artldisplay":
$_SESSION['artldisplay'] = $pg->display;
if ($_SESSION['artldisplay'] == '') {
$_SESSION['artldisplay'] = "0";
}
lvredirect($httpreferrer);
break;
case "psp_paymentStatus":
if (($pg->exists('pspitemnr')) && ($pg->exists('orderid'))) {
if(!$pg->exists('transactioncode')) {
$pg->transactioncode = 0;
}
if(!$pg->exists('transactionid')) {
$pg->transactionid = 0;
}
include_once('framework/psp_common.class.php');
psp_paymentStatus($pg->pspitemnr, $pg->transactionid, $pg->transactioncode, $pg->orderid);
}
break;
case "oci_catalog":
case "oci_order":
// Only continue OCI Login if all required parameters have been set in the URL
if ($pg->exists('module')) {
$ociData = array(
'login' => $pg->exists('login') ? $pg->login : '',
'password' => $pg->exists('password') ? $pg->password : '',
'return' => $pg->exists('HOOK_URL') ? urldecode($pg->HOOK_URL) : '',
'module' => $pg->module,
'target' => $pg->exists('returntarget') ? $pg->returntarget : ''
);
$oci = new Oci($ociData);
$ociLog->append('Instantiated OCI class');
$ociLog->append("Module: {$oci->getModule()}");
if($ociData['login'] != "" && $ociData['password'] != "") {
$ociLog->append('Checking Credentials');
try {
// Only perform the OCI Call if the credentials are right, otherwise drop back to Homepage.
if (!$validator->Verify($pg->login, $pg->password)) {
$ociLog->append("Invalid login");
throw new Exception($errorType);
}
$ociLog->append('Clearing basket');
$basket = new Basket();
} catch (Exception $ex) {
$urlAdd = "passerror={$ex->getMessage()}";
}
}
$ociLog->append('Do OCI Action: '. $action);
$response = $oci->doAction($action);
$ociLog->append($oci);
$oci->finishOciCall($urlAdd);
// Only break when in OCI mode / OCI parameters have been called.
break;
}
// If one of the required OCI Parameters is missing, fall through to the Default Homepage step.
default:
if ($conf->data['LV_OPTIONS']['LV_HOMEPAGE'] && $conf->data['LV_OPTIONS']['LV_HOMEPAGE'] != "") {
lvredirect($conf->data['LV_OPTIONS']['LV_HOMEPAGE']);
} else {
if ($conf->data['LV_OPTIONS']['LV_LANGUAGE_SELECTION_PAGE']) {
lvDisplay($tpl, 'index.html');
} else {
lvredirect('index.php?action=home&lang=' . $conf->data['LV_OPTIONS']['LV_MAIN_LANGUAGE']);
}
}
break;
}
}
?>