All pastes #234629 Raw Edit

Something

public text v1 · immutable
·published 2006-11-02 19:01 UTC
rendered paste body
function xarMLS_userOffset($timestamp = null)
{
    static $offset; // minimal information for timezone offset handling
    static $timezone; // more information for daylight saving

    if (!isset($offset)) {
    	
    // CHECKME: use dynamicdata for roles, module user variable and/or session variable
    //          (see also 'locale' in xarUserGetNavigationLocale())
        // get the correct timezone offset for this user
        if (xarUserIsLoggedIn()) {
            $offset = xarUserGetVar('timezone');
                          // get the actual timezone for the user (in addition to the timezone offset)
      
                if (isset($offset) && !is_numeric($offset) && !empty($offset)) {
                $info = @unserialize($offset);

                if (!empty($info) && is_array($info)) {
                    $offset = isset($info['offset']) ? $info['offset'] : null;
                    $timezone = isset($info['timezone']) ? $info['timezone'] : null;
                }
                
            } 
                       
        }
  //Anon User non logged in.

        if (!$offset) {
            // use default time offset for this site
            $offset = $GLOBALS['xarMLS_defaultTimeOffset'];
            // use default timezone for this site
            $timezone = $GLOBALS['xarMLS_defaultTimeZone'];
            
        }
      
    }
    
    // this will depend on the current $timestamp
    if (isset($timestamp) && !empty($timezone) && function_exists('xarModAPIFunc')) {
        $adjust = xarModAPIFunc('base','user','dstadjust',
                                array('timezone' => $timezone,
                                      // pass the timestamp *with* the offset
                                      'time'     => $timestamp + $offset * 3600));
        
    } else {
    	
        $adjust = 0;
    }

    return $offset + $adjust;
}