function xos_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true, $add_get_language = true, $add_get_currency = true, $add_get_tpl = true) { global $session_started, $request_type, $cats, $mans, $cots, $lng, $lang_code; $add_parameter = false; if (!xos_not_null($page)) { die('<br /><br /><span style="color : #ff0000;"><b>Error!</b></span><br /><br /><b>Unable to determine the page link!</b><br /><br />'); } if ($connection == 'REQUEST_TYPE') { $connection = $request_type; } if ($connection == 'NONSSL') { $link = HTTP_SERVER . DIR_WS_CATALOG; } elseif ($connection == 'SSL') { if (ENABLE_SSL == 'true') { $link = HTTPS_SERVER . DIR_WS_CATALOG; } else { $link = HTTP_SERVER . DIR_WS_CATALOG; } } else { die('<br /><br /><span style="color : #ff0000;"><b>Error!</b></span><br /><br /><b>Unable to determine connection method on a link!<br /><br />Known methods: NONSSL SSL</b><br /><br />'); } if (SEARCH_ENGINE_FRIENDLY_URLS == 'true' && $search_engine_safe == true && xos_not_null($parameters)) { $parameters = str_replace(array('&', '%2F', '%5C'), array('&', '_.~', '~._'), $parameters); } if (SEARCH_ENGINE_FRIENDLY_URLS == 'true' && $search_engine_safe == true) { if (!isset($cats)) { $all_cat_query = xos_db_query("select c.categories_or_pages_id as id, cpd.categories_or_pages_name as name from " . TABLE_CATEGORIES_OR_PAGES . " c, " . TABLE_CATEGORIES_OR_PAGES_DATA . " cpd where c.categories_or_pages_id = cpd.categories_or_pages_id and cpd.language_id = '" . (int) $_SESSION['languages_id'] . "' and c.categories_or_pages_status = '1'"); while ($cat = xos_db_fetch_array($all_cat_query)) { $cats[$cat['id']] = $cat['name']; } } if (!isset($mans)) { $all_man_query = xos_db_query("select manufacturers_id as id, manufacturers_name as name from " . TABLE_MANUFACTURERS_INFO . " where languages_id = '" . (int) $_SESSION['languages_id'] . "'"); while ($man = xos_db_fetch_array($all_man_query)) { $mans[$man['id']] = $man['name']; } } if (!isset($cots)) { $all_content_query = xos_db_query("select content_id as id, name from " . TABLE_CONTENTS_DATA . " where language_id = '" . (int) $_SESSION['languages_id'] . "'"); while ($cot = xos_db_fetch_array($all_content_query)) { $cots[$cot['id']] = $cot['name']; } } parse_str($parameters, $param_array); $lng_code = ''; // enable this lines if language code is needed // if (sizeof($lng->catalog_languages) > 1) { // if (!empty($lang_code)) { // $lng_code = $lang_code . '/'; // } else if (!empty($_SESSION['languages_code'])) { // $lng_code = $_SESSION['languages_code'] . '/'; // } // } switch ($page) { case FILENAME_DEFAULT: if (array_key_exists('c', $param_array)) { foreach (explode('_', $param_array['c']) as $value) { $c_name_array[] = $cats[$value]; } $name_str = implode('^', $c_name_array); } elseif (array_key_exists('m', $param_array)) { $name_str = $mans[$param_array['m']]; } else { $name_str = HEADER_TITLE_HOME; } $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/a' : FILENAME_DEFAULT; break; case FILENAME_PRODUCT_INFO: if (array_key_exists('c', $param_array)) { foreach (explode('_', $param_array['c']) as $value) { $c_name_array[] = $cats[$value]; } $name_str = implode('^', $c_name_array); } elseif (array_key_exists('p', $param_array)) { if (array_key_exists('m', $param_array)) { $name_str = $mans[$param_array['m']]; } else { $c_id_str = xos_get_product_path($param_array['p']); foreach (explode('_', $c_id_str) as $value) { $c_name_array[] = $cats[$value]; } $name_str = implode('^', $c_name_array); } } $name_str = $name_str . '^' . htmlspecialchars_decode(xos_get_products_name($param_array['p'])); $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/b' : FILENAME_PRODUCT_INFO; break; case FILENAME_CONTENT: if (array_key_exists('co', $param_array)) { $name_str = $cots[$param_array['co']]; } $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/c' : FILENAME_CONTENT; break; case FILENAME_SPECIALS: $name_str = SEF_URL_NAME_SPECIALS; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/d' : FILENAME_SPECIALS; break; case FILENAME_PRODUCTS_NEW: $name_str = SEF_URL_NAME_NEW_PRODUCTS; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/e' : FILENAME_PRODUCTS_NEW; break; case FILENAME_NEWSLETTER_SUBSCRIBE: $name_str = SEF_URL_NAME_SUBSCRIBE_NEWSLETTER; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/f' : FILENAME_NEWSLETTER_SUBSCRIBE; break; case FILENAME_REVIEWS: $name_str = SEF_URL_NAME_REVIEWS; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/g' : FILENAME_REVIEWS; break; case FILENAME_PRODUCT_REVIEWS: if (array_key_exists('m', $param_array)) { $name_str = $mans[$param_array['m']]; } else { $c_id_str = xos_get_product_path($param_array['p']); foreach (explode('_', $c_id_str) as $value) { $c_name_array[] = $cats[$value]; } $name_str = implode('^', $c_name_array); } $name_str = $name_str . '^' . htmlspecialchars_decode(xos_get_products_name($param_array['p'])) . '^' . SEF_URL_NAME_REVIEWS; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/h' : FILENAME_PRODUCT_REVIEWS; break; case FILENAME_PRODUCT_REVIEWS_INFO: if (array_key_exists('m', $param_array)) { $name_str = $mans[$param_array['m']]; } else { $c_id_str = xos_get_product_path($param_array['p']); foreach (explode('_', $c_id_str) as $value) { $c_name_array[] = $cats[$value]; } $name_str = implode('^', $c_name_array); } $name_str = $name_str . '^' . htmlspecialchars_decode(xos_get_products_name($param_array['p'])) . '^' . SEF_URL_NAME_REVIEWS; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/i' : FILENAME_PRODUCT_REVIEWS_INFO; break; case FILENAME_TELL_A_FRIEND: if (array_key_exists('m', $param_array)) { $name_str = $mans[$param_array['m']]; } else { $c_id_str = xos_get_product_path($param_array['p']); foreach (explode('_', $c_id_str) as $value) { $c_name_array[] = $cats[$value]; } $name_str = implode('^', $c_name_array); } $name_str = $name_str . '^' . htmlspecialchars_decode(xos_get_products_name($param_array['p'])) . '^' . SEF_URL_NAME_TELL_A_FRIEND; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/k' : FILENAME_TELL_A_FRIEND; break; case FILENAME_SHOPPING_CART: $name_str = SEF_URL_NAME_SHOPPING_CART; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/l' : FILENAME_SHOPPING_CART; break; case FILENAME_LOGIN: $name_str = SEF_URL_NAME_LOGIN; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/m' : FILENAME_LOGIN; break; case FILENAME_CREATE_ACCOUNT: $name_str = SEF_URL_NAME_CREATE_ACCOUNT; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/n' : FILENAME_CREATE_ACCOUNT; break; case FILENAME_PASSWORD_FORGOTTEN: $name_str = SEF_URL_NAME_PASSWORD_FORGOTTEN; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/o' : FILENAME_PASSWORD_FORGOTTEN; break; case FILENAME_ADVANCED_SEARCH_AND_RESULTS: $name_str = SEF_URL_NAME_ADVANCED_SEARCH_AND_RESULTS; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/p' : FILENAME_ADVANCED_SEARCH_AND_RESULTS; break; case FILENAME_SEARCH_RESULT: $name_str = SEF_URL_NAME_SEARCH_RESULT; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/q' : FILENAME_SEARCH_RESULT; break; case FILENAME_COOKIE_USAGE: $name_str = SEF_URL_NAME_COOKIE_USAGE; $page = ($trail_string = xos_sef_url_trail_converter($name_str)) ? $lng_code . $trail_string . '.html/r' : FILENAME_COOKIE_USAGE; break; } } if (xos_not_null($parameters)) { $link .= $page . '?' . xos_output_string($parameters); $add_parameter = true; $separator = '&'; } else { $link .= $page; $separator = '?'; } while (substr($link, -1) == '&' || substr($link, -1) == '?') { $link = substr($link, 0, -1); } if (!$session_started && xos_not_null($_GET['cur']) && $add_get_currency == true) { $link .= $separator . xos_output_string('cur=' . $_GET['cur']); $add_parameter = true; $separator = '&'; } if (!$session_started && xos_not_null($_GET['lnc']) && $add_get_language == true) { $link .= $separator . xos_output_string('lnc=' . $_GET['lnc']); $add_parameter = true; $separator = '&'; } if (!$session_started && xos_not_null($_GET['tpl']) && $add_get_tpl == true) { $link .= $separator . xos_output_string('tpl=' . $_GET['tpl']); $add_parameter = true; } // Add the session ID when moving from different HTTP and HTTPS servers, or when SESSID is not empty if ($add_session_id == true && $session_started == true && SESSION_FORCE_COOKIE_USE == 'false') { if (SESSID) { $_sid = SESSID; } elseif (($request_type == 'NONSSL' && $connection == 'SSL' && ENABLE_SSL == 'true' || $request_type == 'SSL' && $connection == 'NONSSL' && ENABLE_SSL == 'true') && HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) { $_sid = xos_session_name() . '=' . xos_session_id(); } } if (isset($_sid)) { $add_parameter = true; $link .= $separator . xos_output_string($_sid); } if (SEARCH_ENGINE_FRIENDLY_URLS == 'true' && $search_engine_safe == true) { $link = str_replace(array('=%20', '&&', '=&', '/?', '?', '&', '='), array('=', '&', '/^/', '/', '/', '/', '/'), $link); if ($add_parameter) { $link = $link . '/'; } } else { $link = str_replace(array('&', '&'), array('&', '&'), $link); } return $link; }
xos_activate_banners(); xos_expire_banners(); // auto expire special products // auto update products date available // reset new order date and clear all cache require DIR_WS_FUNCTIONS . 'reset_and_update.php'; xos_expire_specials(); xos_update_products_date_available(); if (CACHE_LEVEL > 0 && NEW_ORDER == 'true') { xos_update_new_order_date(); } // calculate category path if (isset($_GET['c'])) { $cPath = $_GET['c']; } elseif (isset($_GET['p']) && !isset($_GET['m'])) { $cPath = xos_get_product_path($_GET['p']); } else { $cPath = ''; } if (xos_not_null($cPath)) { $cPath_array = xos_parse_category_path($cPath); $cPath = implode('_', $cPath_array); $current_category_id = $cPath_array[sizeof($cPath_array) - 1]; } else { $current_category_id = 0; } // include the site trail class and start the site trail require DIR_WS_CLASSES . 'site_trail.php'; $site_trail = new site_trail(); if (DISPLAY_LINK_TO_ROOT_DIRECTORY == 'true' && DIR_WS_CATALOG != '') { $site_trail->add(HEADER_TITLE_TOP, str_replace(DIR_WS_CATALOG . FILENAME_DEFAULT, '', xos_href_link(FILENAME_DEFAULT, '', 'NONSSL', true, false)));