retrieveSettings("notify"); /////////////////////////////////////////////////////////////////////////////// //// HELPER FUNCTIONS function lookupTimezone_special($userOffset){ $defaultZones = array('America/New_York'=>1, 'America/Los_Angeles'=>1,'America/Chicago'=>1, 'America/Denver'=>1,'America/Anchorage'=>1, 'America/Phoenix'=>1, 'Europe/Amsterdam'=>1,'Europe/Athens'=>1,'Europe/London'=>1, 'Australia/Sydney'=>1, 'Australia/Perth'=>1, 'Asia/Tokyo'=>1); global $timezones; $gmtOffset = $userOffset; $selectedZone = ' '; foreach($timezones as $zoneName=>$zone){ if($zone['gmtOffset'] == $gmtOffset){ $selectedZone = $zoneName; } if(!empty($defaultZones[$selectedZone]) ){ return $selectedZone; } } return $selectedZone; } //// END HELPER FUNCTIONS /////////////////////////////////////////////////////////////////////////////// if(isset($_REQUEST['userOffset'])) { // ajax call to lookup timezone echo 'userTimezone = "' . lookupTimezone_special($_REQUEST['userOffset']) . '";'; die(); } $admin = new Administration(); $admin->retrieveSettings(); $sugar_smarty = new Sugar_Smarty(); $sugar_smarty->assign('MOD', $mod_strings); $sugar_smarty->assign('APP', $app_strings); $selectedZone = $current_user->getPreference('timezone'); if(empty($selectedZone) && !empty($_REQUEST['gmto'])) { $selectedZone = lookupTimezone_special(-1 * $_REQUEST['gmto']); } $timezoneOptions = ''; ksort($timezones); foreach($timezones as $key => $value) { if( $selectedZone== $key) { $selected = " SELECTED"; } else { $selected = ""; } if(!empty($value['dstOffset'])) { $dst = " (+DST)"; } else { $dst = ""; } $gmtOffset = ($value['gmtOffset'] / 60); if(!strstr($gmtOffset,'-')) { $gmtOffset = "+".$gmtOffset; } $timezoneOptions .= ""; } $sugar_smarty->assign('TIMEZONEOPTIONS', $timezoneOptions); $sugar_smarty->display('modules/Users/SetTimezone.tpl');