mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-03 12:00:09 +01:00
Combination fixes to the iCal, or more fields added for the export. A single iCal is being generated correctly. Still Need to work on the rrule.
This commit is contained in:
parent
8353d7e678
commit
cf7ef7bdc7
@ -1629,7 +1629,7 @@
|
|||||||
case MSG_TENTATIVE:
|
case MSG_TENTATIVE:
|
||||||
case MSG_ACCEPTED:
|
case MSG_ACCEPTED:
|
||||||
$action_date = $old_event_date;
|
$action_date = $old_event_date;
|
||||||
$body = 'On '.$phpgw->common->show_date(time() - $new_tz_offset).' '.$phpgw->common->grab_owner_name($phpgw_info['user']['account_id']).' '.$action.' your meeting request for '.$old_event_date;
|
$body = 'On '.$GLOBALS['phpgw']->common->show_date(time() - $new_tz_offset).' '.$GLOBALS['phpgw']->common->grab_owner_name($GLOBALS['phpgw_info']['user']['account_id']).' '.$action.' your meeting request for '.$old_event_date;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$subject = 'Calendar Event ('.$action.') #'.$event_id.': '.$action_date.' (L)';
|
$subject = 'Calendar Event ('.$action.') #'.$event_id.': '.$action_date.' (L)';
|
||||||
@ -1649,6 +1649,25 @@
|
|||||||
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'] = $temp_dateformat;
|
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'] = $temp_dateformat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function switch_status($status)
|
||||||
|
{
|
||||||
|
switch($status)
|
||||||
|
{
|
||||||
|
case 'U':
|
||||||
|
return 0;
|
||||||
|
break;
|
||||||
|
case 'A':
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
case 'R':
|
||||||
|
return 2;
|
||||||
|
break;
|
||||||
|
case 'T':
|
||||||
|
return 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function export_event($l_event_id=0)
|
function export_event($l_event_id=0)
|
||||||
{
|
{
|
||||||
$event_id = ($l_event_id?$l_event_id:$GLOBALS['HTTP_GET_VARS']['cal_id']);
|
$event_id = ($l_event_id?$l_event_id:$GLOBALS['HTTP_GET_VARS']['cal_id']);
|
||||||
@ -1676,13 +1695,48 @@
|
|||||||
$event = $this->so->read_entry($event_id);
|
$event = $this->so->read_entry($event_id);
|
||||||
|
|
||||||
$icalendar->set_var($ical_event['uid'],'value','phpGW/'.$event['id']);
|
$icalendar->set_var($ical_event['uid'],'value','phpGW/'.$event['id']);
|
||||||
|
$ical_event['priority'] = $event['priority'];
|
||||||
|
$ical_event['class'] = intval($event['public']);
|
||||||
|
// $ical_event['class']['value'] = 1;
|
||||||
$icalendar->set_var($ical_event['description'],'value',$event['title']);
|
$icalendar->set_var($ical_event['description'],'value',$event['title']);
|
||||||
$icalendar->set_var($ical_event['summary'],'value',$event['description']);
|
$icalendar->set_var($ical_event['summary'],'value',$event['description']);
|
||||||
$dtstart_mktime = $this->maketime($event['start']) - $this->datetime->tz_offset;
|
$dtstart_mktime = $this->maketime($event['start']) - $this->datetime->tz_offset;
|
||||||
$icalendar->parse_value($ical_event,'dtstart',date('Ymd\THis\Z',$dtstart_mktime),'event');
|
$icalendar->parse_value($ical_event,'dtstart',date('Ymd\THis\Z',$dtstart_mktime),'vevent');
|
||||||
$dtend_mktime = $this->maketime($event['end']) - $this->datetime->tz_offset;
|
$dtend_mktime = $this->maketime($event['end']) - $this->datetime->tz_offset;
|
||||||
$icalendar->parse_value($ical_event,'dtend',date('Ymd\THis\Z',$dtend_mktime),'event');
|
$icalendar->parse_value($ical_event,'dtend',date('Ymd\THis\Z',$dtend_mktime),'vevent');
|
||||||
|
$mod_mktime = $this->maketime($event['modtime']) - $this->datetime->tz_offset;
|
||||||
|
$icalendar->parse_value($ical_event,'last_modified',date('Ymd\THis\Z',$mod_mktime),'vevent');
|
||||||
|
if(count($event['participants']) > 1)
|
||||||
|
{
|
||||||
|
$db = $GLOBALS['phpgw']->db;
|
||||||
|
@reset($event['participants']);
|
||||||
|
while(list($part,$status) = each($event['participants']))
|
||||||
|
{
|
||||||
|
$db->query('select account_firstname,account_lastname from phpgw_accounts where account_id='.$part,__LINE__,__FILE__);
|
||||||
|
$db->next_record();
|
||||||
|
$name = $db->f('account_firstname').' '.$db->f('account_lastname');
|
||||||
|
$owner_status = $icalendar->switch_partstat(intval($this->switch_status($event['participants'][$part])));
|
||||||
|
$owner_mailto = 'mpeters@satx.rr.com';
|
||||||
|
$str = 'CN="'.$name.'";PARTSTAT='.$owner_status.':'.$owner_mailto;
|
||||||
|
if($part == $event['owner'])
|
||||||
|
{
|
||||||
|
$str = 'ROLE=CHAIR;'.$str;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$str = 'ROLE=REQ-PARTICIPANT;'.$str;
|
||||||
|
}
|
||||||
|
$icalendar->parse_value($ical_event,'attendee',$str,'vevent');
|
||||||
|
if($part == $event['owner'])
|
||||||
|
{
|
||||||
|
$icalendar->parse_value($ical_event,'organizer',$str,'vevent');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!$event['recur_type'])
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
$ical_events[] = $ical_event;
|
$ical_events[] = $ical_event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ class boicalendar
|
|||||||
'class' => Array(
|
'class' => Array(
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'to_text' => True,
|
'to_text' => True,
|
||||||
'vevent' => Array(
|
'vevent' => Array(
|
||||||
'state' => 'optional',
|
'state' => 'optional',
|
||||||
'multiples' => False
|
'multiples' => False
|
||||||
),
|
),
|
||||||
@ -1020,6 +1020,15 @@ class boicalendar
|
|||||||
'x-type' => True
|
'x-type' => True
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
'last_modified' => Array(
|
||||||
|
'type' => 'function',
|
||||||
|
'function' => 'switch_date',
|
||||||
|
'quoted' => False,
|
||||||
|
'to_text' => False,
|
||||||
|
'properties' => Array(
|
||||||
|
'last_modified' => True
|
||||||
|
)
|
||||||
|
),
|
||||||
'mailto' => Array(
|
'mailto' => Array(
|
||||||
'type' => 'function',
|
'type' => 'function',
|
||||||
'function' => 'switch_mailto',
|
'function' => 'switch_mailto',
|
||||||
@ -1045,7 +1054,8 @@ class boicalendar
|
|||||||
'quoted' => False,
|
'quoted' => False,
|
||||||
'to_text' => False,
|
'to_text' => False,
|
||||||
'properties' => Array(
|
'properties' => Array(
|
||||||
'attendee' => True
|
'attendee' => True,
|
||||||
|
'organizer' => True
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
'range' => Array(
|
'range' => Array(
|
||||||
@ -1072,7 +1082,8 @@ class boicalendar
|
|||||||
'quoted' => False,
|
'quoted' => False,
|
||||||
'to_text' => False,
|
'to_text' => False,
|
||||||
'properties' => Array(
|
'properties' => Array(
|
||||||
'attendee' => True
|
'attendee' => True,
|
||||||
|
'organizer' => True
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
'rsvp' => Array(
|
'rsvp' => Array(
|
||||||
@ -1286,7 +1297,7 @@ class boicalendar
|
|||||||
$str = str_replace("\\N","\n",$str);
|
$str = str_replace("\\N","\n",$str);
|
||||||
$str = str_replace("\\n","\n",$str);
|
$str = str_replace("\\n","\n",$str);
|
||||||
$str = str_replace("\\\\","\\",$str);
|
$str = str_replace("\\\\","\\",$str);
|
||||||
return $str;
|
return "$str";
|
||||||
}
|
}
|
||||||
|
|
||||||
function to_text($str)
|
function to_text($str)
|
||||||
@ -1295,7 +1306,7 @@ class boicalendar
|
|||||||
$str = str_replace(",","\\,",$str);
|
$str = str_replace(",","\\,",$str);
|
||||||
$str = str_replace(";","\\;",$str);
|
$str = str_replace(";","\\;",$str);
|
||||||
$str = str_replace("\n","\\n",$str);
|
$str = str_replace("\n","\\n",$str);
|
||||||
return $str;
|
return "$str";
|
||||||
}
|
}
|
||||||
|
|
||||||
function from_dir($str)
|
function from_dir($str)
|
||||||
@ -1401,9 +1412,9 @@ class boicalendar
|
|||||||
'param' => $majortype,
|
'param' => $majortype,
|
||||||
'value' => $temp[3]
|
'value' => $temp[3]
|
||||||
);
|
);
|
||||||
$value = $temp[1];
|
$value = str_replace(':MAILTO','',$temp[1]);
|
||||||
}
|
}
|
||||||
while(ereg('(([A-Z\-]*)[=]([[:alnum:] \_\)\(\/\$\.\,\:\\\|\*\&\^\%\#\!\~\"\?\&\@\-]*))([\;]?)(.*)',$value,$temp))
|
while(ereg('(([A-Z\-]*)[=]([[:alnum:] \_\)\(\/\$\.\,\:\\\|\*\&\^\%\#\!\~\"\?\&\@\<\>\-]*))([\;]?)(.*)',$value,$temp))
|
||||||
{
|
{
|
||||||
$this->debug('Value : '._debug_array($temp));
|
$this->debug('Value : '._debug_array($temp));
|
||||||
$this->debug('Param '.$temp[2].' Value : '.$temp[3]);
|
$this->debug('Param '.$temp[2].' Value : '.$temp[3]);
|
||||||
@ -1418,7 +1429,7 @@ class boicalendar
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
while(ereg('(([A-Z\-]*)[=]([[:alnum:] \_\)\(\/\$\.\,\:\\\|\*\&\^\%\#\!\~\"\?\&\@\-]*))([\;]?)(.*)',$value,$temp))
|
while(ereg('(([A-Z\-]*)[=]([[:alnum:] \_\)\(\/\$\.\,\:\\\|\*\&\^\%\#\!\~\"\?\&\@\<\>\-]*))([\;]?)(.*)',$value,$temp))
|
||||||
{
|
{
|
||||||
$this->debug('Value : '._debug_array($temp));
|
$this->debug('Value : '._debug_array($temp));
|
||||||
$this->debug('Param '.$temp[2].' Value : '.$temp[3]);
|
$this->debug('Param '.$temp[2].' Value : '.$temp[3]);
|
||||||
@ -1513,11 +1524,11 @@ class boicalendar
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->debug('Majortype : '.$majortype);
|
$this->debug('Majortype : '.$majortype);
|
||||||
$this->debug('Property : '.$this->property[$majortype]['type']);
|
$this->debug('Property : '.$this->property[$majortype]['type']);
|
||||||
if($this->property[$majortype]['type'] == 'date-time')
|
if($this->property[$majortype]['type'] == 'date-time')
|
||||||
{
|
{
|
||||||
$this->debug('Got a DATE-TIME type!');
|
$this->debug('Got a DATE-TIME type!');
|
||||||
$t_var = $var[$majortype];
|
$t_var = $var[$majortype];
|
||||||
unset($var[$majortype]);
|
unset($var[$majortype]);
|
||||||
reset($t_var);
|
reset($t_var);
|
||||||
@ -1574,16 +1585,16 @@ class boicalendar
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$param_array = @$this->parameter[$key];
|
$param_array = @$this->parameter[$key];
|
||||||
$type = @$param_array['type'];
|
$type = @$this->parameter[$key]['type'];
|
||||||
if($type == 'date-time')
|
if($type == 'date-time')
|
||||||
{
|
{
|
||||||
$include_datetime = True;
|
$include_datetime = True;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$quote = (@$param_array['quoted']?'"':'');
|
$quote = (@$this->parameter[$key]['quoted']?'"':'');
|
||||||
if(!empty($event[$key]) && @$param_array['properties'][$property])
|
if(isset($event[$key]) && @$this->parameter[$key]['properties'][$property])
|
||||||
{
|
{
|
||||||
$change_text = @$param_array['to_text'];
|
$change_text = @$this->parameter[$key]['to_text'];
|
||||||
$value = $event[$key];
|
$value = $event[$key];
|
||||||
if($change_text && $type == 'text')
|
if($change_text && $type == 'text')
|
||||||
{
|
{
|
||||||
@ -1595,9 +1606,12 @@ class boicalendar
|
|||||||
$str .= ';'.str_replace('_','-',strtoupper($key)).'='.$quote.$this->to_dir($value).$quote;
|
$str .= ';'.str_replace('_','-',strtoupper($key)).'='.$quote.$this->to_dir($value).$quote;
|
||||||
break;
|
break;
|
||||||
case 'function':
|
case 'function':
|
||||||
|
// $this->debug_str = True;
|
||||||
$str .= ';'.str_replace('_','-',strtoupper($key)).'=';
|
$str .= ';'.str_replace('_','-',strtoupper($key)).'=';
|
||||||
$function = @$param_array['function'];
|
$function = $this->parameter[$key]['function'];
|
||||||
|
$this->debug($key.' Function Param : '.$value);
|
||||||
$str .= $quote.$this->$function($value).$quote;
|
$str .= $quote.$this->$function($value).$quote;
|
||||||
|
// $this->debug_str = False;
|
||||||
break;
|
break;
|
||||||
case 'text':
|
case 'text':
|
||||||
case 'string':
|
case 'string':
|
||||||
@ -1759,7 +1773,7 @@ class boicalendar
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'text':
|
case 'text':
|
||||||
if(!empty($event[$value]))
|
if(isset($event[$value]))
|
||||||
{
|
{
|
||||||
if(@$this->parameter[$key]['type'] != 'function')
|
if(@$this->parameter[$key]['type'] != 'function')
|
||||||
{
|
{
|
||||||
@ -1870,7 +1884,7 @@ class boicalendar
|
|||||||
}
|
}
|
||||||
elseif(is_int($var))
|
elseif(is_int($var))
|
||||||
{
|
{
|
||||||
switch($var)
|
switch(intval($var))
|
||||||
{
|
{
|
||||||
case PRIVATE:
|
case PRIVATE:
|
||||||
return 'PRIVATE';
|
return 'PRIVATE';
|
||||||
@ -2207,12 +2221,16 @@ class boicalendar
|
|||||||
}
|
}
|
||||||
elseif(is_array($var))
|
elseif(is_array($var))
|
||||||
{
|
{
|
||||||
return 'MAILTO:'.$var['user'].'@'.$var['host'];
|
// return 'MAILTO:'.$var['user'].'@'.$var['host'];
|
||||||
|
return $var['user'].'@'.$var['host'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function switch_partstat($var)
|
function switch_partstat($var)
|
||||||
{
|
{
|
||||||
|
// $this->debug_str = True;
|
||||||
|
$this->debug('PARTSTAT = '.$var);
|
||||||
|
// $this->debug_str = False;
|
||||||
if(is_string($var))
|
if(is_string($var))
|
||||||
{
|
{
|
||||||
switch($var)
|
switch($var)
|
||||||
@ -2245,7 +2263,7 @@ class boicalendar
|
|||||||
}
|
}
|
||||||
elseif(is_int($var))
|
elseif(is_int($var))
|
||||||
{
|
{
|
||||||
switch($var)
|
switch(intval($var))
|
||||||
{
|
{
|
||||||
case NEEDS_ACTION:
|
case NEEDS_ACTION:
|
||||||
return 'NEEDS-ACTION';
|
return 'NEEDS-ACTION';
|
||||||
|
Loading…
Reference in New Issue
Block a user