<?php
require("inc/defaults.php"); require("inc/func.utils.php"); memspeed_debug('init'); $shop = new ineShop; if($defaults['legacy_redirects']) include($defaults['legacy_redirects']); $lt = &$_GET['lt']; $dph = &$_GET['dph']; $lang = &$_GET['lang']; if(($REQUEST_METHOD == 'POST' && isset($_POST['username']) && isset($_POST['pwd'])) || isset($_GET['logout'])) { if($REQUEST_METHOD == 'POST') { $username = &$_POST['username']; $password = &$_POST['pwd']; $redir = &$_POST['redir']; $last_uid = $UserData['uid'] ?? 0; } else { $username = 'unregistered'; $password = ''; $shop->dropBasket(false); $shop->wishlist->drop(); $shop->compare->drop(); unset($UserData['order']); $shop->user->unsetPermanentSession(); $shop->user->logUserOperation('logout'); $last_uid = 0; } if(!$shop->InitUser($username, $password)) { debug("Cannot init user", 2); } if(isset($redir)) { $redir = preg_replace('/([&\?])err=[^&]*&?/', '\\1', $redir); $redir = rtrim($redir, '&'); $redir = preg_replace('/\/\//', '/', $redir); } if($REQUEST_METHOD == 'POST' && strtolower($username) !== strtolower($shop->user->user_login)) { $error = 2; if(empty($username) || $username == '@') $error = 3; else sleep(1); $shop->user->logUserOperation('login_failed', [ 'username' => $username ]); ineShop::checkAndAdd2ipBlacklist(); if(XMLHTTPREQUEST) dieWithHttpStatus(json_encode([ 'success' => false, 'error' => $error === 2 ? _('Špatný e-mail nebo heslo.') : _('Je nutné vyplnit e-mail a heslo') ])); if(isset($redir)) Header("Location: ".$redir.(preg_match("/\?/",$redir)?"&":"?")."err=".$error); else Header("Location: ./?err=".$error); } else { $shop->setPermanentSession(); if($shop->user->user_id !== $last_uid) { $shop->loadUserShoppingData(); } $shop->recalculateBasket(); if(XMLHTTPREQUEST) dieWithHttpStatus(json_encode([ 'success' => true, 'redirect' => $redir ?? './' ])); Header("Location: " . ($redir ?? './')); } exit(); } if(isset($_COOKIE['usr'])) Setcookie('usr', '', time()-86400*10, '/'); if(isset($lt) || isset($lang)) { if(isset($lt) && in_array($lt, [ 'preview', 'table', 'rows' ])) $UserData['list_type'] = $lt; if(isset($lang)) { $UserData['lang'] = $lang; $shop->InitUser(); $shop->recalculateBasket(); } if(isset($HTTP_REFERER) && $HTTP_REFERER != '' && preg_match('/' . $HTTP_HOST . '/i', $HTTP_REFERER) && !isset($_GET['page_live_editor'])) { Header("Location: ".$HTTP_REFERER); exit(); } if(isset($UserData["redir"]) && $UserData["redir"]!="" && !isset($_GET['page_live_editor'])) { Header("Location: ".$UserData["redir"]); unset($UserData["redir"]); exit(); } } if(isset($_GET['TEST_MODE'])) { Setcookie('test-mode-' . ESHOP_PATH_HASH, $_GET['TEST_MODE'], [ 'expires' => ( $_GET['TEST_MODE'] ? time()+86400 : time()-86400*10 ), 'path' => '/', 'samesite' => 'None', 'secure' => true, 'httponly' => true ]); Header("Location: " . $urlprefix); exit(); } if(isset($_GET['AB_test'])) { Setcookie(AB_test, $_GET['AB_test'], [ 'expires' => time() + (30 * 86400), 'path' => '/', 'samesite' => 'None', 'secure' => true, 'httponly' => false ]); Header("Location: " . $urlprefix); exit(); } if(!$shop->InitUser()) { debug("Cannot init user", 2); exit(); } include_once("inc/pages/external_login.php"); $shop->dbSessionLanguageSwitch(); $shop->sharedLoginAuthentication(); $shop->checkAndReplaceOldBasket(); if(!IS_ROBOT && ineShop::checkDefaults('seznam_be_redirect') && !empty($_SERVER['HTTP_USER_AGENT'])) { $beredir = new SznBeRedirect($_SERVER, $_GET, $_COOKIE); if($beredir->is_redirect_required()) { if($beredir->do_redirect()) { exit(); } } } if($ret = $shop->checkRewriteTable()) (include $ret) && exit(); ineShop_Order_Helper::getInstance()->loadCustomizedOrderDeliveryConfiguration(); { $sort = &$_GET['sort']; $pg = &$_GET['pg']; $skladem = &$_GET['skladem']; $dostupne = &$_GET['dostupne']; $cat = &$_GET['cat']; $all_sortiment = false; if($cat === '') $all_sortiment = true; $cat2 = &$_GET['cat2']; $ucat = &$_GET['ucat']; $pfilter = &$_GET['p']; $filter = &$_GET['q']; $promo = &$_GET['promo']; $item_code = &$_GET['itcd']; $outfit_code = &$_GET['outfit_code']; $outfit_category = &$_GET['outfit_category']; $news_id = &$_GET['news_id']; $blog_dir = &$_GET['blog_dir']; $blog_id = &$_GET['blog_id']; $blog_author_id = &$_GET['blog_author_id']; $tag = &$_GET['tag']; $json = &$_GET['json']; $term = &$_GET['term']; $branch_key = &$_GET['branch_key']; $branch_state = &$_GET['branch_state']; $branch_region = &$_GET['branch_region']; $branch_city = &$_GET['branch_city']; $branch_seller = &$_GET['branch_seller']; $template_id = &$_GET['t']; $newsletter_id = &$_GET['newsletter_id']; if(isset($pg) && (int)$pg < 0) $pg = 0; if(!isset($pg)) $pg = $defaults['paging'] === false ? -1 : 0; if(ineShop::checkDefaults('forbidden_no_paging') && $pg === -1) $pg = 0; if(!isset($skladem)) $skladem = $defaults['skladem']; if(!empty($pg) && !is_numeric($pg)) { $pg = 0; } if(!empty($blog_author_id) && !is_numeric($blog_author_id)) { $blog_author_id = 0; } if(!empty($blog_id) && !is_numeric($blog_id)) { $blog_id = 0; } if(!empty($template_id) && !is_numeric($template_id)) { $template_id = 0; } if(!empty($newsletter_id) && !is_numeric($newsletter_id)) { $newsletter_id = 0; } if(!empty($_COOKIE['dostupne'])) { unset($dostupne); $dostupne = $_COOKIE['dostupne']; } if(!isset($defaults['storage_filter'][$dostupne])) $dostupne = null; $color_filter = &$_GET["clr"]; $size_filter = &$_GET["sz"]; $cost_filter = []; $cost_filter['min'] = &$_GET["cst_min"]; $cost_filter['max'] = &$_GET["cst_max"]; if(isset($color_filter) && !is_array($color_filter)) $color_filter = array($color_filter); if(isset($size_filter) && !is_array($size_filter)) $size_filter = array($size_filter); if(ineShop::checkDefaults('mod_rewrite') && ineShop::checkDefaults('seo_filters')) { $redirectSeoUrl = empty($json); if(isset($_GET['p']) || isset($_GET['clr']) || isset($_GET['sz']) || isset($_GET['cst_min']) || isset($_GET['cst_max']) || isset($_GET['ucat']) || isset($_GET['dostupne'])) $REQUEST_URI = $shop->replaceParametersInSeoUrl($_GET, $REQUEST_URI, $redirectSeoUrl); $_redir_url = $shop->checkSeoFiltersUrl($REQUEST_URI, $redirectSeoUrl); if(!$redirectSeoUrl) exitWithJsonResponse(['redirect' => $_redir_url ?? $REQUEST_URI]); } $shop->readCategories(); if(($_parsed_url = $shop->parseRewriteUrl()) && is_array($_parsed_url)) foreach($_parsed_url ?? [] as $k=>$v) { addslashes_extended($v); if($k == 'pfilter') { foreach($v ?? [] as $k2=>$v2) ${$k}[$k2] = $v2; } else ${$k} = $v; } if(isset($templates_design['item_list_sort_config'][$sort])) $sort = $templates_design['item_list_sort_config'][$sort]; if(!$sort && $promo && !empty($defaults['sort_by_promo'][$promo]) && isset($shop->items_sortable[trim($defaults['sort_by_promo'][$promo], "-")]) ) { $sort = $defaults['sort_by_promo'][$promo]; } if(!$sort && $defaults['sort'] && isset($shop->items_sortable[trim($defaults['sort'], "-")])) { $sort = $defaults['sort']; if($defaults['default_sort_by_priority']) $sort = '-priority,' . $sort; } if(!$sort) $sort = "name"; $sort_layout_selected = array_search($sort, $templates_design['item_list_sort_config'] ?? []) ?: array_key_first($templates_design['item_list_sort_array'] ?? []); if(!isset($cat)) $cat = []; elseif(!is_array($cat)) $cat = [ 0 => $cat ]; if(!isset($cat2)) $cat2 = []; elseif(!is_array($cat2)) $cat2 = [ 0 => $cat2 ]; if(!isset($ucat)) $ucat = []; elseif(!is_array($ucat)) $ucat = [ 0 => $ucat ]; if($pfilter) { if(!is_array($pfilter)) { $__pfilter = is_array($pfilter); $pfilter = array($__pfilter); } foreach($pfilter ?? [] as $k=>$v) if(!is_array($v)) $pfilter[$k] = explode('|', $pfilter[$k]); } if(isset($_GET['_get_params_for_p'])) { $_goto = $_GET['_get_params_for_p']; if(sizeof($pfilter ?? [])) foreach($pfilter ?? [] as $k=>$v) { foreach($v ?? [] as $k2=>$v2) $v[$k2] = urlencode($v2); $_goto .= 'p[' . $k . ']=' . join('|', $v) . '&'; } Header("Location: ?" . rtrim($_goto, '&')); exit(); } if(isset($_GET['_get_params_for_ucat'])) { $_goto = $_GET['_get_params_for_ucat']; if(sizeof($ucat ?? [])) foreach($ucat ?? [] as $k=>$v) { $_goto .= 'ucat[]=' . $v . '&'; } Header("Location: ?" . rtrim($_goto, '&')); exit(); } if(!isset($defaults['item_promo_signs'][$shop->user_lang][$promo])) $promo = false; if($json) { include("inc/pages/json.php"); exit(); } if($shop->subweb && $shop->subweb_filter) { foreach($shop->categories ?? [] as $k=>$v) if($v['url'] == $shop->subweb_filter && $v['group'] == $defaults['menu_category_type2']) { $shop->subweb_filter_cat2 = $k; break; } if($shop->subweb_filter_cat2) { $cat2 = array($shop->subweb_filter_cat2); $_categories = $shop->readFilterCategories($cat2, null, 'menu_category_type'); foreach($_categories ?? [] as $v) { foreach($shop->categories[$v]['path'] ?? [] as $v2) if($v2) $_categories[] = $v2; } $_categories = array_unique($_categories); foreach($shop->categories ?? [] as $k=>$v) if($k !== $shop->subweb_filter_cat2 && !in_array($k, $_categories)) unset($shop->categories[$k]); } } foreach($cat ?? [] as $k=>$v) if(!isset($shop->categories[$v])) unset($cat[$k]); foreach($cat ?? [] as $k=>$v) if(!$v) unset($cat[$k]); ineShop_System::logCategoryStats($cat); if($item_code) { $item = $shop->readItems($item_code); if(!$item && strpos($item_code, ':')) { list($_item_code) = explode(':', $item_code); $item = $shop->readItems($_item_code); if($item) { Header("Location: " . $item['item_url']); exit(); } } if(!$item && ineShop::checkDefaults('eternal_archive')) { $item = $shop->readArchiveItem($item_code); if($item) $shop->archive = true; } if(!$item && ineShop::checkDefaults('redirect_item_404_to_category') && !IS_ROBOT) { $UserData['errors'][] = _("zboží nebylo nalezeno"); if(empty($cat)) { if(ineShop::checkDefaults('mod_rewrite') && preg_match("/([^:]+)(" . $defaults['item_code_url_divider'] . "|::)([^:\.\/]+(:[0-9a-z_-]+)?)" . (ineShop::checkDefaults('seo_without_html_suffix') ? "" : "\.html") . "$/i", basename($REQUEST_URI), $regs)) { $_redir_url = strtr($regs[1], '-', '+'); $_redir_url = $defaults['seo_search_url'] ? 'hledani/' . $_redir_url . '/' : '?q=' . $_redir_url; Header("Location: " . $urlprefix . $_redir_url, true, REJNOKOBUV ? 301 : 302); exit(); } } Header("Location: ./"); exit(); } if(empty($cat) && isset($item['item_categories']) && !empty($item['item_categories'])) { $cat = []; foreach($item['item_categories'] ?? [] as $v) if(isset($shop->categories[$v]) && $shop->categories[$v]['group'] == $defaults['menu_category_type']) $cat[] = $v; } $related = $shop->getRelated($item_code, $cat, null, $_GET['related_size'] ?? null); if(!empty($_GET['related_size'] ?? null) && isset($_GET['only_related']) && !empty($related)) { $recommended = []; } $recommended ??= $shop->getRecommended($item_code, item_data: $item); if($shop->archive) $related_archive = $shop->getRelatedForArchive($item_code); if($item['item_name']) $TITLE = $item['item_name']; $shop->loadTemplateData(); $shop->createWoLinks(); $shop->createCatLinks($urlprefix); $shop->createHeaderCodes(); if(!$item) { $shop->page_type = 'item_not_found'; $area_content = $shop->readPageTextareaContent([ '404', '404_item' ]); if(isset($area_content['404_item']["content"])) $TPL['404_content'] = $area_content['404_item']["content"]; else if(isset($area_content['404']["content"])) $TPL['404_content'] = $area_content['404']["content"]; else $TPL['404_content'] = _("zboží nebylo nalezeno"); include("inc/pages/404.php"); exit(); } else { $shop->page_type = 'item_detail'; $related_location = 'itemdetail'; include("inc/pages/related.php"); include("inc/pages/itemdetail.php"); $shop->user->logUserOperation('page_item', array('item_code' => $item_code, 'item_name' => $item['item_name'])); } } else if(isset($page) && $page) { if($page === 'news') { if($news_id) { $news_content = $shop->readTextGroupsContent($news_id, 'news'); $_META_DESCRIPTION = $news_content[$news_id]["description"] ?? ''; $_META_KEYWORDS = $news_content[$news_id]["keywords"] ?? ''; } if(!empty($news_content)) $TITLE = _('Aktuality') . ' | ' . $news_content[$news_id]['title']; else { $TITLE = _('Aktuality'); $news_content = $shop->readTextGroupsContent(false, 'news', 100); } } else if($page === 'gift_vouchers') { $TITLE = _("Dárkové poukazy"); } else if($page === 'blog') { $blogs_instance = ineShop\Base\Blogs::getInstance(); $blog_dirs = $blogs_instance->getBlogDirs($shop->user_lang); if($blog_id) { $blog_preview = ineShop\Base\Blogs::checkPreviewHash($blog_id, $_GET['preview'] ?? null); if($blog_preview) { Header('X-Robots-Tag: noindex, nofollow'); Header('Cache-Control: private, no-store, max-age=0'); } $blog_content = $blogs_instance->getBlogContentById($blog_id, $blog_preview); $blog_count = sizeof($blog_content); if($blog_count === 0) { $blog_content = null; $page = ''; } } else list($blog_count, $blog_content, $blog_paging, $blog_paging_first) = $blogs_instance->getBlogContentByDir($blog_dir, $pg, $tag, $blog_author_id); } else if($page === 'outfits') { $outfit_categories = $shop->getOutfitCategories(); if($outfit_code) { if($outfit = $shop->getOutfit($outfit_code)) { $TITLE = $outfit['title']; } } else { list($outfit_count, $outfits) = $shop->getOutfits($outfit_category, $pg); if($outfit_category && empty($outfits)) { Header("Location: " . $urlprefix . $defaults['outfits'] . "/"); exit(); } else if($outfit_category) { $_META_DESCRIPTION = $outfit_categories[$outfit_category]['meta_description']; $_META_KEYWORDS = $outfit_categories[$outfit_category]['meta_keywords']; } } } else if($page === 'branches') { $branches_instance = ineShop\Base\Branches::getInstance(); $_stateisok = false; $_regionisok = false; $_cityisok = false; $_sellerisok = false; $branches_states = $branches_instance->getBranchesStates(); foreach($branches_states ?? [] as $v) if($v['url_key'] == $branch_state) { $_stateisok = true; $branch_state_id = $v['id']; break; } if(!$_stateisok) $branch_state = null; $branches_regions = $branches_instance->getBranchesRegions($branch_state); foreach($branches_regions ?? [] as $v) if($v['url_key'] == $branch_region) { $_regionisok = true; break; } if(!$_regionisok) $branch_region = null; $branches_cities = $branches_instance->getBranchesCities($branch_state, $branch_region); foreach($branches_cities ?? [] as $v) if($v['url_key'] == $branch_city) { $_cityisok = true; break; } if(!$_cityisok) $branch_city = null; $branches_sellers = $branches_instance->getBranchesSellers(); foreach($branches_sellers ?? [] as $v) if($v['url_key'] == $branch_seller) { $_sellerisok = true; break; } if(!$_sellerisok) $branch_seller = null; if($branch_key) { if($branch = $branches_instance->getBranch($branch_key)) { $TITLE = $branch['title']; } else { Header("Location: " . $urlprefix . $defaults['branches'] . "/"); } } else { $branches = $branches_instance->getBranches($branch_state, $branch_region, $branch_city, $branch_seller); if( ( (($branch_state || $branch_region || $branch_city) && !$branch_seller) || ($branch_seller && !$branch_state && !$branch_region && !$branch_city) ) && empty($branches)) { Header("Location: " . $urlprefix . $defaults['branches'] . "/"); exit(); } } } else if($page === 'newsletter') { $newsletter = !empty($newsletter_id) ? (new ineShop\Admin\Mailing())->getPublicNewsletter($newsletter_id, $shop->user_lang) : []; $TITLE = $newsletter['subject'] ?? ''; if(empty($newsletter)) { $page = ''; } } else if(isset($defaults['textareas_available'][$shop->user_lang][$page])) { $TITLE = $defaults['textareas_available'][$shop->user_lang][$page]; $area_content = $shop->readPageTextareaContent([ $page, '404' ]); } else { $TITLE = ''; $area_content = $shop->readPageTextareaContent('404'); } $shop->loadTemplateData(); $shop->createWoLinks(); $shop->createCatLinks(); $shop->createHeaderCodes(); $shop->page_type = $page; switch($page) { case 'news': include("inc/pages/aktuality.php"); break; case 'branches': include("inc/pages/pobocky.php"); break; case 'gift_vouchers': include("inc/pages/darkove_poukazy.php"); break; case 'blog': case 'compare': case 'outfits': case 'newsletter': case 'wishlist': case 'delivery_payments': include("inc/pages/" . $page . ".php"); break; default: if((!empty($AdminData['uid']) && $AdminData['uid'] > 0) && !empty($AdminData['username']) && @$_GET['page_live_editor']) { if($area_content[$page]['version_id'] !== $_GET['text_version_id']) { $area_content = $shop->readPageTextareaContent($page, $shop->user_lang, true); $area_content[$page]['content'] = $area_content[$page]['versions'][@$_GET['text_version_id']]['content']; } if(!empty($area_content[$page]['content'])) $shop->page_live_editor = true; } if(!empty($area_content[$page]) && $page !== '404') { include("inc/pages/page.php"); break; } $shop->page_type = 'page_not_found'; $area_content = $shop->readPageTextareaContent('404'); $TPL['404_content'] = $area_content['404']["content"] ?? _("stránka nebyla nalezena"); include("inc/pages/404.php"); exit(); } } else { $cat = array_unique($cat); $shop->categories2 = $shop->readFilterCategories($cat, $promo); if($filter === '\\') { $filter = ''; } if(!empty($filter)) { $filter = removeEmoji(strip_tags(trim($filter))); } if(!empty($filter) && mb_strlen($filter) < 2) { $filter = null; } if(!empty($filter) && mb_strlen($filter) > 100) { $filter = mb_substr($filter, 0, 100); } if(isset($cat[0]) && isset($defaults['menu_category_type2']) && $shop->categories[$cat[0] ?? null]['group'] == $defaults['menu_category_type2']) { $shop->categories_by_subcategories = $shop->readFilterCategories($cat, $promo, 'menu_category_type'); } if(isset($cat2[0]) && isset($defaults['menu_category_type2']) && $shop->categories[$cat2[0] ?? null]['group'] == $defaults['menu_category_type2'] && ineShop::checkDefaults('cache_lite_use')) { $shop->categories_by_subcategories = $shop->readFilterCategories($cat2, $promo, 'menu_category_type'); } memspeed_debug('#10'); $_category_content_keys = []; isset($cat[0]) && $_category_content_keys[] = 'cat' . $cat[0]; isset($cat2[0]) && $_category_content_keys[] = 'cat' . $cat2[0]; $promo && $_category_content_keys[] = $promo; $defaults['seo_all_sortiment'] && $all_sortiment && $_category_content_keys[] = 'all.sortiment'; ineShop::checkDefaults('category_tile_banners') && $_category_content_keys[] = 'category_tile_banners_fallback'; $category_content = null; $skip_positions = 0; if(IS_ROBOT && ($defaults['robots_block_multiple_params'] ?? true) && function_exists('paramFilterGroupsState') && paramFilterGroupsState()['multiple'] > 0) { Header('HTTP/1.1 410 Gone'); exit(); } if(!(!trim((string) $filter) && !sizeof($cat) && !$all_sortiment && !$promo)) { if($filter && ineShop::checkDefaults('search_query_redir') && !ineShop::checkDefaults('search_query_redir_disable_fulltext_search') && !empty($redir = (new ineShop\Base\SearchRedirs())->getSearchQueryRedir($filter, $shop->user_lang)) ) { if(preg_match('/^http[s]?:\/\//i', $redir)) Header("Location: " . $redir); else Header("Location: " . $urlprefix . ltrim($redir, '/')); exit(); } if(ineShop::checkDefaults('seo_search_url') && trim((string) $filter) && !empty($_REQUEST['q'])) { $_redir_url = preg_replace('/hledani\/[^\/]*\//i', '', $REQUEST_URI); $_redir_url = preg_replace('/([^\/]+)$/i', 'hledani/' . str_replace('%2F', '/', urlencode(trim(stripslashes($filter)))) . '/\\1', $_redir_url); $shop->createWoLinks(); $wo_q = rtrim(str_replace('&amp;', '&', $wo_q), '&'); $_redir_url = preg_replace('/\?.*/i', '', $_redir_url) . ($wo_q ? '?' . $wo_q : ''); Header("Location: " . $_redir_url); exit(); } if(ineShop::checkDefaults('category_tile_banners') && $pg >= 0 && (trim((string) $filter) || sizeof($cat) || $all_sortiment || $promo) ) { if($category_content === null) $category_content = $shop->readCategoryTextareaContent($_category_content_keys); $tile_cat = (!empty($cat2[0]) ? 'cat'.$cat2[0] : (isset($cat[0]) ? 'cat'.$cat[0] : ($promo ?: 'all.sortiment'))); $tile_category = $category_content[$tile_cat]['category_tile_banners'] ?? ''; $tile_fallback = $category_content['category_tile_banners_fallback']['category_tile_banners'] ?? ''; $tile_banners = []; if((!empty($tile_category) || !empty($tile_fallback))) $tile_banners = ineShop_Helper::getInstance()->getCategoryTileBanners($tile_category, $tile_fallback); foreach($tile_banners ?? [] as $tb) $skip_positions += max((int)($tb['column_width'] ?? 1), 0); if($skip_positions) $pg = [ $pg, $skip_positions ]; } if(!empty($filter) && $shop->isSearchDisabled()) { [$items_count, $items] = [0, []]; } else { [$items_count, $items] = $shop->readItems($sort, $pg, $cat, $cat2, $pfilter, $filter, $skladem, $promo, null, $color_filter, $size_filter, $cost_filter, $ucat, $dostupne, null, true); } if(ineShop::checkDefaults('check_seo_urls_extended')) $shop->checkSeoFiltersUrl_rangeParams($REQUEST_URI, $pfilter, true); if($filter && !$shop->isSearchDisabled() && ineShop::checkDefaults('search_in_texts')) { $search_blog_content = ineShop\Base\Blogs::getInstance()->searchBlogs($filter, lang: $shop->user_lang); $search_textarea_content = $shop->searchTextareas($filter); } if($filter && !$shop->isSearchDisabled() && ineShop::checkDefaults('search_in_branches')) { $search_branches = ineShop\Base\Branches::searchBranches($filter); } if($filter && !$shop->isSearchDisabled() && ineShop::checkDefaults('search_log')) $shop->user->logSearchQuery($filter); if(TEST_MODE) $UserData['DEBUG']['readItems'] = array($sort, $pg, $cat, $cat2, $pfilter, $filter, $skladem, $promo, null, $color_filter, $size_filter, $cost_filter, $ucat, $dostupne); } memspeed_debug('#20'); if( !(!trim((string) $filter) && !sizeof($cat) && !$all_sortiment && !$promo) ) { if(trim((string) $filter) && !$shop->isSearchDisabled() && ineShop::checkDefaults('search_in_archive_for_related') && empty($items)) { $shop->search_in_archive_for_related = true; $_archive_items = $shop->searchArchiveItems(trim($filter)); if(!empty($_archive_items)) $items = $shop->getRelatedForArchive($_archive_items, $shop->items_paging); } if(!empty($items) && ineShop::checkDefaults('itemlist_related') && $shop->user->user_list_type != 'table' && !$filter && $pg === 0) { $__icodes = []; foreach($items ?? [] as $__i) $__icodes[] = $__i['item_code']; $__icodes = array_unique($__icodes); $related = $shop->getRelated($__icodes, $cat); $related_location = 'itemlist'; include("inc/pages/related.php"); unset($__icodes); } } memspeed_debug('#30'); $shop->loadTemplateData(); $shop->createWoLinks(); $shop->createCatLinks($urlprefix); $shop->createHeaderCodes(); memspeed_debug('#40'); if(sizeof($cat) && isset($shop->categories[$cat[0] ?? null]['name']) && $shop->categories[$cat[0] ?? null]['group']==$defaults['menu_category_type']) switch($defaults['category_title_type']) { case 'path': $TITLE = $kategorie_path; break; case 'normal': default: $TITLE = $shop->categories[$cat[0] ?? null]['name']; } else $TITLE = ''; memspeed_debug('#50'); if($promo) { $TITLE = $defaults['item_promo_signs'][$shop->user_lang][$promo] . ($TITLE ? ': ' : '') . "<small>" . $TITLE . "</small>"; $promo_items_categories = $shop->readPromoItemsCategories($promo); } memspeed_debug('#60'); if(trim((string) $filter) || sizeof($cat) || $all_sortiment || $promo) { $shop->page_type = 'item_list'; if($category_content === null) $category_content = $shop->readCategoryTextareaContent($_category_content_keys); if(ineShop::checkDefaults('category_filter_textareas')) { $_params = ineShop_Helper::getInstance()->categoryFilterTextareas_getParams('GLOBALS'); $_hash_key = md5(http_build_query($_params)); $category_filter_content = &$shop->readTextareaExtensionsContent($_hash_key)[$_hash_key]; } if(empty($items) && (!empty($pfilter) || !empty($color_filter) || !empty($size_filter) || !empty($ucat))) { http_response_code(404); } include("inc/pages/_header.php"); include("inc/pages/itemlist.php"); $shop->user->logUserOperation('page_item_list', array('sort' => $sort, 'pg' => $pg, 'cat' => $cat, 'cat2' => $cat2, 'pfilter' => $pfilter, 'filter' => $filter, 'skladem' => $skladem, 'promo' => $promo, 'enabled' => null, 'color_filter' => $color_filter, 'size_filter' => $size_filter, 'cost_filter' => $cost_filter, 'ucat' => $ucat, 'dostupne' => $dostupne)); } else { $_url = substr($REQUEST_URI, strlen(dirname($SCRIPT_NAME))); $_url = preg_replace('/\?.*$/', '', $_url); $_url = ltrim($_url, '/'); $_url = removeEmoji(urldecode($_url)); $_url = strtolower($_url); if(ineShop::checkDefaults('mod_rewrite_language_dir') && $shop->user_lang !== DEFAULT_LANGUAGE) $_url = substr($_url, 3); if($_url) { if(ineShop::checkDefaults('redirect_category_404_to_parent_category') && substr($_url, -1) == '/') { Header("Location: ../"); exit(); } if(ineShop::checkDefaults('search_query_redir') && $target_id = (new ineShop\Base\SearchRedirs())->getRedirTargetIdByUrl('/'.$_url, $shop->user_lang)) { ineShop_Helper::sendDebugQueryRedirMail('/'.$_url, $target_id); } $shop->page_type = 'page_not_found'; $area_content = $shop->readPageTextareaContent('404'); $TPL['404_content'] = $area_content['404']["content"] ?? _("stránka nebyla nalezena"); include("inc/pages/404.php"); exit(); } $shop->page_type = 'homepage'; include("inc/pages/_header.php"); include("inc/pages/home.php"); } } include("inc/pages/_footer.php"); $UserData["redir"] = $REQUEST_URI; } exit(); 