Пример #1
0
function prefs_save()
{
    global $prefs, $gmtoffset, $is_dst, $auto_dst, $timezone_key;
    $prefnames = safe_column("name", "txp_prefs", "prefs_id = 1");
    $post = doSlash(stripPost());
    // Forge $auto_dst for (in-)capable servers
    if (!timezone::is_supported()) {
        $post['auto_dst'] = false;
    }
    $prefs['auto_dst'] = $auto_dst = $post['auto_dst'];
    if (!$post['auto_dst']) {
        $is_dst = $post['is_dst'];
    }
    // Forge $gmtoffset and $is_dst from $timezone_key if present
    if (isset($post['timezone_key'])) {
        $key = $post['timezone_key'];
        $tz = new timezone();
        $tzd = $tz->details();
        if (isset($tzd[$key])) {
            $prefs['timezone_key'] = $timezone_key = $key;
            $post['gmtoffset'] = $prefs['gmtoffset'] = $gmtoffset = $tzd[$key]['offset'];
            $post['is_dst'] = $prefs['is_dst'] = $is_dst = timezone::is_dst(time(), $key);
        }
    }
    foreach ($prefnames as $prefname) {
        if (isset($post[$prefname])) {
            if ($prefname == 'siteurl') {
                $post[$prefname] = str_replace("http://", '', $post[$prefname]);
                $post[$prefname] = rtrim($post[$prefname], "/ ");
            }
            safe_update("txp_prefs", "val = '" . $post[$prefname] . "'", "name = '" . doSlash($prefname) . "' and prefs_id = 1");
        }
    }
    update_lastmod();
    prefs_list(gTxt('preferences_saved'));
}
Пример #2
0
function janitor()
{
    global $prefs;
    // update DST setting
    global $auto_dst, $timezone_key, $is_dst;
    if ($auto_dst && $timezone_key) {
        $is_dst = timezone::is_dst(time(), $timezone_key);
        if ($is_dst != $prefs['is_dst']) {
            $prefs['is_dst'] = $is_dst;
            set_pref('is_dst', $is_dst, 'publish', 2);
        }
    }
}
Пример #3
0
function janitor()
{
    global $prefs;
    // update DST setting
    global $auto_dst, $timezone_key, $is_dst;
    if ($auto_dst && $timezone_key) {
        $is_dst = timezone::is_dst(time(), $timezone_key);
        if ($is_dst != $prefs['is_dst']) {
            $prefs['is_dst'] = $is_dst;
            set_pref('is_dst', $is_dst, 'publish', 2);
        }
    }
    // deprecation nags
    if (AJAXALLY_CHALLENGED) {
        trigger_error(gTxt('deprecated_configuration', array('{name}' => 'AJAXALLY_CHALLENGED')), E_USER_NOTICE);
    }
}
Пример #4
0
/**
 * Calculates a timezone offset.
 *
 * Calculates the offset between the server local time and the
 * user's selected timezone at a given point in time.
 *
 * @param   int $timestamp The timestamp. Defaults to time()
 * @return  int The offset in seconds
 * @package DateTime
 */
function tz_offset($timestamp = null)
{
    global $gmtoffset, $timezone_key;
    if (is_null($timestamp)) {
        $timestamp = time();
    }
    extract(getdate($timestamp));
    $serveroffset = gmmktime($hours, $minutes, 0, $mon, $mday, $year) - mktime($hours, $minutes, 0, $mon, $mday, $year);
    $real_dst = timezone::is_dst($timestamp, $timezone_key);
    return $gmtoffset - $serveroffset + ($real_dst ? 3600 : 0);
}