/** * Gets last view object instance * * @param string $area Area identifier * @return LastView object instance */ public static function instance($area = AREA) { if (!isset(self::$_instance)) { $class = '\\Tygh\\Navigation\\LastView\\' . ucfirst(fn_get_area_name($area)); self::$_instance = new $class(); } return self::$_instance; }
/** * Create new last view instance object * * @param string $area Area identifier * @return void */ public function __construct($area = AREA) { $schema_name = fn_get_area_name($area); $this->_controller = Registry::get('runtime.controller'); $this->_mode = Registry::get('runtime.mode'); $this->_action = Registry::get('runtime.action'); $common_schema = fn_get_schema('last_view', $schema_name); $this->_schema = !empty($common_schema[$this->_controller]) ? $common_schema[$this->_controller] : array(); $this->_auth =& $_SESSION['auth']; }
/** * Generates list of (pre/post)controllers from active addons * * @param string $controller controller name * @param string $type controller type (pre/post) * @return array controllers list and active addons */ function fn_init_addon_controllers($controller, $type = GET_CONTROLLERS, $area = AREA) { $controllers = array(); static $addons = array(); $prefix = ''; $area_name = fn_get_area_name($area); if ($type == GET_POST_CONTROLLERS) { $prefix = '.post'; } elseif ($type == GET_PRE_CONTROLLERS) { $prefix = '.pre'; } foreach ((array) Registry::get('addons') as $addon_name => $data) { if ($data['status'] == 'A') { // try to find area-specific controller $dir = Registry::get('config.dir.addons') . $addon_name . '/controllers/' . $area_name . '/'; if (is_readable($dir . $controller . $prefix . '.php')) { $controllers[] = $dir . $controller . $prefix . '.php'; $addons[$addon_name] = true; if (empty($prefix)) { fn_define('LOADED_ADDON_PATH', $addon_name); } } // try to find common controller $dir = Registry::get('config.dir.addons') . $addon_name . '/controllers/common/'; if (is_readable($dir . $controller . $prefix . '.php')) { $controllers[] = $dir . $controller . $prefix . '.php'; $addons[$addon_name] = true; if (empty($prefix)) { fn_define('LOADED_ADDON_PATH', $addon_name); } } } } return array($controllers, $addons); }
private static function checkFreeModeAvailability($languages, $remove_disabled) { if (fn_allowed_for('ULTIMATE:FREE')) { $default_language = Registry::get('settings.Appearance.' . fn_get_area_name(AREA) . '_default_language'); foreach ($languages as $index => $language) { $lang_code = is_array($language) && isset($language['lang_code']) ? $language['lang_code'] : $index; if ($default_language != $lang_code) { if ($remove_disabled) { unset($languages[$index]); } else { $languages[$index]['status'] = 'D'; } } else { if (!$remove_disabled) { $languages[$index]['status'] = 'A'; } } } } return $languages; }
function fn_twg_api_customer_logout() { // copied from common/auth.php - logout mode $auth = $_SESSION['auth']; fn_save_cart_content($_SESSION['cart'], $auth['user_id']); if (!empty($auth['user_id'])) { // Log user logout fn_log_event('users', 'session', array('user_id' => $auth['user_id'], 'time' => TIME - $auth['this_login'], 'timeout' => false)); } unset($_SESSION['auth']); fn_clear_cart($_SESSION['cart'], false, true); fn_delete_session_data(fn_get_area_name() . '_user_id', fn_get_area_name() . '_password'); return true; }
/** * Init languages * * @param array $params request parameters * @return boolean always true */ function fn_init_language($params, $area = AREA) { $default_language = Registry::get('settings.Appearance.' . fn_get_area_name($area) . '_default_language'); $session_language = fn_get_session_data('cart_language' . $area); $show_hidden_languages = $area != 'C' ? true : false; $avail_languages = fn_get_avail_languages($area, $show_hidden_languages); if (!empty($params['sl']) && !empty($avail_languages[$params['sl']])) { fn_define('CART_LANGUAGE', $params['sl']); } elseif ($session_language && !empty($avail_languages[$session_language])) { fn_define('CART_LANGUAGE', $session_language); } elseif ($_lc = fn_get_browser_language($avail_languages)) { fn_define('CART_LANGUAGE', $_lc); } elseif (!empty($avail_languages[$default_language])) { fn_define('CART_LANGUAGE', $default_language); } else { reset($avail_languages); fn_define('CART_LANGUAGE', key($avail_languages)); } // For the backend, set description language if (!empty($params['descr_sl']) && !empty($avail_languages[$params['descr_sl']])) { fn_define('DESCR_SL', $params['descr_sl']); fn_set_session_data('descr_sl', $params['descr_sl'], COOKIE_ALIVE_TIME); } elseif (($d = fn_get_session_data('descr_sl')) && !empty($avail_languages[$d])) { fn_define('DESCR_SL', $d); } else { fn_define('DESCR_SL', CART_LANGUAGE); } if (CART_LANGUAGE != $session_language) { fn_set_session_data('cart_language' . $area, CART_LANGUAGE, COOKIE_ALIVE_TIME); // set language_changed flag only if $session_language was set before if (Embedded::isEnabled() && defined('AJAX_REQUEST') && $session_language) { Tygh::$app['ajax']->assign('language_changed', true); } } Registry::set('languages', $avail_languages); return array(INIT_STATUS_OK); }
/** * Init languages * * @param array $params request parameters * @return boolean always true */ function fn_init_language($params, $area = AREA) { $default_language = Registry::get('settings.Appearance.' . fn_get_area_name($area) . '_default_language'); $show_hidden_languages = $area != 'C' ? true : false; $avail_languages = fn_get_avail_languages($area, $show_hidden_languages); if (!empty($params['sl']) && !empty($avail_languages[$params['sl']])) { fn_define('CART_LANGUAGE', $params['sl']); // } elseif (!fn_get_session_data('cart_language' . $area) && $_lc = fn_get_browser_language($avail_languages)) { // fn_define('CART_LANGUAGE', $_lc); } elseif (!fn_get_session_data('cart_language' . $area) && !empty($avail_languages[$default_language])) { fn_define('CART_LANGUAGE', $default_language); } elseif (($_c = fn_get_session_data('cart_language' . $area)) && !empty($avail_languages[$_c])) { fn_define('CART_LANGUAGE', $_c); } else { reset($avail_languages); fn_define('CART_LANGUAGE', key($avail_languages)); } // For the backend, set description language if (!empty($params['descr_sl']) && !empty($avail_languages[$params['descr_sl']])) { fn_define('DESCR_SL', $params['descr_sl']); fn_set_session_data('descr_sl', $params['descr_sl'], COOKIE_ALIVE_TIME); } elseif (($d = fn_get_session_data('descr_sl')) && !empty($avail_languages[$d])) { fn_define('DESCR_SL', $d); } else { fn_define('DESCR_SL', CART_LANGUAGE); } if (CART_LANGUAGE != fn_get_session_data('cart_language' . $area)) { fn_set_session_data('cart_language' . $area, CART_LANGUAGE, COOKIE_ALIVE_TIME); } Registry::set('languages', $avail_languages); return array(INIT_STATUS_OK); }