Ejemplo n.º 1
0
// pdump($allow_anonymous, '$allow_anonymous');
// pdump($sys_user_logged_in, '$sys_user_logged_in');
if ($sys_user_logged_in && INITIAL_PAGE == 'login') {
    sys_redirect(SN_ROOT_VIRTUAL . 'overview.php');
} elseif ($account_logged_in && !$sys_user_logged_in) {
    // empty(core_auth::$user['id'])
    //  pdump($sn_page_name);
    //  pdump(INITIAL_PAGE);
    //  die('{Тут должна быть ваша реклама. Точнее - ввод имени игрока}');
} elseif (!$allow_anonymous && !$sys_user_logged_in) {
    // sn_setcookie(SN_COOKIE, '', time() - PERIOD_WEEK, SN_ROOT_RELATIVE);
    sys_redirect(SN_ROOT_VIRTUAL . 'login.php');
}
$user_time_diff = playerTimeDiff::user_time_diff_get();
global $time_diff;
define('SN_CLIENT_TIME_DIFF', $time_diff = $user_time_diff[PLAYER_OPTION_TIME_DIFF] + $user_time_diff[PLAYER_OPTION_TIME_DIFF_UTC_OFFSET]);
define('SN_CLIENT_TIME_LOCAL', SN_TIME_NOW + SN_CLIENT_TIME_DIFF);
define('SN_CLIENT_TIME_DIFF_GMT', $user_time_diff[PLAYER_OPTION_TIME_DIFF]);
// Разница в GMT-времени между клиентом и сервером. Реальная разница в ходе часов
!empty($user) && sys_get_param_id('only_hide_news') ? die(nws_mark_read($user)) : false;
!empty($user) && sys_get_param_id('survey_vote') ? die(survey_vote($user)) : false;
!empty($sn_mvc['i18n']['']) ? lng_load_i18n($sn_mvc['i18n']['']) : false;
$sn_page_name && !empty($sn_mvc['i18n'][$sn_page_name]) ? lng_load_i18n($sn_mvc['i18n'][$sn_page_name]) : false;
execute_hooks($sn_mvc['model'][''], $template);
global $skip_fleet_update;
$skip_fleet_update = $skip_fleet_update || $supernova->options['fleet_update_skip'] || defined('IN_ADMIN');
if (!$skip_fleet_update && SN_TIME_NOW - strtotime($config->fleet_update_last) > $config->fleet_update_interval) {
    require_once SN_ROOT_PHYSICAL . "includes/includes/flt_flying_fleet_handler2" . DOT_PHP_EX;
    flt_flying_fleet_handler($skip_fleet_update);
}
scheduler_process();
Ejemplo n.º 2
0
// TODO ban
if ($template_result[F_BANNED_STATUS] && !$skip_ban_check) {
    if (defined('IN_API')) {
        return;
    }
    $bantime = date(FMT_DATE_TIME, $template_result[F_BANNED_STATUS]);
    // TODO: Add ban reason. Add vacation time. Add message window
    sn_sys_logout(false, true);
    message("{$lang['sys_banned_msg']} {$bantime}", $lang['ban_title']);
    die("{$lang['sys_banned_msg']} {$bantime}");
}
$template_result[F_USER_AUTHORIZED] = $sys_user_logged_in = !empty($user) && isset($user['id']) && $user['id'];
// !!! Просто $allow_anonymous используется в платежных модулях !!!
$allow_anonymous = $allow_anonymous || isset($sn_page_data['allow_anonymous']) && $sn_page_data['allow_anonymous'];
if (!$allow_anonymous && !$sys_user_logged_in) {
    sn_setcookie(SN_COOKIE, '', time() - PERIOD_WEEK, SN_ROOT_RELATIVE);
    sys_redirect(SN_ROOT_VIRTUAL . 'login.php');
}
$user_time_diff = user_time_diff_get();
//defined('SN_CLIENT_TIME_DIFF_SECONDS') or define('SN_CLIENT_TIME_DIFF_SECONDS', $user_time_diff[PLAYER_OPTION_TIME_DIFF]);
//defined('SN_CLIENT_TIME_UTC_OFFSET') or define('SN_CLIENT_TIME_UTC_OFFSET', $user_time_diff[PLAYER_OPTION_TIME_DIFF_UTC_OFFSET]);
//$time_diff = SN_CLIENT_TIME_DIFF_SECONDS + SN_CLIENT_TIME_UTC_OFFSET;
//defined('SN_CLIENT_TIME_DIFF') or define('SN_CLIENT_TIME_DIFF', $time_diff);
//defined('SN_CLIENT_TIME_LOCAL') or define('SN_CLIENT_TIME_LOCAL', SN_TIME_NOW + SN_CLIENT_TIME_DIFF);
global $time_diff;
define('SN_CLIENT_TIME_DIFF', $time_diff = $user_time_diff[PLAYER_OPTION_TIME_DIFF] + $user_time_diff[PLAYER_OPTION_TIME_DIFF_UTC_OFFSET]);
define('SN_CLIENT_TIME_LOCAL', SN_TIME_NOW + SN_CLIENT_TIME_DIFF);
!empty($user) && sys_get_param_id('only_hide_news') ? die(nws_mark_read($user)) : false;
!empty($user) && sys_get_param_id('survey_vote') ? die(survey_vote($user)) : false;
lng_load_i18n($sn_mvc['i18n'][$sn_page_name]);
execute_hooks($sn_mvc['model'][''], $template);
Ejemplo n.º 3
0
/**
 * @param array|string  $files
 * @param template|bool $template
 * @param string|bool   $template_path
 *
 * @return template
 */
function gettemplate($files, $template = false, $template_path = false)
{
    global $sn_mvc, $sn_page_name, $user;
    $template_ex = '.tpl.html';
    if ($template === false) {
        return sys_file_read(TEMPLATE_DIR . '/' . $files . $template_ex);
    }
    is_string($files) ? $files = array(basename($files) => $files) : false;
    !is_object($template) ? $template = new template() : false;
    //$template->set_custom_template($template_path ? $template_path : TEMPLATE_DIR, TEMPLATE_NAME, TEMPLATE_DIR);
    $tmpl_name = gettemplatename($user['dpath']);
    $template->set_custom_template(($template_path ? $template_path : SN_ROOT_PHYSICAL . 'design/templates/') . $tmpl_name . '/', $tmpl_name, TEMPLATE_DIR);
    // TODO ГРЯЗНЫЙ ХАК! Это нужно, что бы по возможности перезаписать инфу из языковых пакетов модулей там, где она была перезаписана раньше инфой из основного пакета. Почему?
    //  - сначала грузятся модули и их языковые пакеты
    //  - затем по ходу дела ОСНОВНОЙ языковой пакет может перезаписать данные из МОДУЛЬНОГО языкового пакета
    // Поэтому и нужен этот грязный хак
    // В норме же - страницы заявляют сами, какие им пакеты нужны. Так что сначала всегда должны грузится основные языковые пакеты, а уже ПОВЕРХ них - пакеты модулей
    !empty($sn_mvc['i18n']['']) ? lng_load_i18n($sn_mvc['i18n']['']) : false;
    $sn_page_name ? lng_load_i18n($sn_mvc['i18n'][$sn_page_name]) : false;
    foreach ($files as &$filename) {
        $filename = $filename . $template_ex;
    }
    $template->set_filenames($files);
    return $template;
}