예제 #1
0
 /**
  * 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;
 }
예제 #2
0
파일: ACommon.php 프로젝트: askzap/ultimate
 /**
  * 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'];
 }
예제 #3
0
/**
 * 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);
}
예제 #4
0
 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;
 }
예제 #5
0
파일: func.php 프로젝트: arpad9/bygmarket
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;
}
예제 #6
0
/**
 * 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);
}
예제 #7
0
/**
 * 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);
}