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