Skip to content
Snippets Groups Projects
Commit a2c28271 authored by Kurund Jalmi's avatar Kurund Jalmi
Browse files

Merge pull request #1847 from eileenmcnaughton/CRM-9683

CRM-9683 - add timezone functions (doesn't close) , CRM-13593 minore api fix (closes)
parents 8ac965e5 9465d059
Branches
Tags
No related merge requests found
......@@ -163,5 +163,23 @@ abstract class CRM_Utils_System_Base {
*/
function userLoginFinalize($params = array()){
}
/**
* Set timezone in mysql so that timestamp fields show the correct time
*/
function setMySQLTimeZone(){
$timeZoneOffset = $this->getTimeZoneOffset();
if($timeZoneOffset){
$sql = "SET time_zone = '$timeZoneOffset'";
CRM_Core_DAO::executequery($sql);
}
}
/**
* Get timezone from CMS
* @return boolean|string
*/
function getTimeZoneOffset(){
}
}
......@@ -1065,6 +1065,32 @@ AND u.status = 1
}
}
/**
* Get timezone from Drupal
* @return boolean|string
*/
function getTimeZoneOffset(){
global $user;
if (variable_get('configurable_timezones', 1) && $user->uid && strlen($user->timezone)) {
$timezone = $user->timezone;
} else {
$timezone = variable_get('date_default_timezone', null);
}
$tzObj = new DateTimeZone($timezone);
$dateTime = new DateTime("now", $tzObj);
$tz = $tzObj->getOffset($dateTime);
if(empty($tz)){
return false;
}
$timeZoneOffset = sprintf("%02d:%02d", $tz / 3600, ($tz/60)%60 );
if($timeZoneOffset > 0){
$timeZoneOffset = '+' . $timeZoneOffset;
}
return $timeZoneOffset;
}
/**
* Reset any system caches that may be required for proper CiviCRM
* integration.
......
......@@ -180,7 +180,7 @@ class CRM_Utils_System_Drupal6 extends CRM_Utils_System_DrupalBase {
if (!$row) {
return;
}
$user = NULL;
if (!empty($row)) {
......@@ -1016,6 +1016,29 @@ class CRM_Utils_System_Drupal6 extends CRM_Utils_System_DrupalBase {
og_delete_subscription( $ogID, $drupalID );
}
/**
* Get timezone from Drupal
* @return boolean|string
*/
function getTimeZoneOffset(){
global $user;
if (variable_get('configurable_timezones', 1) && $user->uid && strlen($user->timezone)) {
$timezone = $user->timezone;
} else {
$timezone = variable_get('date_default_timezone', null);
}
if(empty($timezone)){
return false;
}
$hour = $user->timezone / 3600;
$timeZoneOffset = sprintf("%02d:%02d", $timezone / 3600, ($timezone/60)%60 );
if($timeZoneOffset > 0){
$timeZoneOffset = '+' . $timeZoneOffset;
}
return $timeZoneOffset;
}
/**
* Reset any system caches that may be required for proper CiviCRM
* integration.
......
......@@ -509,7 +509,7 @@ function _civicrm_api_call_nested_api(&$params, &$result, $action, $entity, $ver
if (array_key_exists(0, $newparams)) {
$genericParams = $subParams;
// it is a numerically indexed array - ie. multiple creates
foreach ($newparams as $entity => $entityparams) {
foreach ($newparams as $entityparams) {
$subParams = array_merge($genericParams, $entityparams);
_civicrm_api_replace_variables($subAPI[1], $subaction, $subParams, $result['values'][$idIndex], $separator);
$result['values'][$result['id']][$field][] = civicrm_api($subEntity, $subaction, $subParams);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment