mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-11 00:18:25 +01:00
first half of the xmlrpc fixes
This commit is contained in:
parent
7e53418201
commit
b11e686618
@ -1828,24 +1828,49 @@
|
|||||||
{
|
{
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
if (isset($params['start']) && ($datearr = $this->iso86012date($params['start'])))
|
||||||
$syear = $params['syear'];
|
|
||||||
$smonth = $params['smonth'];
|
|
||||||
$sday = $params['sday'];
|
|
||||||
$eyear = (isset($params['eyear'])?$params['eyear']:0);
|
|
||||||
$emonth = (isset($params['emonth'])?$params['emonth']:0);
|
|
||||||
$eday = (isset($params['eday'])?$params['eday']:0);
|
|
||||||
$owner_id = (isset($params['owner'])?$params['owner']:0);
|
|
||||||
if($owner_id==0 && $this->is_group)
|
|
||||||
{
|
{
|
||||||
unset($owner_id);
|
$syear = $datearr['year'];
|
||||||
$owner_id = $this->g_owner;
|
$smonth = $datearr['month'];
|
||||||
if($this->debug)
|
$sday = $datearr['mday'];
|
||||||
|
$params['xmlrpc'] = True;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$syear = $params['syear'];
|
||||||
|
$smonth = $params['smonth'];
|
||||||
|
$sday = $params['sday'];
|
||||||
|
}
|
||||||
|
if (isset($params['end']) && ($datearr = $this->iso86012date($params['end'])))
|
||||||
|
{
|
||||||
|
$eyear = $datearr['year'];
|
||||||
|
$emonth = $datearr['month'];
|
||||||
|
$eday = $datearr['mday'];
|
||||||
|
$params['xmlrpc'] = True;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$eyear = (isset($params['eyear'])?$params['eyear']:0);
|
||||||
|
$emonth = (isset($params['emonth'])?$params['emonth']:0);
|
||||||
|
$eday = (isset($params['eday'])?$params['eday']:0);
|
||||||
|
}
|
||||||
|
if (!isset($params['owner']) && @$params['xmlrpc'])
|
||||||
|
{
|
||||||
|
$owner_id = $GLOBALS['phpgw_info']['user']['user_id'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$owner_id = (isset($params['owner'])?$params['owner']:0);
|
||||||
|
if($owner_id==0 && $this->is_group)
|
||||||
{
|
{
|
||||||
echo '<!-- owner_id in ('.implode(',',$owner_id).') -->'."\n";
|
unset($owner_id);
|
||||||
|
$owner_id = $this->g_owner;
|
||||||
|
if($this->debug)
|
||||||
|
{
|
||||||
|
echo '<!-- owner_id in ('.implode(',',$owner_id).') -->'."\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$eyear && !$emonth && !$eday)
|
if(!$eyear && !$emonth && !$eday)
|
||||||
{
|
{
|
||||||
$edate = mktime(23,59,59,$smonth + 1,$sday + 1,$syear);
|
$edate = mktime(23,59,59,$smonth + 1,$sday + 1,$syear);
|
||||||
@ -1874,7 +1899,7 @@
|
|||||||
}
|
}
|
||||||
$edate = mktime(23,59,59,$emonth,$eday,$eyear);
|
$edate = mktime(23,59,59,$emonth,$eday,$eyear);
|
||||||
}
|
}
|
||||||
|
//echo "<p>bocalendar::store_to_cache(".print_r($params,True).") syear=$syear, smonth=$smonth, sday=$sday, eyear=$eyear, emonth=$emonth, eday=$eday, xmlrpc='$param[xmlrpc]'</p>\n";
|
||||||
if($this->debug)
|
if($this->debug)
|
||||||
{
|
{
|
||||||
echo '<!-- Start Date : '.sprintf("%04d%02d%02d",$syear,$smonth,$sday).' -->'."\n";
|
echo '<!-- Start Date : '.sprintf("%04d%02d%02d",$syear,$smonth,$sday).' -->'."\n";
|
||||||
@ -1908,6 +1933,7 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$cache_start = intval(sprintf("%04d%02d%02d",$syear,$smonth,$sday));
|
||||||
if($c_cached_ids)
|
if($c_cached_ids)
|
||||||
{
|
{
|
||||||
for($i=0;$i<$c_cached_ids;$i++)
|
for($i=0;$i<$c_cached_ids;$i++)
|
||||||
@ -1940,6 +1966,10 @@
|
|||||||
}
|
}
|
||||||
$this->cached_events[$j][] = $event;
|
$this->cached_events[$j][] = $event;
|
||||||
}
|
}
|
||||||
|
if ($j >= $cache_start && (@$params['no_doubles'] || @$params['xmlrpc']))
|
||||||
|
{
|
||||||
|
break; // add event only once on it's startdate
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1956,13 +1986,10 @@
|
|||||||
echo '<!-- Cached Events ID: '.$cached_event_ids_repeating[$i].' ('.sprintf("%04d%02d%02d",$this->repeating_events[$i]['start']['year'],$this->repeating_events[$i]['start']['month'],$this->repeating_events[$i]['start']['mday']).') -->'."\n";
|
echo '<!-- Cached Events ID: '.$cached_event_ids_repeating[$i].' ('.sprintf("%04d%02d%02d",$this->repeating_events[$i]['start']['year'],$this->repeating_events[$i]['start']['month'],$this->repeating_events[$i]['start']['mday']).') -->'."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// $edate -= $GLOBALS['phpgw']->datetime->tz_offset;
|
|
||||||
// for($date=mktime(0,0,0,$smonth,$sday,$syear) - $GLOBALS['phpgw']->datetime->tz_offset;$date<=$edate;$date += 86400)
|
|
||||||
for($date=mktime(0,0,0,$smonth,$sday,$syear);$date<=$edate;$date += 86400)
|
for($date=mktime(0,0,0,$smonth,$sday,$syear);$date<=$edate;$date += 86400)
|
||||||
{
|
{
|
||||||
if($this->debug)
|
if($this->debug)
|
||||||
{
|
{
|
||||||
// $search_date = $GLOBALS['phpgw']->common->show_date($date,'Ymd');
|
|
||||||
$search_date = date('Ymd',$date);
|
$search_date = date('Ymd',$date);
|
||||||
echo '<!-- Calling check_repeating_events('.$search_date.') -->'."\n";
|
echo '<!-- Calling check_repeating_events('.$search_date.') -->'."\n";
|
||||||
}
|
}
|
||||||
@ -1982,11 +2009,108 @@
|
|||||||
{
|
{
|
||||||
if(is_array($this->cached_events[$j]))
|
if(is_array($this->cached_events[$j]))
|
||||||
{
|
{
|
||||||
$retval[$j] = $this->cached_events[$j];
|
if ($params['xmlrpc'])
|
||||||
|
{
|
||||||
|
foreach($this->cached_events[$j] as $event)
|
||||||
|
{
|
||||||
|
$retval[] = $this->xmlrpc_prepare($event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$retval[$j] = $this->cached_events[$j];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//echo "store_to_cache(".print_r($params,True).")=<pre>".print_r($retval,True)."</pre>\n";
|
||||||
return $retval;
|
return $retval;
|
||||||
// return $this->cached_events;
|
}
|
||||||
|
|
||||||
|
function xmlrpc_prepare(&$event)
|
||||||
|
{
|
||||||
|
foreach(array('start','end','modtime','recur_enddate') as $name)
|
||||||
|
{
|
||||||
|
if (isset($event[$name]))
|
||||||
|
{
|
||||||
|
$event[$name] = $this->date2iso8601($event[$name]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (is_array($event['recur_exception']))
|
||||||
|
{
|
||||||
|
foreach($event['recur_exception'] as $key => $timestamp)
|
||||||
|
{
|
||||||
|
$event['recur_exception'][$key] = $this->date2iso8601($timestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static $user_cache = array();
|
||||||
|
|
||||||
|
if (!is_object($GLOBALS['phpgw']->perferences))
|
||||||
|
{
|
||||||
|
$GLOBALS['phpgw']->perferences = CreateObject('phpgwapi.preferences');
|
||||||
|
}
|
||||||
|
foreach($event['participants'] as $user_id => $status)
|
||||||
|
{
|
||||||
|
if (!isset($user_cache[$user_id]))
|
||||||
|
{
|
||||||
|
$user_cache[$user_id] = array(
|
||||||
|
'name' => $GLOBALS['phpgw']->common->grab_owner_name($user_id),
|
||||||
|
'email' => $GLOBALS['phpgw']->perferences->email_address($user_id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$event['participants'][$user_id] = $user_cache[$user_id] + array(
|
||||||
|
'status' => $status,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (is_array($event['alarm']))
|
||||||
|
{
|
||||||
|
foreach($event['alarm'] as $id => $alarm)
|
||||||
|
{
|
||||||
|
$event['alarm'][$id]['time'] = $this->date2iso8601($alarm['time']);
|
||||||
|
if ($alarm['owner'] != $GLOBALS['phpgw_info']['user']['account_id'])
|
||||||
|
{
|
||||||
|
unset($event['alarm'][$id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!is_object($GLOBALS['phpgw']->categories))
|
||||||
|
{
|
||||||
|
$GLOBALS['phpgw']->categories = CreateObject('phpgwapi.categories');
|
||||||
|
}
|
||||||
|
$cats = explode(',',$event['category']);
|
||||||
|
$event['category'] = array();
|
||||||
|
foreach($cats as $cat)
|
||||||
|
{
|
||||||
|
if ($cat)
|
||||||
|
{
|
||||||
|
$event['category'][$cat] = $GLOBALS['phpgw']->categories->id2name($cat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $event;
|
||||||
|
}
|
||||||
|
|
||||||
|
function date2iso8601($date)
|
||||||
|
{
|
||||||
|
if (!is_array($date))
|
||||||
|
{
|
||||||
|
return date('Y-m-d\TH:i:s',$date);
|
||||||
|
}
|
||||||
|
return sprintf('%04d-%02d-%02dT%02d:%02d:%02d',
|
||||||
|
$date['year'],$date['month'],$date['mday'],
|
||||||
|
$date['hour'],$date['min'],$date['sec']);
|
||||||
|
}
|
||||||
|
|
||||||
|
function iso86012date($isodate,$timestamp=False)
|
||||||
|
{
|
||||||
|
if (($arr = split('[-:T]',$isodate)) && count($arr) == 6)
|
||||||
|
{
|
||||||
|
foreach(array('year','month','mday','hour','min','sec') as $n => $name)
|
||||||
|
{
|
||||||
|
$date[$name] = intval($arr[$n]);
|
||||||
|
}
|
||||||
|
return $timestamp ? mktime($date['hour'],$date['min'],$date['sec'],
|
||||||
|
$date['month'],$date['mday'],$date['year']) : $date;
|
||||||
|
}
|
||||||
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Begin Appsession Data */
|
/* Begin Appsession Data */
|
||||||
|
Loading…
Reference in New Issue
Block a user