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