Esempio n. 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'));
}