function fn_wishlist_init_user_session_data(&$sess_data, &$user_id) { if (AREA == 'C') { if (empty($_SESSION['wishlist'])) { $_SESSION['wishlist'] = array('products' => array()); } fn_extract_cart_content($sess_data['wishlist'], $user_id, 'W'); fn_save_cart_content($_SESSION['wishlist'], $user_id, 'W'); } return true; }
/** * Init user * * @return boolean always true */ function fn_init_user() { if (!empty($_SESSION['auth']['user_id'])) { $user_info = fn_get_user_short_info($_SESSION['auth']['user_id']); if (empty($user_info)) { // user does not exist in the database, but exists in session $_SESSION['auth'] = array(); } else { $_SESSION['auth']['usergroup_ids'] = fn_define_usergroups(array('user_id' => $_SESSION['auth']['user_id'], 'user_type' => $user_info['user_type'])); } } $first_init = false; if (empty($_SESSION['auth'])) { $udata = array(); if (fn_get_cookie(AREA_NAME . '_user_id')) { $udata = db_get_row("SELECT user_id, user_type, tax_exempt, last_login FROM ?:users WHERE user_id = ?i AND password = ?s", fn_get_cookie(AREA_NAME . '_user_id'), fn_get_cookie(AREA_NAME . '_password')); fn_define('LOGGED_VIA_COOKIE', true); } $_SESSION['auth'] = fn_fill_auth($udata, isset($_SESSION['auth']['order_ids']) ? $_SESSION['auth']['order_ids'] : array()); if (!defined('NO_SESSION')) { $_SESSION['cart'] = isset($_SESSION['cart']) ? $_SESSION['cart'] : array(); } if (defined('LOGGED_VIA_COOKIE') && !empty($_SESSION['auth']['user_id']) || ($cu_id = fn_get_cookie('cu_id'))) { $first_init = true; if (!empty($cu_id)) { fn_define('COOKIE_CART', true); } // Cleanup cached shipping rates unset($_SESSION['shipping_rates']); $_utype = empty($_SESSION['auth']['user_id']) ? 'U' : 'R'; $_uid = empty($_SESSION['auth']['user_id']) ? $cu_id : $_SESSION['auth']['user_id']; fn_extract_cart_content($_SESSION['cart'], $_uid, 'C', $_utype); fn_save_cart_content($_SESSION['cart'], $_uid, 'C', $_utype); if (!empty($_SESSION['auth']['user_id'])) { $_SESSION['cart']['user_data'] = fn_get_user_info($_SESSION['auth']['user_id']); } } } if (TIME > Registry::get('settings.cart_products_next_check')) { fn_define('CART_PRODUCTS_CHECK_PERIOD', SECONDS_IN_HOUR * 12); fn_define('CART_PRODUCTS_DELETE_TIME', TIME - SECONDS_IN_DAY * 30); db_query("DELETE FROM ?:user_session_products WHERE user_type = 'U' AND timestamp < ?i", CART_PRODUCTS_DELETE_TIME); db_query("UPDATE ?:settings SET value = ?s WHERE option_name = 'cart_products_next_check'", TIME + CART_PRODUCTS_CHECK_PERIOD); } // If administrative account has usergroup, it means the access restrictions are in action if (AREA == 'A' && !empty($_SESSION['auth']['usergroup_ids'])) { fn_define('RESTRICTED_ADMIN', true); } if (!empty($user_info) && $user_info['user_type'] == 'A') { if (Registry::get('settings.translation_mode') == 'Y') { fn_define('TRANSLATION_MODE', true); } if (Registry::get('settings.customization_mode') == 'Y') { if (AREA != 'A') { fn_define('PARSE_ALL', true); } fn_define('CUSTOMIZATION_MODE', true); } } fn_set_hook('user_init', $_SESSION['auth'], $user_info, $first_init); Registry::set('user_info', $user_info); Registry::get('view')->assign('auth', $_SESSION['auth']); Registry::get('view')->assign('user_info', $user_info); return true; }
/** * This function initializes the session data of a selected user (cart, wishlist etc...) * * @param array $sess_data * @param int $user_id * @return true */ function fn_init_user_session_data(&$sess_data, $user_id, $skip_cart_saving = false) { // Restore cart content $sess_data['cart'] = empty($sess_data['cart']) ? array() : $sess_data['cart']; // Cleanup cached shipping rates unset($sess_data['shipping_rates']); fn_extract_cart_content($sess_data['cart'], $user_id, 'C'); $sess_data['cart']['user_data'] = fn_get_user_info($user_id); $sess_data['product_notifications'] = array('email' => !empty($sess_data['cart']['user_data']['email']) ? $sess_data['cart']['user_data']['email'] : '', 'product_ids' => db_get_fields("SELECT product_id FROM ?:product_subscriptions WHERE user_id = ?i", $user_id)); if (!$skip_cart_saving) { fn_save_cart_content($sess_data['cart'], $user_id); } fn_set_hook('init_user_session_data', $sess_data, $user_id); return true; }
/** * Init user * * @return boolean always true */ function fn_init_user($area = AREA) { $user_info = array(); if (!empty(Tygh::$app['session']['auth']['user_id'])) { $user_info = fn_get_user_short_info(Tygh::$app['session']['auth']['user_id']); if (empty($user_info)) { // user does not exist in the database, but exists in session Tygh::$app['session']['auth'] = array(); } else { Tygh::$app['session']['auth']['usergroup_ids'] = fn_define_usergroups(array('user_id' => Tygh::$app['session']['auth']['user_id'], 'user_type' => $user_info['user_type'])); } } $first_init = false; if (empty(Tygh::$app['session']['auth'])) { $udata = array(); $user_id = fn_get_session_data($area . '_user_id'); if ($area == 'A' && defined('CONSOLE')) { $user_id = 1; } if ($user_id) { fn_define('LOGGED_VIA_COOKIE', true); } fn_login_user($user_id); if (!defined('NO_SESSION')) { Tygh::$app['session']['cart'] = isset(Tygh::$app['session']['cart']) ? Tygh::$app['session']['cart'] : array(); } if (defined('LOGGED_VIA_COOKIE') && !empty(Tygh::$app['session']['auth']['user_id']) || ($cu_id = fn_get_session_data('cu_id'))) { $first_init = true; if (!empty($cu_id)) { fn_define('COOKIE_CART', true); } // Cleanup cached shipping rates unset(Tygh::$app['session']['shipping_rates']); $_utype = empty(Tygh::$app['session']['auth']['user_id']) ? 'U' : 'R'; $_uid = empty(Tygh::$app['session']['auth']['user_id']) ? $cu_id : Tygh::$app['session']['auth']['user_id']; fn_extract_cart_content(Tygh::$app['session']['cart'], $_uid, 'C', $_utype); fn_save_cart_content(Tygh::$app['session']['cart'], $_uid, 'C', $_utype); if (!empty(Tygh::$app['session']['auth']['user_id'])) { Tygh::$app['session']['cart']['user_data'] = fn_get_user_info(Tygh::$app['session']['auth']['user_id']); $user_info = fn_get_user_short_info(Tygh::$app['session']['auth']['user_id']); } } } if (fn_is_expired_storage_data('cart_products_next_check', SECONDS_IN_HOUR * 12)) { db_query("DELETE FROM ?:user_session_products WHERE user_type = 'U' AND timestamp < ?i", TIME - SECONDS_IN_DAY * 30); } if (!fn_allowed_for('ULTIMATE:FREE')) { // If administrative account has usergroup, it means the access restrictions are in action if ($area == 'A' && !empty(Tygh::$app['session']['auth']['usergroup_ids'])) { fn_define('RESTRICTED_ADMIN', true); } } if (!empty($user_info) && $user_info['user_type'] == 'A' && (empty($user_info['company_id']) || fn_allowed_for('ULTIMATE') && $user_info['company_id'] == Registry::get('runtime.company_id'))) { $customization_mode = fn_array_combine(explode(',', Registry::get('settings.customization_mode')), true); if (!empty($customization_mode)) { Registry::set('runtime.customization_mode', $customization_mode); if ($area == 'A' || Embedded::isEnabled()) { Registry::set('runtime.customization_mode.live_editor', false); } } } fn_set_hook('user_init', Tygh::$app['session']['auth'], $user_info, $first_init); Registry::set('user_info', $user_info); return array(INIT_STATUS_OK); }
/** * This function initializes the session data of a selected user (cart, wishlist etc...) * * @param array $sess_data * @param int $user_id * @return true */ function fn_init_user_session_data(&$sess_data, $user_id) { // Restore cart content $sess_data['cart'] = empty($sess_data['cart']) ? array() : $sess_data['cart']; // Cleanup cached shipping rates unset($sess_data['shipping_rates']); fn_extract_cart_content($sess_data['cart'], $user_id, 'C'); $sess_data['cart']['user_data'] = fn_get_user_info($user_id); fn_set_hook('init_user_session_data', $sess_data, $user_id); return true; }
function fn_wishlist_init_user_session_data(&$sess_data, $user_id) { fn_extract_cart_content($sess_data['wishlist'], $user_id, 'W'); return true; }