mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 23:00:56 +01:00
Change to use associated arrays for internal storage of the calendar events. ** This is geared at SOAP support! ** ** This is now SOAP compatible! **
This commit is contained in:
parent
14a4569328
commit
f3397a4e27
@ -17,11 +17,56 @@
|
||||
class bocalendar
|
||||
{
|
||||
var $public_functions = Array(
|
||||
'read_entries' => True,
|
||||
'read_entry' => True,
|
||||
'delete_entry' => True,
|
||||
'update' => True,
|
||||
'preferences' => True
|
||||
'preferences' => True,
|
||||
'assoc_array' => True,
|
||||
'store_to_cache' => True
|
||||
);
|
||||
|
||||
var $soap_functions = Array(
|
||||
'read_entry' => Array(
|
||||
'in' => Array(
|
||||
'int'
|
||||
),
|
||||
'out' => Array(
|
||||
'SOAPStruct'
|
||||
)
|
||||
),
|
||||
'delete_entry' => Array(
|
||||
'in' => Array(
|
||||
'int'
|
||||
),
|
||||
'out' => Array(
|
||||
'int'
|
||||
)
|
||||
),
|
||||
'update' => Array(
|
||||
'in' => Array(
|
||||
'array',
|
||||
'array',
|
||||
'array',
|
||||
'array',
|
||||
'array'
|
||||
),
|
||||
'out' => Array(
|
||||
'array'
|
||||
)
|
||||
),
|
||||
'store_to_cache' => Array(
|
||||
'in' => Array(
|
||||
'int',
|
||||
'int',
|
||||
'int',
|
||||
'int',
|
||||
'int',
|
||||
'int'
|
||||
),
|
||||
'out' => Array(
|
||||
'SOAPStruct'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
var $debug = False;
|
||||
@ -48,6 +93,8 @@
|
||||
var $modified;
|
||||
var $deleted;
|
||||
var $added;
|
||||
|
||||
var $soap = False;
|
||||
|
||||
var $use_session = False;
|
||||
|
||||
@ -180,7 +227,8 @@
|
||||
{
|
||||
if($this->check_perms(PHPGW_ACL_READ))
|
||||
{
|
||||
return $this->so->read_entry($id);
|
||||
$event = $this->so->read_entry($id);
|
||||
return $event;
|
||||
}
|
||||
}
|
||||
|
||||
@ -210,7 +258,7 @@
|
||||
{
|
||||
$event_id = $this->so->cal->deleted_events[$i];
|
||||
$event = $this->so->read_entry($event_id);
|
||||
$this->send_update(MSG_DELETED,$event->participants,$event);
|
||||
$this->send_update(MSG_DELETED,$event['participants'],$event);
|
||||
}
|
||||
$this->so->expunge();
|
||||
}
|
||||
@ -219,35 +267,6 @@
|
||||
function search_keywords($keywords)
|
||||
{
|
||||
return $this->so->list_events_keyword($keywords);
|
||||
/*
|
||||
$event_ids = $this->so->list_events_keyword($keywords);
|
||||
$event_ids_repeating = $this->so->list_repeated_events_keyword($keywords);
|
||||
|
||||
$c_event_ids = count($cached_event_ids);
|
||||
$c_event_ids_repeating = count($cached_event_ids_repeating);
|
||||
|
||||
if($this->debug)
|
||||
{
|
||||
echo "events cached : $c_event_ids : for : ".sprintf("%04d%02d%02d",$syear,$smonth,$sday)."<br>\n";
|
||||
echo "repeating events cached : $c_event_ids_repeating : for : ".sprintf("%04d%02d%02d",$syear,$smonth,$sday)."<br>\n";
|
||||
}
|
||||
|
||||
if($c_cached_ids)
|
||||
{
|
||||
for($i=0;$i<$c_cached_ids;$i++)
|
||||
{
|
||||
$cached_events[] = $this->so->read_entry($event_ids[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
if($c_event_ids_repeating)
|
||||
{
|
||||
for($i=0;$i<$c_event_ids_repeating;$i++)
|
||||
{
|
||||
$cached_events[] = $this->so->read_entry($event_ids_repeating[$i]);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
function update($p_cal=0,$p_participants=0,$p_start=0,$p_end=0,$p_recur_enddata=0)
|
||||
@ -260,6 +279,12 @@
|
||||
$end = ($p_end?$p_end:$end);
|
||||
$recur_enddate = ($p_recur_enddate?$p_recur_enddate:$recur_enddate);
|
||||
|
||||
$send_to_ui = True;
|
||||
if($p_cal && $p_participants && $p_start && $p_end && $p_recur_enddata)
|
||||
{
|
||||
$send_to_ui = False;
|
||||
}
|
||||
|
||||
$overlapping_events = False;
|
||||
|
||||
$ui = CreateObject('calendar.uicalendar');
|
||||
@ -312,7 +337,6 @@
|
||||
$recur_enddate['month'] = 0;
|
||||
$recur_enddate['mday'] = 0;
|
||||
}
|
||||
$cal['recur_data'] = $cal['rpt_sun'] + $cal['rpt_mon'] + $cal['rpt_tue'] + $cal['rpt_wed'] + $cal['rpt_thu'] + $cal['rpt_fri'] + $cal['rpt_sat'];
|
||||
|
||||
switch($cal['recur_type'])
|
||||
{
|
||||
@ -323,6 +347,7 @@
|
||||
$this->so->set_recur_daily($recur_enddate['year'],$recur_enddate['month'],$recur_enddate['mday'],$cal['recur_interval']);
|
||||
break;
|
||||
case MCAL_RECUR_WEEKLY:
|
||||
$cal['recur_data'] = $cal['rpt_sun'] + $cal['rpt_mon'] + $cal['rpt_tue'] + $cal['rpt_wed'] + $cal['rpt_thu'] + $cal['rpt_fri'] + $cal['rpt_sat'];
|
||||
$this->so->set_recur_weekly($recur_enddate['year'],$recur_enddate['month'],$recur_enddate['mday'],$cal['recur_interval'],$cal['recur_data']);
|
||||
break;
|
||||
case MCAL_RECUR_MONTHLY_MDAY:
|
||||
@ -367,12 +392,12 @@
|
||||
@reset($part);
|
||||
while(list($key,$value) = each($part))
|
||||
{
|
||||
$this->so->add_attribute('participants['.$key.']','U');
|
||||
$this->so->add_attribute('participants','U',$key);
|
||||
}
|
||||
|
||||
reset($participants);
|
||||
$event = $this->get_cached_event();
|
||||
if(!@$event->participants[$cal['owner']])
|
||||
if(!@$event['participants'][$cal['owner']])
|
||||
{
|
||||
$this->so->add_attribute('owner',$minparts);
|
||||
}
|
||||
@ -389,32 +414,42 @@
|
||||
|
||||
settype($start,'integer');
|
||||
settype($end,'integer');
|
||||
$start = mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year) - $this->datetime->tz_offset;
|
||||
$end = mktime($event->end->hour,$event->end->min,$event->end->sec,$event->end->month,$event->end->mday,$event->end->year) - $this->datetime->tz_offset;
|
||||
$start = $this->maketime($event['start']) - $this->datetime->tz_offset;
|
||||
$end = $this->maketime($event['end']) - $this->datetime->tz_offset;
|
||||
|
||||
$overlapping_events = $this->overlap($start,$end,$event->participants,$event->owner,$event->id);
|
||||
$overlapping_events = $this->overlap($start,$end,$event['participants'],$event->owner,$event->id);
|
||||
}
|
||||
|
||||
if($overlapping_events)
|
||||
{
|
||||
$ui->overlap($overlapping_events,$event);
|
||||
if($send_to_ui)
|
||||
{
|
||||
$ui->overlap($overlapping_events,$event);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $overlapping_events;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!$event->id)
|
||||
if(!$event['id'])
|
||||
{
|
||||
$this->so->add_entry($event);
|
||||
$this->send_update(MSG_ADDED,$event->participants,'',$this->get_cached_event());
|
||||
$this->send_update(MSG_ADDED,$event['participants'],'',$this->get_cached_event());
|
||||
}
|
||||
else
|
||||
{
|
||||
$new_event = $event;
|
||||
$old_event = $this->read_entry($new_event->id);
|
||||
$old_event = $this->read_entry($new_event['id']);
|
||||
$this->prepare_recipients($new_event,$old_event);
|
||||
$this->so->add_entry($event);
|
||||
}
|
||||
$date = sprintf("%04d%02d%02d",$event->start->year,$event->start->month,$event->start->mday);
|
||||
$ui->index();
|
||||
$date = sprintf("%04d%02d%02d",$event['start']['year'],$event['start']['month'],$event['start']['mday']);
|
||||
if($send_to_ui)
|
||||
{
|
||||
$ui->index();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -499,6 +534,11 @@
|
||||
unset($holiday);
|
||||
}
|
||||
|
||||
function maketime($time)
|
||||
{
|
||||
return mktime($time['hour'],$time['min'],$time['sec'],$time['month'],$time['mday'],$time['year']);
|
||||
}
|
||||
|
||||
function can_user_edit($event)
|
||||
{
|
||||
$can_edit = False;
|
||||
@ -554,17 +594,17 @@
|
||||
{
|
||||
$error = 40;
|
||||
}
|
||||
elseif (($this->datetime->time_valid($event->start->hour,$event->start->min,0) == False) || ($this->datetime->time_valid($event->end->hour,$event->end->min,0) == False))
|
||||
elseif (($this->datetime->time_valid($event['start']['hour'],$event['start']['min'],0) == False) || ($this->datetime->time_valid($event['end']['hour'],$event['end']['min'],0) == False))
|
||||
{
|
||||
$error = 41;
|
||||
}
|
||||
elseif (($this->datetime->date_valid($event->start->year,$event->start->month,$event->start->mday) == False) || ($this->datetime->date_valid($event->end->year,$event->end->month,$event->end->mday) == False) || ($this->datetime->date_compare($event->start->year,$event->start->month,$event->start->mday,$event->end->year,$event->end->month,$event->end->mday) == 1))
|
||||
elseif (($this->datetime->date_valid($event['start']['year'],$event['start']['month'],$event['start']['mday']) == False) || ($this->datetime->date_valid($event['end']['year'],$event['end']['month'],$event['end']['mday']) == False) || ($this->datetime->date_compare($event['start']['year'],$event['start']['month'],$event['start']['mday'],$event['end']['year'],$event['end']['month'],$event['end']['mday']) == 1))
|
||||
{
|
||||
$error = 42;
|
||||
}
|
||||
elseif ($this->datetime->date_compare($event->start->year,$event->start->month,$event->start->mday,$event->end->year,$event->end->month,$event->end->mday) == 0)
|
||||
elseif ($this->datetime->date_compare($event['start']['year'],$event['start']['month'],$event['start']['mday'],$event['end']['year'],$event['end']['month'],$event['end']['mday']) == 0)
|
||||
{
|
||||
if ($this->datetime->time_compare($event->start->hour,$event->start->min,0,$event->end->hour,$event->end->min,0) == 1)
|
||||
if ($this->datetime->time_compare($event['start']['hour'],$event['start']['min'],0,$event['end']['hour'],$event['end']['min'],0) == 1)
|
||||
{
|
||||
$error = 42;
|
||||
}
|
||||
@ -734,21 +774,21 @@
|
||||
{
|
||||
$owner = $this->owner;
|
||||
}
|
||||
if ($owner == $phpgw_info['user']['account_id'] || ($event->public==1) || ($this->check_perms(PHPGW_ACL_PRIVATE,$owner) && $event->public==0))
|
||||
if ($owner == $phpgw_info['user']['account_id'] || ($event['public']==1) || ($this->check_perms(PHPGW_ACL_PRIVATE,$owner) && $event['public']==0))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
elseif($event->public == 0)
|
||||
elseif($event['public'] == 0)
|
||||
{
|
||||
return True;
|
||||
}
|
||||
elseif($event->public == 2)
|
||||
elseif($event['public'] == 2)
|
||||
{
|
||||
$is_private = True;
|
||||
$groups = $phpgw->accounts->memberships($owner);
|
||||
while (list($key,$group) = each($groups))
|
||||
{
|
||||
if (strpos(' '.implode($event->groups,',').' ',$group['account_id']))
|
||||
if (strpos(' '.implode($event['groups'],',').' ',$group['account_id']))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
@ -768,13 +808,13 @@
|
||||
{
|
||||
return 'private';
|
||||
}
|
||||
elseif (strlen($event->$field) > 19)
|
||||
elseif (strlen($event[$field]) > 19)
|
||||
{
|
||||
return substr($event->$field, 0 , 19) . '...';
|
||||
return substr($event[$field], 0 , 19) . '...';
|
||||
}
|
||||
else
|
||||
{
|
||||
return $event->$field;
|
||||
return $event[$field];
|
||||
}
|
||||
}
|
||||
|
||||
@ -872,9 +912,9 @@
|
||||
for($i=0;$i<count($this->cached_events[$date]);$i++)
|
||||
{
|
||||
$events = $this->cached_events[$date][$i];
|
||||
$events_id = $events->id;
|
||||
$event_id = $event->id;
|
||||
if($events->id == $event->id)
|
||||
$events_id = $events['id'];
|
||||
$event_id = $event['id'];
|
||||
if($events['id'] == $event['id'])
|
||||
{
|
||||
$inserted = True;
|
||||
break;
|
||||
@ -882,7 +922,7 @@
|
||||
$year = substr($date,0,4);
|
||||
$month = substr($date,4,2);
|
||||
$day = substr($date,6,2);
|
||||
if(date('Hi',mktime($event->start->hour,$event->start->min,$event->start->sec,$month,$day,$year)) < date('Hi',mktime($events->start->hour,$events->start->min,$events->start->sec,$month,$day,$year)))
|
||||
if(date('Hi',mktime($event['start']['hour'],$event['start']['min'],$event['start']['sec'],$month,$day,$year)) < date('Hi',mktime($events['start']['hour'],$events['start']['min'],$events['start']['sec'],$month,$day,$year)))
|
||||
{
|
||||
for($j=count($this->cached_events[$date]);$j>=$i;$j--)
|
||||
{
|
||||
@ -917,10 +957,10 @@
|
||||
{
|
||||
$rep_events = $this->repeating_events[$i];
|
||||
$id = $rep_events->id;
|
||||
$event_beg_day = mktime(0,0,0,$rep_events->start->month,$rep_events->start->mday,$rep_events->start->year);
|
||||
if($rep_events->recur_enddate->month != 0 && $rep_events->recur_enddate->mday != 0 && $rep_events->recur_enddate->year != 0)
|
||||
$event_beg_day = mktime(0,0,0,$rep_events['start']['month'],$rep_events['start']['mday'],$rep_events['start']['year']);
|
||||
if($rep_events['recur_enddate']['month'] != 0 && $rep_events['recur_enddate']['mday'] != 0 && $rep_events['recur_enddate']['year'] != 0)
|
||||
{
|
||||
$event_recur_time = mktime($rep_events->recur_enddate->hour,$rep_events->recur_enddate->min,$rep_events->recur_enddate->sec,$rep_events->recur_enddate->month,$rep_events->recur_enddate->mday,$rep_events->recur_enddate->year);
|
||||
$event_recur_time = $this->maketime($rep_events['recur_enddate']);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -942,8 +982,8 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$freq = $rep_events->recur_interval;
|
||||
$type = $rep_events->recur_type;
|
||||
$freq = $rep_events['recur_interval'];
|
||||
$type = $rep_events['recur_type'];
|
||||
switch($type)
|
||||
{
|
||||
case MCAL_RECUR_DAILY:
|
||||
@ -986,35 +1026,35 @@
|
||||
$check = MCAL_M_SATURDAY;
|
||||
break;
|
||||
}
|
||||
if ($rep_events->recur_data & $check)
|
||||
if ($rep_events['recur_data'] & $check)
|
||||
{
|
||||
$this->sort_event($rep_events,$search_date_full);
|
||||
}
|
||||
break;
|
||||
case MCAL_RECUR_MONTHLY_WDAY:
|
||||
if ((($search_date_year - $rep_events->start->year) * 12 + $search_date_month - $rep_events->start->month) % $freq)
|
||||
if ((($search_date_year - $rep_events['start']['year']) * 12 + $search_date_month - $rep_events['start']['month']) % $freq)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (($this->datetime->day_of_week($rep_events->start->year,$rep_events->start->month,$rep_events->start->mday) == $this->datetime->day_of_week($search_date_year,$search_date_month,$search_date_day)) &&
|
||||
(ceil($rep_events->start->mday/7) == ceil($search_date_day/7)))
|
||||
if (($this->datetime->day_of_week($rep_events['start']['year'],$rep_events['start']['month'],$rep_events['start']['mday']) == $this->datetime->day_of_week($search_date_year,$search_date_month,$search_date_day)) &&
|
||||
(ceil($rep_events['start']['mday']/7) == ceil($search_date_day/7)))
|
||||
{
|
||||
$this->sort_event($rep_events,$search_date_full);
|
||||
}
|
||||
break;
|
||||
case MCAL_RECUR_MONTHLY_MDAY:
|
||||
if ((($search_date_year - $rep_events->start->year) * 12 + $search_date_month - $rep_events->start->month) % $freq)
|
||||
if ((($search_date_year - $rep_events['start']['year']) * 12 + $search_date_month - $rep_events['start']['month']) % $freq)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ($search_date_day == $rep_events->start->mday)
|
||||
if ($search_date_day == $rep_events['start']['mday'])
|
||||
{
|
||||
$this->sort_event($rep_events,$search_date_full);
|
||||
}
|
||||
break;
|
||||
case MCAL_RECUR_YEARLY:
|
||||
if (($search_date_year - $rep_events->start->year) % $freq)
|
||||
if (($search_date_year - $rep_events['start']['year']) % $freq)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -1086,8 +1126,8 @@
|
||||
for($i=0;$i<$c_cached_ids;$i++)
|
||||
{
|
||||
$event = $this->so->read_entry($cached_event_ids[$i]);
|
||||
$starttime = mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year);
|
||||
$endtime = mktime($event->end->hour,$event->end->min,$event->end->sec,$event->end->month,$event->end->mday,$event->end->year);
|
||||
$starttime = $this->maketime($event['start']);
|
||||
$endtime = $this->maketime($event['end']);
|
||||
$this->cached_events[date('Ymd',$starttime)][] = $event;
|
||||
if($this->cached_events[date('Ymd',$endtime)][count($this->cached_events[date('Ymd',$starttime)]) - 1] != $event)
|
||||
{
|
||||
@ -1109,6 +1149,7 @@
|
||||
$this->check_repeating_events($date);
|
||||
}
|
||||
}
|
||||
return $this->cached_events;
|
||||
}
|
||||
|
||||
/* Begin Appsession Data */
|
||||
@ -1359,7 +1400,7 @@
|
||||
}
|
||||
$private = $this->is_private($event,$part);
|
||||
$time_display = $phpgw->common->show_date($eventstart['raw'],$this->users_timeformat).'-'.$phpgw->common->show_date($eventend['raw'],$this->users_timeformat);
|
||||
$time_description = '('.$time_display.') '.$this->get_short_field($event,$private,'title').$this->display_status($event->participants[$part]);
|
||||
$time_description = '('.$time_display.') '.$this->get_short_field($event,$private,'title').$this->display_status($event['participants'][$part]);
|
||||
for($m=$startminute;$m<=$endminute;$m++)
|
||||
{
|
||||
$index = ($hour + (($m * $increment) * 100));
|
||||
@ -1378,15 +1419,15 @@
|
||||
switch($status)
|
||||
{
|
||||
case REJECTED:
|
||||
$this->send_update(MSG_REJECTED,$old_event->participants,$old_event);
|
||||
$this->send_update(MSG_REJECTED,$old_event['participants'],$old_event);
|
||||
$this->so->set_status($cal_id,$status);
|
||||
break;
|
||||
case TENTATIVE:
|
||||
$this->send_update(MSG_TENTATIVE,$old_event->participants,$old_event);
|
||||
$this->send_update(MSG_TENTATIVE,$old_event['participants'],$old_event);
|
||||
$this->so->set_status($cal_id,$status);
|
||||
break;
|
||||
case ACCEPTED:
|
||||
$this->send_update(MSG_ACCEPTED,$old_event->participants,$old_event);
|
||||
$this->send_update(MSG_ACCEPTED,$old_event['participants'],$old_event);
|
||||
$this->so->set_status($cal_id,$status);
|
||||
break;
|
||||
}
|
||||
@ -1415,7 +1456,7 @@
|
||||
|
||||
if($old_event != False)
|
||||
{
|
||||
$t_old_start_time = mktime($old_event->start->hour,$old_event->start->min,$old_event->start->sec,$old_event->start->month,$old_event->start->mday,$old_event->start->year);
|
||||
$t_old_start_time = $this->maketime($old_event['start']);
|
||||
if($t_old_start_time < (time() - 86400))
|
||||
{
|
||||
return False;
|
||||
@ -1447,32 +1488,32 @@
|
||||
{
|
||||
case MSG_DELETED:
|
||||
$action = 'Deleted';
|
||||
$event_id = $old_event->id;
|
||||
$event_id = $old_event['id'];
|
||||
$msgtype = '"calendar";';
|
||||
break;
|
||||
case MSG_MODIFIED:
|
||||
$action = 'Modified';
|
||||
$event_id = $old_event->id;
|
||||
$event_id = $old_event['id'];
|
||||
$msgtype = '"calendar"; Version="'.$version.'"; Id="'.$new_event->id.'"';
|
||||
break;
|
||||
case MSG_ADDED:
|
||||
$action = 'Added';
|
||||
$event_id = $new_event->id;
|
||||
$event_id = $new_event['id'];
|
||||
$msgtype = '"calendar"; Version="'.$version.'"; Id="'.$new_event->id.'"';
|
||||
break;
|
||||
case MSG_REJECTED:
|
||||
$action = 'Rejected';
|
||||
$event_id = $old_event->id;
|
||||
$event_id = $old_event['id'];
|
||||
$msgtype = '"calendar";';
|
||||
break;
|
||||
case MSG_TENTATIVE:
|
||||
$action = 'Tentative';
|
||||
$event_id = $old_event->id;
|
||||
$event_id = $old_event['id'];
|
||||
$msgtype = '"calendar";';
|
||||
break;
|
||||
case MSG_ACCEPTED:
|
||||
$action = 'Tentative';
|
||||
$event_id = $old_event->id;
|
||||
$event_id = $old_event['id'];
|
||||
$msgtype = '"calendar";';
|
||||
break;
|
||||
}
|
||||
@ -1484,7 +1525,7 @@
|
||||
|
||||
if($new_event != False)
|
||||
{
|
||||
$new_event_datetime = mktime($new_event->start->hour,$new_event->start->min,$new_event->start->sec,$new_event->start->month,$new_event->start->mday,$new_event->start->year) - $this->datetime->tz_offset;
|
||||
$new_event_datetime = $this->maketime($new_event['start']) - $this->datetime->tz_offset;
|
||||
}
|
||||
|
||||
while(list($userid,$statusid) = each($participants))
|
||||
@ -1560,9 +1601,9 @@
|
||||
function prepare_recipients(&$new_event,$old_event)
|
||||
{
|
||||
// Find modified and deleted users.....
|
||||
while(list($old_userid,$old_status) = each($old_event->participants))
|
||||
while(list($old_userid,$old_status) = each($old_event['participants']))
|
||||
{
|
||||
if(isset($new_event->participants[$old_userid]))
|
||||
if(isset($new_event['participants'][$old_userid]))
|
||||
{
|
||||
if($this->debug)
|
||||
{
|
||||
@ -1580,16 +1621,16 @@
|
||||
}
|
||||
}
|
||||
// Find new users.....
|
||||
while(list($new_userid,$new_status) = each($new_event->participants))
|
||||
while(list($new_userid,$new_status) = each($new_event['participants']))
|
||||
{
|
||||
if(!isset($old_event->participants[$new_userid]))
|
||||
if(!isset($old_event['participants'][$new_userid]))
|
||||
{
|
||||
if($this->debug)
|
||||
{
|
||||
echo "Adding event for user ".$new_userid."<br>\n";
|
||||
}
|
||||
$this->added[$new_userid] = 'U';
|
||||
$new_event->participants[$new_userid] = 'U';
|
||||
$new_event['participants'][$new_userid] = 'U';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -208,24 +208,6 @@
|
||||
$this->cal->set_status($id,$this->owner,$status);
|
||||
}
|
||||
|
||||
function get_lastid()
|
||||
{
|
||||
$this->makeobj();
|
||||
$entry = $this->cal->read_last_entry();
|
||||
$ab_id = $entry[0]['id'];
|
||||
return $ab_id;
|
||||
}
|
||||
|
||||
function update_entry($userid,$fields)
|
||||
{
|
||||
$this->makeobj();
|
||||
if ($this->rights & PHPGW_ACL_EDIT)
|
||||
{
|
||||
$this->cal->update($fields['ab_id'],$userid,$fields,$fields['access'],$fields['cat_id']);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* Begin mcal equiv functions */
|
||||
function get_cached_event()
|
||||
{
|
||||
|
@ -72,132 +72,134 @@ class socalendar__
|
||||
|
||||
function event_init()
|
||||
{
|
||||
CreateObject('calendar.calendar_item');
|
||||
$this->event = new calendar_item;
|
||||
$this->event->start = new calendar_time;
|
||||
$this->event->end = new calendar_time;
|
||||
$this->event->mod = new calendar_time;
|
||||
$this->event->recur_enddate = new calendar_time;
|
||||
// CreateObject('calendar.calendar_item');
|
||||
$this->event = Array();
|
||||
// $this->event['start'] = Array();
|
||||
// $this->event['end'] = Array();
|
||||
// $this->event['mod'] = Array();
|
||||
// $this->event['recur_enddate'] = Array();
|
||||
$this->add_attribute('owner',intval($this->user));
|
||||
}
|
||||
|
||||
function set_category($category='')
|
||||
{
|
||||
$this->event->category = $category;
|
||||
$this->add_attribute('category',$category);
|
||||
}
|
||||
|
||||
function set_title($title='')
|
||||
{
|
||||
$this->event->title = $title;
|
||||
$this->add_attribute('title',$title);
|
||||
}
|
||||
|
||||
function set_description($description='')
|
||||
{
|
||||
$this->event->description = $description;
|
||||
$this->add_attribute('description',$description);
|
||||
}
|
||||
|
||||
function set_date($element,$year,$month,$day=0,$hour=0,$min=0,$sec=0)
|
||||
{
|
||||
$this->add_attribute($element,intval($year),'year');
|
||||
$this->add_attribute($element,intval($month),'month');
|
||||
$this->add_attribute($element,intval($day),'mday');
|
||||
$this->add_attribute($element,intval($hour),'hour');
|
||||
$this->add_attribute($element,intval($min),'min');
|
||||
$this->add_attribute($element,intval($sec),'sec');
|
||||
$this->add_attribute($element,0,'alarm');
|
||||
}
|
||||
|
||||
function set_start($year,$month,$day=0,$hour=0,$min=0,$sec=0)
|
||||
{
|
||||
$this->event->start->year = intval($year);
|
||||
$this->event->start->month = intval($month);
|
||||
$this->event->start->mday = intval($day);
|
||||
$this->event->start->hour = intval($hour);
|
||||
$this->event->start->min = intval($min);
|
||||
$this->event->start->sec = intval($sec);
|
||||
$this->event->start->alarm = 0;
|
||||
$this->set_date('start',$year,$month,$day,$hour,$min,$sec);
|
||||
}
|
||||
|
||||
function set_end($year,$month,$day=0,$hour=0,$min=0,$sec=0)
|
||||
{
|
||||
$this->event->end->year = intval($year);
|
||||
$this->event->end->month = intval($month);
|
||||
$this->event->end->mday = intval($day);
|
||||
$this->event->end->hour = intval($hour);
|
||||
$this->event->end->min = intval($min);
|
||||
$this->event->end->sec = intval($sec);
|
||||
$this->event->end->alarm = 0;
|
||||
$this->set_date('end',$year,$month,$day,$hour,$min,$sec);
|
||||
}
|
||||
|
||||
function set_alarm($alarm)
|
||||
{
|
||||
$this->event->alarm = intval($alarm);
|
||||
$this->add_attribute('alarm',intval($alarm));
|
||||
}
|
||||
|
||||
function set_class($class)
|
||||
{
|
||||
$this->event->public = $class;
|
||||
$this->add_attribute('public',$class);
|
||||
}
|
||||
|
||||
function set_common_recur($year,$month,$day,$interval)
|
||||
function set_common_recur($year=0,$month=0,$day=0,$interval)
|
||||
{
|
||||
$this->event->recur_interval = intval($interval);
|
||||
if(intval($day) == 0 && intval($month) == 0 && intval($year) == 0)
|
||||
{
|
||||
$this->event->recur_enddate->year = 0;
|
||||
$this->event->recur_enddate->month = 0;
|
||||
$this->event->recur_enddate->mday = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->event->recur_enddate->year = intval($year);
|
||||
$this->event->recur_enddate->month = intval($month);
|
||||
$this->event->recur_enddate->mday = intval($day);
|
||||
}
|
||||
$this->event->recur_enddate->hour = 0;
|
||||
$this->event->recur_enddate->min = 0;
|
||||
$this->event->recur_enddate->sec = 0;
|
||||
$this->event->recur_enddate->alarm = 0;
|
||||
$this->event->recur_data = 0;
|
||||
$this->add_attribute('recur_interval',intval(interval));
|
||||
$this->set_date('recur_enddate',$year,$month,$day,0,0,0);
|
||||
$this->add_attribute('recur_data',0);
|
||||
}
|
||||
|
||||
function set_recur_none()
|
||||
{
|
||||
$this->set_common_recur(0,0,0,0);
|
||||
$this->event->recur_type = MCAL_RECUR_NONE;
|
||||
$this->add_attribute('recur_type',MCAL_RECUR_NONE);
|
||||
}
|
||||
|
||||
function set_recur_daily($year,$month,$day,$interval)
|
||||
{
|
||||
$this->set_common_recur(intval($year),intval($month),intval($day),$interval);
|
||||
$this->event->recur_type = MCAL_RECUR_DAILY;
|
||||
$this->add_attribute('recur_type',MCAL_RECUR_DAILY);
|
||||
}
|
||||
|
||||
function set_recur_weekly($year,$month,$day,$interval,$weekdays)
|
||||
{
|
||||
$this->set_common_recur(intval($year),intval($month),intval($day),$interval);
|
||||
$this->event->recur_type = MCAL_RECUR_WEEKLY;
|
||||
$this->event->recur_data = intval($weekdays);
|
||||
$this->add_attribute('recur_type',MCAL_RECUR_WEEKLY);
|
||||
$this->add_attribute('recur_data',intval($weekdays));
|
||||
}
|
||||
|
||||
function set_recur_monthly_mday($year,$month,$day,$interval)
|
||||
{
|
||||
$this->set_common_recur(intval($year),intval($month),intval($day),$interval);
|
||||
$this->event->recur_type = MCAL_RECUR_MONTHLY_MDAY;
|
||||
$this->add_attribute('recur_type',MCAL_RECUR_MONTHLY_MDAY);
|
||||
}
|
||||
|
||||
function set_recur_monthly_wday($year,$month,$day,$interval)
|
||||
{
|
||||
$this->set_common_recur(intval($year),intval($month),intval($day),$interval);
|
||||
$this->event->recur_type = MCAL_RECUR_MONTHLY_WDAY;
|
||||
$this->add_attribute('recur_type',MCAL_RECUR_MONTHLY_WDAY);
|
||||
}
|
||||
|
||||
function set_recur_yearly($year,$month,$day,$interval)
|
||||
{
|
||||
$this->set_common_recur(intval($year),intval($month),intval($day),$interval);
|
||||
$this->event->recur_type = MCAL_RECUR_YEARLY;
|
||||
$this->add_attribute('recur_type',MCAL_RECUR_YEARLY);
|
||||
}
|
||||
|
||||
function fetch_current_stream_event()
|
||||
{
|
||||
return $this->fetch_event($this->event->id);
|
||||
return $this->fetch_event($this->event['id']);
|
||||
}
|
||||
|
||||
function add_attribute($attribute,$value,$element='')
|
||||
function add_attribute($attribute,$value,$element='False')
|
||||
{
|
||||
if(is_array($value))
|
||||
{
|
||||
reset($value);
|
||||
}
|
||||
eval("\$this->event->".$attribute." = ".$value.";");
|
||||
if($element!='False')
|
||||
{
|
||||
if(is_int($element))
|
||||
{
|
||||
eval("\$this->event['".$attribute."'][".$element."] = ".$value.";");
|
||||
}
|
||||
else
|
||||
{
|
||||
eval("\$this->event['".$attribute."']['".$element."'] = ".$value.";");
|
||||
}
|
||||
}
|
||||
elseif(is_int($value))
|
||||
{
|
||||
eval("\$this->event['".$attribute."'] = ".$value.";");
|
||||
}
|
||||
elseif(is_string($value))
|
||||
{
|
||||
eval("\$this->event['".$attribute."'] = '".$value."';");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -124,22 +124,16 @@ class socalendar_ extends socalendar__
|
||||
//$this->event->alarm = intval($this->stream->f('alarm'));
|
||||
// But until then, do it this way...
|
||||
//Legacy Support (New)
|
||||
$this->event->alarm = 0;
|
||||
$this->set_alarm(0);
|
||||
|
||||
$this->add_attribute('datetime',intval($this->stream->f('datetime')));
|
||||
// $this->add_attribute('datetime',intval($this->stream->f('datetime')));
|
||||
$datetime = $this->datetime->localdates($this->stream->f('datetime'));
|
||||
$this->set_start($datetime['year'],$datetime['month'],$datetime['day'],$datetime['hour'],$datetime['minute'],$datetime['second']);
|
||||
|
||||
$datetime = $this->datetime->localdates($this->stream->f('mdatetime'));
|
||||
$this->event->mod->year = $datetime['year'];
|
||||
$this->event->mod->month = $datetime['month'];
|
||||
$this->event->mod->mday = $datetime['day'];
|
||||
$this->event->mod->hour = $datetime['hour'];
|
||||
$this->event->mod->min = $datetime['minute'];
|
||||
$this->event->mod->sec = $datetime['second'];
|
||||
$this->event->mod->alarm = 0;
|
||||
$this->set_date('modtime',$datetime['year'],$datetime['month'],$datetime['day'],$datetime['hour'],$datetime['minute'],$datetime['second']);
|
||||
|
||||
$this->add_attribute('edatetime',intval($this->stream->f('edatetime')));
|
||||
// $this->add_attribute('edatetime',intval($this->stream->f('edatetime')));
|
||||
$datetime = $this->datetime->localdates($this->stream->f('edatetime'));
|
||||
$this->set_end($datetime['year'],$datetime['month'],$datetime['day'],$datetime['hour'],$datetime['minute'],$datetime['second']);
|
||||
|
||||
@ -150,7 +144,7 @@ class socalendar_ extends socalendar__
|
||||
$groups = explode(',',$this->stream->f('groups'));
|
||||
for($j=1;$j<count($groups) - 1;$j++)
|
||||
{
|
||||
$this->event->groups[] = $groups[$j];
|
||||
$this->add_attribute('groups',$groups[$j],$j-1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -159,32 +153,31 @@ class socalendar_ extends socalendar__
|
||||
{
|
||||
$this->stream->next_record();
|
||||
|
||||
$this->event->recur_type = intval($this->stream->f('recur_type'));
|
||||
$this->event->recur_interval = intval($this->stream->f('recur_interval'));
|
||||
$this->add_attribute('recur_type',intval($this->stream->f('recur_type')));
|
||||
$this->add_attribute('recur_interval',intval($this->stream->f('recur_interval')));
|
||||
$enddate = $this->stream->f('recur_enddate');
|
||||
if($enddate != 0 && $enddate != Null)
|
||||
{
|
||||
$datetime = $this->datetime->localdates($enddate);
|
||||
$this->event->recur_enddate->year = $datetime['year'];
|
||||
$this->event->recur_enddate->month = $datetime['month'];
|
||||
$this->event->recur_enddate->mday = $datetime['day'];
|
||||
$this->event->recur_enddate->hour = $datetime['hour'];
|
||||
$this->event->recur_enddate->min = $datetime['minute'];
|
||||
$this->event->recur_enddate->sec = $datetime['second'];
|
||||
$this->event->recur_enddate->alarm = 0;
|
||||
$this->add_attribute('recur_enddate',$datetime['year'],'year');
|
||||
$this->add_attribute('recur_enddate',$datetime['month'],'month');
|
||||
$this->add_attribute('recur_enddate',$datetime['day'],'mday');
|
||||
$this->add_attribute('recur_enddate',$datetime['hour'],'hour');
|
||||
$this->add_attribute('recur_enddate',$datetime['minute'],'min');
|
||||
$this->add_attribute('recur_enddate',$datetime['second'],'sec');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->event->recur_enddate->year = 0;
|
||||
$this->event->recur_enddate->month = 0;
|
||||
$this->event->recur_enddate->mday = 0;
|
||||
$this->event->recur_enddate->hour = 0;
|
||||
$this->event->recur_enddate->min = 0;
|
||||
$this->event->recur_enddate->sec = 0;
|
||||
$this->event->recur_enddate->alarm = 0;
|
||||
$this->add_attribute('recur_enddate',0,'year');
|
||||
$this->add_attribute('recur_enddate',0,'month');
|
||||
$this->add_attribute('recur_enddate',0,'mday');
|
||||
$this->add_attribute('recur_enddate',0,'hour');
|
||||
$this->add_attribute('recur_enddate',0,'min');
|
||||
$this->add_attribute('recur_enddate',0,'sec');
|
||||
}
|
||||
// echo 'Event ID#'.$this->event->id.' : Enddate = '.$enddate."<br>\n";
|
||||
$this->event->recur_data = $this->stream->f('recur_data');
|
||||
$this->add_attribute('recur_enddate',0,'alarm');
|
||||
// echo 'Event ID#'.$this->event['id'].' : Enddate = '.$enddate."<br>\n";
|
||||
$this->add_attribute('recur_data',$this->stream->f('recur_data'));
|
||||
}
|
||||
|
||||
//Legacy Support
|
||||
@ -195,11 +188,12 @@ class socalendar_ extends socalendar__
|
||||
{
|
||||
if(intval($this->stream->f('cal_login')) == intval($this->user))
|
||||
{
|
||||
$this->event->users_status = $this->stream->f('cal_status');
|
||||
$this->add_attribute('users_status',$this->stream->f('cal_status'));
|
||||
}
|
||||
// $this->event->participants[$this->stream->f('cal_login')] = $this->stream->f('cal_status');
|
||||
// $this->add_attribute('participants',$this->stream->f('cal_status'),intval($this->stream->f('cal_login')));
|
||||
$this->add_attribute('participants['.intval($this->stream->f('cal_login')).']',$this->stream->f('cal_status'));
|
||||
$this->add_attribute('participants',$this->stream->f('cal_status'),intval($this->stream->f('cal_login')));
|
||||
// $this->add_attribute('participants',array(intval($this->stream->f('cal_login'))=>$this->stream->f('cal_status')));
|
||||
// $this->add_attribute('participants['.intval($this->stream->f('cal_login')).']',$this->stream->f('cal_status'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -242,7 +236,7 @@ class socalendar_ extends socalendar__
|
||||
{
|
||||
$this->save_event($this->event);
|
||||
$this->send_update(MSG_ADDED,$this->event->participants,'',$this->event);
|
||||
return $this->event->id;
|
||||
return $this->event['id'];
|
||||
}
|
||||
|
||||
function store_event()
|
||||
@ -346,22 +340,22 @@ class socalendar_ extends socalendar__
|
||||
'phpgw_cal_repeats'
|
||||
);
|
||||
$this->stream->lock($locks);
|
||||
if($event->id == 0)
|
||||
if($event['id'] == 0)
|
||||
{
|
||||
$temp_name = tempnam($phpgw_info['server']['temp_dir'],'cal');
|
||||
$this->stream->query('INSERT INTO phpgw_cal(title,owner,priority,is_public) '
|
||||
. "values('".$temp_name."',".$event->owner.",".$event->priority.",".$event->public.")");
|
||||
. "values('".$temp_name."',".$event['owner'].",".$event['priority'].",".$event['public'].")");
|
||||
$this->stream->query("SELECT cal_id FROM phpgw_cal WHERE title='".$temp_name."'");
|
||||
$this->stream->next_record();
|
||||
$event->id = $this->stream->f('cal_id');
|
||||
$event['id'] = $this->stream->f('cal_id');
|
||||
}
|
||||
|
||||
$date = mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year) - $this->datetime->tz_offset;
|
||||
$enddate = mktime($event->end->hour,$event->end->min,$event->end->sec,$event->end->month,$event->end->mday,$event->end->year) - $this->datetime->tz_offset;
|
||||
$date = $this->maketime($event['start']) - $this->datetime->tz_offset;
|
||||
$enddate = $this->maketime($event['end']) - $this->datetime->tz_offset;
|
||||
$today = time() - $this->datetime->tz_offset;
|
||||
// $today = time();
|
||||
|
||||
if($event->recur_type != MCAL_RECUR_NONE)
|
||||
if($event['recur_type'] != MCAL_RECUR_NONE)
|
||||
{
|
||||
$type = 'M';
|
||||
}
|
||||
@ -370,71 +364,65 @@ class socalendar_ extends socalendar__
|
||||
$type = 'E';
|
||||
}
|
||||
|
||||
$cat = '';
|
||||
if($event->category != 0)
|
||||
{
|
||||
$cat = 'category='.$event->category.', ';
|
||||
}
|
||||
|
||||
$sql = 'UPDATE phpgw_cal SET '
|
||||
. 'owner='.$event->owner.', '
|
||||
. 'owner='.$event['owner'].', '
|
||||
. 'datetime='.$date.', '
|
||||
. 'mdatetime='.$today.', '
|
||||
. 'edatetime='.$enddate.', '
|
||||
. 'priority='.$event->priority.', '
|
||||
. $cat
|
||||
. 'priority='.$event['priority'].', '
|
||||
. ($event['category'] != 0?'category='.$event['category'].', ':'')
|
||||
. "cal_type='".$type."', "
|
||||
. 'is_public='.$event->public.', '
|
||||
. "title='".addslashes($event->title)."', "
|
||||
. "description='".addslashes($event->description)."' "
|
||||
. 'WHERE cal_id='.$event->id;
|
||||
. 'is_public='.$event['public'].', '
|
||||
. "title='".addslashes($event['title'])."', "
|
||||
. "description='".addslashes($event['description'])."' "
|
||||
. 'WHERE cal_id='.$event['id'];
|
||||
|
||||
$this->stream->query($sql,__LINE__,__FILE__);
|
||||
|
||||
$this->stream->query('DELETE FROM phpgw_cal_user WHERE cal_id='.$event->id,__LINE__,__FILE__);
|
||||
$this->stream->query('DELETE FROM phpgw_cal_user WHERE cal_id='.$event['id'],__LINE__,__FILE__);
|
||||
|
||||
reset($event->participants);
|
||||
while (list($key,$value) = each($event->participants))
|
||||
reset($event['participants']);
|
||||
while (list($key,$value) = each($event['participants']))
|
||||
{
|
||||
if(intval($key) == intval($this->user))
|
||||
{
|
||||
$value = 'A';
|
||||
}
|
||||
$this->stream->query('INSERT INTO phpgw_cal_user(cal_id,cal_login,cal_status) '
|
||||
. 'VALUES('.$event->id.','.intval($key).",'".$value."')",__LINE__,__FILE__);
|
||||
. 'VALUES('.$event['id'].','.intval($key).",'".$value."')",__LINE__,__FILE__);
|
||||
}
|
||||
|
||||
if($event->recur_type != MCAL_RECUR_NONE)
|
||||
if($event['recur_type'] != MCAL_RECUR_NONE)
|
||||
{
|
||||
if($event->recur_enddate->month != 0 && $event->recur_enddate->mday != 0 && $event->recur_enddate->year != 0)
|
||||
if($event['recur_enddate']['month'] != 0 && $event['recur_enddate']['mday'] != 0 && $event['recur_enddate']['year'] != 0)
|
||||
{
|
||||
$end = mktime($event->recur_enddate->hour,$event->recur_enddate->min,$event->recur_enddate->sec,$event->recur_enddate->month,$event->recur_enddate->mday,$event->recur_enddate->year) - $this->datetime->tz_offset;
|
||||
$end = $this->maketime($event['recur_enddate']) - $this->datetime->tz_offset;
|
||||
}
|
||||
else
|
||||
{
|
||||
$end = 0;
|
||||
}
|
||||
|
||||
$this->stream->query('SELECT count(cal_id) FROM phpgw_cal_repeats WHERE cal_id='.$event->id,__LINE__,__FILE__);
|
||||
$this->stream->query('SELECT count(cal_id) FROM phpgw_cal_repeats WHERE cal_id='.$event['id'],__LINE__,__FILE__);
|
||||
$this->stream->next_record();
|
||||
$num_rows = $this->stream->f(0);
|
||||
if($num_rows == 0)
|
||||
{
|
||||
$this->stream->query('INSERT INTO phpgw_cal_repeats(cal_id,recur_type,recur_enddate,recur_data,recur_interval) '
|
||||
.'VALUES('.$event->id.','.$event->recur_type.','.$end.','.$event->recur_data.','.$event->recur_interval.')',__LINE__,__FILE__);
|
||||
.'VALUES('.$event['id'].','.$event['recur_type'].','.$end.','.$event['recur_data'].','.$event['recur_interval'].')',__LINE__,__FILE__);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->stream->query('UPDATE phpgw_cal_repeats '
|
||||
.'SET recur_type='.$event->recur_type.', '
|
||||
.'SET recur_type='.$event['recur_type'].', '
|
||||
.'recur_enddate='.$end.', '
|
||||
.'recur_data='.$event->recur_data.', recur_interval='.$event->recur_interval.' '
|
||||
.'WHERE cal_id='.$event->id,__LINE__,__FILE__);
|
||||
.'recur_data='.$event['recur_data'].', recur_interval='.$event['recur_interval'].' '
|
||||
.'WHERE cal_id='.$event['id'],__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->stream->query('DELETE FROM phpgw_cal_repeats WHERE cal_id='.$event->id,__LINE__,__FILE__);
|
||||
$this->stream->query('DELETE FROM phpgw_cal_repeats WHERE cal_id='.$event['id'],__LINE__,__FILE__);
|
||||
}
|
||||
|
||||
$this->stream->unlock();
|
||||
@ -456,6 +444,11 @@ class socalendar_ extends socalendar__
|
||||
|
||||
// End of ICal style support.......
|
||||
|
||||
function maketime($time)
|
||||
{
|
||||
return mktime($time['hour'],$time['min'],$time['sec'],$time['month'],$time['mday'],$time['year']);
|
||||
}
|
||||
|
||||
function group_search($owner=0)
|
||||
{
|
||||
global $phpgw, $phpgw_info;
|
||||
|
@ -434,51 +434,45 @@
|
||||
|
||||
$event = $this->bo->read_entry($cal_id);
|
||||
|
||||
if(!isset($event->id))
|
||||
if(!isset($event['id']))
|
||||
{
|
||||
echo lang("Sorry, this event does not exist").'.'.'</center>';
|
||||
return;
|
||||
}
|
||||
|
||||
echo $this->view_event($event);
|
||||
|
||||
if ($this->bo->owner == $event->owner && $this->bo->check_perms(PHPGW_ACL_EDIT) == True)
|
||||
|
||||
if($this->bo->owner == $event['owner'])
|
||||
{
|
||||
$p = CreateObject('phpgwapi.Template',$this->template_dir);
|
||||
$templates = Array(
|
||||
'form_button' => 'form_button_script.tpl'
|
||||
);
|
||||
$p->set_file($templates);
|
||||
|
||||
$var = Array(
|
||||
'action_url_button' => $this->page('edit','&cal_id='.$cal_id),
|
||||
'action_text_button' => lang('Edit'),
|
||||
'action_confirm_button' => '',
|
||||
'action_extra_field' => ''
|
||||
);
|
||||
$p->set_var($var);
|
||||
echo $p->fp('out','form_button');
|
||||
}
|
||||
|
||||
if ($this->bo->owner == $event->owner && $this->bo->check_perms(PHPGW_ACL_DELETE) == True)
|
||||
{
|
||||
if(!is_object($p))
|
||||
{
|
||||
$p = CreateObject('phpgwapi.Template',$this->template_dir);
|
||||
$templates = Array(
|
||||
'form_button' => 'form_button_script.tpl'
|
||||
);
|
||||
$p->set_file($templates);
|
||||
}
|
||||
|
||||
$var = Array(
|
||||
'action_url_button' => $this->page('delete','&cal_id='.$cal_id),
|
||||
'action_text_button' => lang('Delete'),
|
||||
'action_confirm_button' => "onClick=\"return confirm('".lang("Are you sure\\nyou want to\\ndelete this entry ?\\n\\nThis will delete\\nthis entry for all users.")."')\"",
|
||||
'action_extra_field' => ''
|
||||
);
|
||||
$p->set_var($var);
|
||||
echo $p->fp('out','form_button');
|
||||
if ($this->bo->check_perms(PHPGW_ACL_EDIT))
|
||||
{
|
||||
$var = Array(
|
||||
'action_url_button' => $this->page('edit','&cal_id='.$cal_id),
|
||||
'action_text_button' => lang('Edit'),
|
||||
'action_confirm_button' => '',
|
||||
'action_extra_field' => ''
|
||||
);
|
||||
$p->set_var($var);
|
||||
echo $p->fp('out','form_button');
|
||||
}
|
||||
|
||||
if ($this->bo->check_perms(PHPGW_ACL_DELETE))
|
||||
{
|
||||
$var = Array(
|
||||
'action_url_button' => $this->page('delete','&cal_id='.$cal_id),
|
||||
'action_text_button' => lang('Delete'),
|
||||
'action_confirm_button' => "onClick=\"return confirm('".lang("Are you sure\\nyou want to\\ndelete this entry ?\\n\\nThis will delete\\nthis entry for all users.")."')\"",
|
||||
'action_extra_field' => ''
|
||||
);
|
||||
$p->set_var($var);
|
||||
echo $p->fp('out','form_button');
|
||||
}
|
||||
}
|
||||
echo '</center>';
|
||||
}
|
||||
@ -523,7 +517,7 @@
|
||||
if(isset($readsess))
|
||||
{
|
||||
$event = $this->bo->restore_from_appsession;
|
||||
if($event->owner == 0)
|
||||
if(!$event['owner'])
|
||||
{
|
||||
$this->bo->add_attribute('owner',$this->bo->owner);
|
||||
}
|
||||
@ -551,7 +545,7 @@
|
||||
{
|
||||
$this->bo->set_class(True);
|
||||
}
|
||||
$this->bo->add_attribute('participants['.$this->bo->owner.']','A');
|
||||
$this->bo->add_attribute('participants','A',$this->bo->owner);
|
||||
$this->bo->set_recur_none();
|
||||
$event = $this->bo->get_cached_event();
|
||||
}
|
||||
@ -562,9 +556,9 @@
|
||||
{
|
||||
global $cal_id;
|
||||
$event = $this->bo->read_entry(intval($cal_id));
|
||||
if(($cal_id > 0) && ($event->owner == $this->bo->owner) && ($this->bo->check_perms(PHPGW_ACL_DELETE) == True))
|
||||
if(($cal_id > 0) && ($event['owner'] == $this->bo->owner) && !$this->bo->check_perms(PHPGW_ACL_DELETE))
|
||||
{
|
||||
$date = sprintf("%04d%02d%02d",$event->start->year,$event->start->month,$event->start->mday);
|
||||
$date = sprintf("%04d%02d%02d",$event['start']['year'],$event['start']['month'],$event['start']['mday']);
|
||||
|
||||
$cd = $this->bo->delete_entry(intval($cal_id));
|
||||
$this->bo->expunge();
|
||||
@ -757,7 +751,6 @@
|
||||
);
|
||||
|
||||
$p->set_var($var);
|
||||
|
||||
$p->pparse('out','day_t');
|
||||
}
|
||||
|
||||
@ -773,7 +766,7 @@
|
||||
|
||||
$event = $this->bo->read_entry($cal_id);
|
||||
|
||||
reset($event->participants);
|
||||
reset($event['participants']);
|
||||
|
||||
if(!$event->participants[$this->bo->owner])
|
||||
{
|
||||
@ -787,12 +780,12 @@
|
||||
return;
|
||||
}
|
||||
|
||||
$freetime = $this->bo->datetime->localdates(mktime(0,0,0,$event->start->month,$event->start->mday,$event->start->year) - $this->bo->datetime->tz_offset);
|
||||
echo $this->timematrix($freetime,$this->bo->splittime('000000',False),0,$event->participants);
|
||||
$freetime = $this->bo->datetime->localdates(mktime(0,0,0,$event['start']['month'],$event['start']['mday'],$event['start']['year']) - $this->bo->datetime->tz_offset);
|
||||
echo $this->timematrix($freetime,$this->bo->splittime('000000',False),0,$event['participants']);
|
||||
|
||||
echo $this->view_event($event);
|
||||
|
||||
echo $this->get_response($event->id);
|
||||
echo $this->get_response($event['id']);
|
||||
}
|
||||
|
||||
function set_action()
|
||||
@ -869,28 +862,28 @@
|
||||
for($g=0;$g<count($daily);$g++)
|
||||
{
|
||||
$event = $daily[$g];
|
||||
$start = $this->bo->datetime->localdates($event->datetime);
|
||||
$end = $this->bo->datetime->localdates($event->edatetime);
|
||||
$start = $this->bo->datetime->gmtdate($this->bo->maketime($event['start']));
|
||||
$end = $this->bo->datetime->gmtdate($this->bo->maketime($event['end']));
|
||||
|
||||
$view = $html->link('/index.php',
|
||||
array(
|
||||
'menuaction' => 'calendar.uicalendar.view',
|
||||
'cal_id' => $event->id
|
||||
'cal_id' => $event['id']
|
||||
)
|
||||
);
|
||||
|
||||
$start_cell = $intervals_per_day * (intval(substr($v,6,2)) - 1);
|
||||
$start_cell += $interval[$event->start->hour];
|
||||
$start_cell += $interval[$event['start']['hour']];
|
||||
|
||||
$end_cell = $interval_per_day = $intervals_per_day * (intval(substr($v,6,2))-1);
|
||||
$end_cell += $interval[$event->end->hour];
|
||||
$end_cell += $interval[$event['end']['hour']];
|
||||
|
||||
$i = 0; // search for row of parent category
|
||||
do {
|
||||
++$i;
|
||||
if ($c = $event->category)
|
||||
if ($c = $event['category'])
|
||||
{
|
||||
$cat = $this->planner_category($event->category);
|
||||
$cat = $this->planner_category($event['category']);
|
||||
if ($cat['parent'])
|
||||
{
|
||||
$pcat = $this->planner_category($c = $cat['parent']);
|
||||
@ -926,11 +919,11 @@
|
||||
if ($akt_cell < $start_cell)
|
||||
{
|
||||
$row[$event->id.'_1'] = ' ';
|
||||
$row['.'.$event->id.'_1'] = 'colspan='.($start_cell-$akt_cell);
|
||||
$row['.'.$event['id'].'_1'] = 'colspan='.($start_cell-$akt_cell);
|
||||
}
|
||||
|
||||
$opt = &$row['.'.$event->id.'_2'];
|
||||
$cel = &$row[$event->id.'_2'];
|
||||
$opt = &$row['.'.$event['id'].'_2'];
|
||||
$cel = &$row[$event['id'].'_2'];
|
||||
if ($start_cell < $end_cell)
|
||||
{
|
||||
$opt .= "colspan=".(1 + $end_cell - $start_cell);
|
||||
@ -940,18 +933,18 @@
|
||||
{
|
||||
$opt .= " bgcolor=$bgcolor";
|
||||
}
|
||||
$opt .= ' title="'.$event->title;
|
||||
if ($event->description)
|
||||
$opt .= ' title="'.$event['title'];
|
||||
if ($event['description'])
|
||||
{
|
||||
$opt .= " \n".$event->description;
|
||||
$opt .= " \n".$event['description'];
|
||||
}
|
||||
$opt .= '" onClick="location=\''.$view.'\'"';
|
||||
$cel = '<a href="'.$view.'">';
|
||||
if ($event->priority == 3)
|
||||
if ($event['priority'] == 3)
|
||||
{
|
||||
$cel .= $html->image('calendar','mini-calendar-bar.gif','','border=0');
|
||||
}
|
||||
$cel .= $html->image('calendar',count($event->participants)>1?'multi_3.gif':'single.gif',$this->planner_participants($event->participants),'border=0');
|
||||
$cel .= $html->image('calendar',count($event['participants)']>1?'multi_3.gif':'single.gif',$this->planner_participants($event['participants']),'border=0');
|
||||
$cel .= '</a>';
|
||||
|
||||
$akt_cell = $end_cell + 1;
|
||||
@ -1211,10 +1204,10 @@
|
||||
{
|
||||
$event = $this->bo->read_entry($id);
|
||||
|
||||
$datetime = mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year) - $phpgw->calendar->datetime->tz_offset;
|
||||
$datetime = $this->bo->maketime($event['start']) - $phpgw->calendar->datetime->tz_offset;
|
||||
|
||||
$ids[strval($event->id)]++;
|
||||
$info[strval($event->id)] = $phpgw->common->show_date($datetime).$this->link_to_entry($event,$event->start->month,$event->start->mday,$event->start->year);
|
||||
$ids[strval($event['id'])]++;
|
||||
$info[strval($event['id'])] = $phpgw->common->show_date($datetime).$this->link_to_entry($event,$event['start']['month'],$event['start']['mday'],$event['start']['year']);
|
||||
|
||||
}
|
||||
$matches = count($event_ids);
|
||||
@ -1371,8 +1364,6 @@
|
||||
if (@$this->bo->printer_friendly)
|
||||
{
|
||||
return;
|
||||
// $phpgw->common->phpgw_footer();
|
||||
// $phpgw->common->phpgw_exit();
|
||||
}
|
||||
|
||||
$p = CreateObject('phpgwapi.Template',$this->template_dir);
|
||||
@ -1502,8 +1493,8 @@
|
||||
$p->set_block('link_picture','link_close','link_close');
|
||||
$p->set_block('link_picture','link_text','link_text');
|
||||
|
||||
$starttime = mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year) - $this->bo->datetime->tz_offset;
|
||||
$endtime = mktime($event->end->hour,$event->end->min,$event->end->sec,$event->end->month,$event->end->mday,$event->end->year) - $this->bo->datetime->tz_offset;
|
||||
$starttime = $this->bo->maketime($event['start']) - $this->bo->datetime->tz_offset;
|
||||
$endtime = $this->bo->maketime($event['end']) - $this->bo->datetime->tz_offset;
|
||||
$rawdate = mktime(0,0,0,$month,$day,$year);
|
||||
$rawdate_offset = $rawdate - $this->bo->datetime->tz_offset;
|
||||
$nextday = mktime(0,0,0,$month,$day + 1,$year) - $this->bo->datetime->tz_offset;
|
||||
@ -1517,7 +1508,7 @@
|
||||
}
|
||||
elseif (intval($phpgw->common->show_date($starttime,'Hi')) || $starttime != $endtime)
|
||||
{
|
||||
if($starttime < $rawdate_offset && $event->recur_type==MCAL_RECUR_NONE)
|
||||
if($starttime < $rawdate_offset && $event['recur_type']==MCAL_RECUR_NONE)
|
||||
{
|
||||
$start_time = $phpgw->common->show_date($rawdate_offset,$this->bo->users_timeformat);
|
||||
}
|
||||
@ -1543,17 +1534,17 @@
|
||||
$text = '';;
|
||||
if(!$is_private)
|
||||
{
|
||||
$text .= $this->bo->display_status($event->users_status);
|
||||
$text .= $this->bo->display_status($event['users_status']);
|
||||
}
|
||||
$text = '<font size="-2" face="'.$phpgw_info['theme']['font'].'"><nobr>'.$time.'</nobr> '.$this->bo->get_short_field($event,$is_private,'title').$text.'</font>'.$phpgw->browser->br;
|
||||
|
||||
if ($editable)
|
||||
{
|
||||
$p->set_var('link_link',$this->page('view','&cal_id='.$event->id));
|
||||
$p->set_var('link_link',$this->page('view','&cal_id='.$event['id']));
|
||||
$p->set_var('lang_view',lang('View this entry'));
|
||||
$p->parse('picture','link_open',True);
|
||||
|
||||
if($event->priority == 3)
|
||||
if($event['priority'] == 3)
|
||||
{
|
||||
$picture[] = Array(
|
||||
'pict' => $phpgw->common->image('calendar','high.gif'),
|
||||
@ -1561,7 +1552,7 @@
|
||||
'height' => 17
|
||||
);
|
||||
}
|
||||
if($event->recur_type == MCAL_RECUR_NONE)
|
||||
if($event['recur_type'] == MCAL_RECUR_NONE)
|
||||
{
|
||||
$picture[] = Array(
|
||||
'pict' => $phpgw->common->image('calendar','circle.gif'),
|
||||
@ -1577,7 +1568,7 @@
|
||||
'height' => 12
|
||||
);
|
||||
}
|
||||
if(count($event->participants) > 1)
|
||||
if(count($event['participants']) > 1)
|
||||
{
|
||||
$picture[] = Array(
|
||||
'pict' => $phpgw->common->image('calendar','multi_3.gif'),
|
||||
@ -1585,7 +1576,7 @@
|
||||
'height' => 14
|
||||
);
|
||||
}
|
||||
if($event->public == 0)
|
||||
if($event['public'] == 0)
|
||||
{
|
||||
$picture[] = Array(
|
||||
'pict' => $phpgw->common->image('calendar','private.gif'),
|
||||
@ -1632,7 +1623,7 @@
|
||||
$year = $event->start->year;
|
||||
|
||||
$start = mktime($event->start->hour,$event->start->min,$event->start->sec,$month,$mday,$year) - $this->bo->datetime->tz_offset;
|
||||
$end = mktime($event->end->hour,$event->end->min,$event->end->sec,$event->end->month,$event->end->mday,$event->end->year) - $this->bo->datetime->tz_offset;
|
||||
$end = $this->bo->maketime($event['end']) - $this->bo->datetime->tz_offset;
|
||||
|
||||
$overlap = '';
|
||||
for($i=0;$i<count($overlapping_events);$i++)
|
||||
@ -2017,18 +2008,18 @@
|
||||
|
||||
// Some browser add a \n when its entered in the database. Not a big deal
|
||||
// this will be printed even though its not needed.
|
||||
if (nl2br($event->description))
|
||||
if (nl2br($event['description']))
|
||||
{
|
||||
$var[] = Array(
|
||||
'field' => lang('Description'),
|
||||
'data' => nl2br($event->description)
|
||||
'data' => nl2br($event['description'])
|
||||
);
|
||||
}
|
||||
|
||||
if ($event->category)
|
||||
if ($event['category'])
|
||||
{
|
||||
$this->cat->categories($this->bo->owner,'calendar');
|
||||
$cat = $this->cat->return_single($event->category);
|
||||
$cat = $this->cat->return_single($event['category']);
|
||||
$var[] = Array(
|
||||
'field' => lang('Category'),
|
||||
'data' => $cat[0]['name']
|
||||
@ -2037,44 +2028,44 @@
|
||||
|
||||
$var[] = Array(
|
||||
'field' => lang('Start Date/Time'),
|
||||
'data' => $phpgw->common->show_date(mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year) - $this->bo->datetime->tz_offset)
|
||||
'data' => $phpgw->common->show_date($this->bo->maketime($event['start']) - $this->bo->datetime->tz_offset)
|
||||
);
|
||||
|
||||
$var[] = Array(
|
||||
'field' => lang('End Date/Time'),
|
||||
'data' => $phpgw->common->show_date(mktime($event->end->hour,$event->end->min,$event->end->sec,$event->end->month,$event->end->mday,$event->end->year) - $this->bo->datetime->tz_offset)
|
||||
'data' => $phpgw->common->show_date($this->bo->maketime($event['end']) - $this->bo->datetime->tz_offset)
|
||||
);
|
||||
|
||||
$var[] = Array(
|
||||
'field' => lang('Priority'),
|
||||
'data' => $pri[$event->priority]
|
||||
'data' => $pri[$event['priority']]
|
||||
);
|
||||
|
||||
$var[] = Array(
|
||||
'field' => lang('Created By'),
|
||||
'data' => $phpgw->common->grab_owner_name($event->owner)
|
||||
'data' => $phpgw->common->grab_owner_name($event['owner'])
|
||||
);
|
||||
|
||||
$var[] = Array(
|
||||
'field' => lang('Updated'),
|
||||
'data' => $phpgw->common->show_date(mktime($event->mod->hour,$event->mod->min,$event->mod->sec,$event->mod->month,$event->mod->mday,$event->mod->year) - $this->bo->datetime->tz_offset)
|
||||
'data' => $phpgw->common->show_date($this->bo->maketime($event['modtime']) - $this->bo->datetime->tz_offset)
|
||||
);
|
||||
|
||||
$var[] = Array(
|
||||
'field' => lang('Private'),
|
||||
'data' => $event->public==True?'False':'True'
|
||||
'data' => $event['public']==True?'False':'True'
|
||||
);
|
||||
|
||||
if($event->groups[0])
|
||||
{
|
||||
$cal_grps = '';
|
||||
for($i=0;$i<count($event->groups);$i++)
|
||||
for($i=0;$i<count($event['groups']);$i++)
|
||||
{
|
||||
if($i>0)
|
||||
{
|
||||
$cal_grps .= '<br>';
|
||||
}
|
||||
$cal_grps .= $phpgw->accounts->id2name($event->groups[$i]);
|
||||
$cal_grps .= $phpgw->accounts->id2name($event['groups'][$i]);
|
||||
}
|
||||
|
||||
$var[] = Array(
|
||||
@ -2084,8 +2075,8 @@
|
||||
}
|
||||
|
||||
$str = '';
|
||||
reset($event->participants);
|
||||
while (list($user,$short_status) = each($event->participants))
|
||||
reset($event['participants']);
|
||||
while (list($user,$short_status) = each($event['participants']))
|
||||
{
|
||||
if($phpgw->accounts->exists($user))
|
||||
{
|
||||
@ -2113,56 +2104,56 @@
|
||||
MCAL_RECUR_MONTHLY_MDAY => 'monthlybydate',
|
||||
MCAL_RECUR_YEARLY => 'yearly'
|
||||
);
|
||||
$str = lang($rpt_type[$event->recur_type]);
|
||||
if($event->recur_type <> MCAL_RECUR_NONE)
|
||||
$str = lang($rpt_type[$event['recur_type']]);
|
||||
if($event['recur_type'] <> MCAL_RECUR_NONE)
|
||||
{
|
||||
$str_extra = '';
|
||||
if ($event->recur_enddate->mday != 0 && $event->recur_enddate->month != 0 && $event->recur_enddate->year != 0)
|
||||
if ($event['recur_enddate']['mday'] != 0 && $event['recur_enddate']['month'] != 0 && $event['recur_enddate']['year'] != 0)
|
||||
{
|
||||
$recur_end = mktime($event->recur_enddate->hour,$event->recur_enddate->min,$event->recur_enddate->sec,$event->recur_enddate->month,$event->recur_enddate->mday,$event->recur_enddate->year);
|
||||
$recur_end = $this-bo->maketime($event['recur_enddate']);
|
||||
if($recur_end != 0)
|
||||
{
|
||||
$recur_end -= $this->bo->datetime->tz_offset;
|
||||
$str_extra .= lang('ends').': '.lang($phpgw->common->show_date($recur_end,'l')).', '.lang($phpgw->common->show_date($recur_end,'F')).' '.$phpgw->common->show_date($recur_end,'d, Y').' ';
|
||||
}
|
||||
}
|
||||
if($event->recur_type == MCAL_RECUR_WEEKLY || $event->recur_type == MCAL_RECUR_DAILY)
|
||||
if($event['recur_type'] == MCAL_RECUR_WEEKLY || $event['recur_type'] == MCAL_RECUR_DAILY)
|
||||
{
|
||||
$repeat_days = '';
|
||||
if($this->bo->prefs['calendar']['weekdaystarts'] == 'Sunday')
|
||||
{
|
||||
if (!!($event->recur_data & MCAL_M_SUNDAY) == True)
|
||||
if (!!($event['recur_data'] & MCAL_M_SUNDAY) == True)
|
||||
{
|
||||
$this->view_add_day(lang('Sunday'),$repeat_days);
|
||||
}
|
||||
}
|
||||
if (!!($event->recur_data & MCAL_M_MONDAY) == True)
|
||||
if (!!($event['recur_data'] & MCAL_M_MONDAY) == True)
|
||||
{
|
||||
$this->view_add_day(lang('Monday'),$repeat_days);
|
||||
}
|
||||
if (!!($event->recur_data & MCAL_M_TUESDAY) == True)
|
||||
if (!!($event['recur_data'] & MCAL_M_TUESDAY) == True)
|
||||
{
|
||||
$this->view_add_day(lang('Tuesday'),$repeat_days);
|
||||
}
|
||||
if (!!($event->recur_data & MCAL_M_WEDNESDAY) == True)
|
||||
if (!!($event['recur_data'] & MCAL_M_WEDNESDAY) == True)
|
||||
{
|
||||
$this->view_add_day(lang('Wednesday'),$repeat_days);
|
||||
}
|
||||
if (!!($event->recur_data & MCAL_M_THURSDAY) == True)
|
||||
if (!!($event['recur_data'] & MCAL_M_THURSDAY) == True)
|
||||
{
|
||||
$this->view_add_day(lang('Thursday'),$repeat_days);
|
||||
}
|
||||
if (!!($event->recur_data & MCAL_M_FRIDAY) == True)
|
||||
if (!!($event['recur_data'] & MCAL_M_FRIDAY) == True)
|
||||
{
|
||||
$this->view_add_day(lang('Friday'),$repeat_days);
|
||||
}
|
||||
if (!!($event->recur_data & MCAL_M_SATURDAY) == True)
|
||||
if (!!($event['recur_data'] & MCAL_M_SATURDAY) == True)
|
||||
{
|
||||
$this->view_add_day(lang('Saturday'),$repeat_days);
|
||||
}
|
||||
if($this->bo->prefs['calendar']['weekdaystarts'] == 'Monday')
|
||||
{
|
||||
if (!!($event->recur_data & MCAL_M_SUNDAY) == True)
|
||||
if (!!($event['recur_data'] & MCAL_M_SUNDAY) == True)
|
||||
{
|
||||
$this->view_add_day(lang('Sunday'),$repeat_days);
|
||||
}
|
||||
@ -2172,9 +2163,9 @@
|
||||
$str_extra .= lang('days repeated').': '.$repeat_days;
|
||||
}
|
||||
}
|
||||
if($event->recur_interval)
|
||||
if($event['recur_interval'])
|
||||
{
|
||||
$str_extra .= lang('Interval').': '.$event->recur_interval;
|
||||
$str_extra .= lang('Interval').': '.$event['recur_interval'];
|
||||
}
|
||||
|
||||
if($str_extra)
|
||||
@ -2196,10 +2187,6 @@
|
||||
return $p->fp('out','view_event');
|
||||
}
|
||||
|
||||
function html_for_day($event,&$time,$month,$day,$year,&$rowspan,&$rowspan_arr)
|
||||
{
|
||||
}
|
||||
|
||||
function print_day($year,$month,$day)
|
||||
{
|
||||
global $phpgw, $phpgw_info;
|
||||
@ -2254,9 +2241,6 @@
|
||||
$rowspan_arr[$i] = 0;
|
||||
}
|
||||
|
||||
$events = Array(
|
||||
CreateObject('calendar.calendar_item')
|
||||
);
|
||||
$date_to_eval = sprintf("%04d%02d%02d",$year,$month,$day);
|
||||
|
||||
$time = Array();
|
||||
@ -2270,7 +2254,7 @@
|
||||
for($i=0;$i<$c_events;$i++)
|
||||
{
|
||||
$event = $events[$i];
|
||||
$ind = intval($event->start->hour);
|
||||
$ind = intval($event['start']['hour']);
|
||||
|
||||
if($ind < (int)$this->bo->prefs['calendar']['workdaystarts'] || $ind > (int)$this->bo->prefs['calendar']['workdayends'])
|
||||
{
|
||||
@ -2284,8 +2268,8 @@
|
||||
|
||||
$time[$ind] .= $this->link_to_entry($event,$month,$day,$year);
|
||||
|
||||
$starttime = mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year);
|
||||
$endtime = mktime($event->end->hour,$event->end->min,$event->end->sec,$event->end->month,$event->end->mday,$event->end->year);
|
||||
$starttime = $this->bo->maketime($event['start']);
|
||||
$endtime = $this->bo->maketime($event['end']);
|
||||
|
||||
if ($starttime <> $endtime)
|
||||
{
|
||||
@ -2585,8 +2569,8 @@
|
||||
|
||||
$sb = CreateObject('phpgwapi.sbox');
|
||||
|
||||
$start = mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year) - $this->bo->datetime->tz_offset;
|
||||
$end = mktime($event->end->hour,$event->end->min,$event->end->sec,$event->end->month,$event->end->mday,$event->end->year) - $this->bo->datetime->tz_offset;
|
||||
$start = $this->bo->maketime($event['start']) - $this->bo->datetime->tz_offset;
|
||||
$end = $this->bo->maketime($event['end']) - $this->bo->datetime->tz_offset;
|
||||
|
||||
unset($phpgw_info['flags']['noheader']);
|
||||
unset($phpgw_info['flags']['nonavbar']);
|
||||
@ -2609,9 +2593,9 @@
|
||||
'font' => $phpgw_info['theme']['font'],
|
||||
'bg_color' => $phpgw_info['theme']['bg_text'],
|
||||
'calendar_action' => ($event->id?lang('Calendar - Edit'):lang('Calendar - Add')),
|
||||
/* 'action_url' => $phpgw->link('/index.php','menuaction=calendar.bocalendar.'.($event->id?'update':'add')), */
|
||||
/* 'action_url' => $phpgw->link('/index.php','menuaction=calendar.bocalendar.'.($event['id']?'update':'add')), */
|
||||
'action_url' => $phpgw->link('/index.php','menuaction=calendar.bocalendar.update'),
|
||||
'common_hidden' => '<input type="hidden" name="cal[id]" value="'.$event->id.'">'."\n"
|
||||
'common_hidden' => '<input type="hidden" name="cal[id]" value="'.$event['id'].'">'."\n"
|
||||
. '<input type="hidden" name="cal[owner]" value="'.$this->bo->owner.'">'."\n",
|
||||
'errormsg' => ($cd?$phpgw->common->check_code($cd):'')
|
||||
);
|
||||
@ -2620,19 +2604,19 @@
|
||||
// Brief Description
|
||||
$var[] = Array(
|
||||
'field' => lang('Title'),
|
||||
'data' => '<input name="cal[title]" size="25" maxlength="80" value="'.$event->title.'">'
|
||||
'data' => '<input name="cal[title]" size="25" maxlength="80" value="'.$event['title'].'">'
|
||||
);
|
||||
|
||||
// Full Description
|
||||
$var[] = Array(
|
||||
'field' => lang('Full Description'),
|
||||
'data' => '<textarea name="cal[description]" rows="5" cols="40" wrap="virtual" maxlength="2048">'.$event->description.'</textarea>'
|
||||
'data' => '<textarea name="cal[description]" rows="5" cols="40" wrap="virtual" maxlength="2048">'.$event['description'].'</textarea>'
|
||||
);
|
||||
|
||||
// Display Categories
|
||||
$var[] = Array(
|
||||
'field' => lang('Category'),
|
||||
'data' => '<select name="cal[category]"><option value="">'.lang('Choose the category').'</option>'.$this->cat->formated_list('select','all',$event->category,True).'</select>'
|
||||
'data' => '<select name="cal[category]"><option value="">'.lang('Choose the category').'</option>'.$this->cat->formated_list('select','all',$event['category'],True).'</select>'
|
||||
);
|
||||
|
||||
// Date
|
||||
@ -2680,13 +2664,13 @@
|
||||
// Priority
|
||||
$var[] = Array(
|
||||
'field' => lang('Priority'),
|
||||
'data' => $sb->getPriority('cal[priority]',$event->priority)
|
||||
'data' => $sb->getPriority('cal[priority]',$event['priority'])
|
||||
);
|
||||
|
||||
// Access
|
||||
$var[] = Array(
|
||||
'field' => lang('Private'),
|
||||
'data' => '<input type="checkbox" name="cal[private]" value="private"'.(!$event->public?' checked':'').'>'
|
||||
'data' => '<input type="checkbox" name="cal[private]" value="private"'.(!$event['public']?' checked':'').'>'
|
||||
);
|
||||
|
||||
// Participants
|
||||
@ -2701,7 +2685,7 @@
|
||||
{
|
||||
if(intval($id) != intval($this->bo->owner))
|
||||
{
|
||||
$str .= ' <option value="' . $id . '"'.($event->participants[$id]?' selected':'').'>('.$phpgw->accounts->get_type($id).') '.$name.'</option>'."\n";
|
||||
$str .= ' <option value="' . $id . '"'.($event['participants'][$id]?' selected':'').'>('.$phpgw->accounts->get_type($id).') '.$name.'</option>'."\n";
|
||||
}
|
||||
}
|
||||
$var[] = Array(
|
||||
@ -2710,7 +2694,7 @@
|
||||
);
|
||||
|
||||
// I Participate
|
||||
if((($cal_id > 0) && isset($event->participants[$this->bo->owner])) || !isset($cal_id))
|
||||
if((($cal_id > 0) && isset($event['participants'][$this->bo->owner])) || !isset($cal_id))
|
||||
{
|
||||
$checked = ' checked';
|
||||
}
|
||||
@ -2754,22 +2738,22 @@
|
||||
$str = '';
|
||||
for($l=0;$l<count($rpt_type);$l++)
|
||||
{
|
||||
$str .= '<option value="'.$rpt_type[$l].'"'.($event->recur_type==$rpt_type[$l]?' selected':'').'>'.lang($rpt_type_out[$rpt_type[$l]]).'</option>';
|
||||
$str .= '<option value="'.$rpt_type[$l].'"'.($event['recur_type']==$rpt_type[$l]?' selected':'').'>'.lang($rpt_type_out[$rpt_type[$l]]).'</option>';
|
||||
}
|
||||
$var[] = Array(
|
||||
'field' => lang('Repeat Type'),
|
||||
'data' => '<select name="cal[recur_type]">'."\n".$str.'</select>'."\n"
|
||||
);
|
||||
|
||||
if($event->recur_enddate->year != 0 && $event->recur_enddate->month != 0 && $event->recur_enddate->mday != 0)
|
||||
if($event['recur_enddate']['year'] != 0 && $event['recur_enddate']['month'] != 0 && $event['recur_enddate']['mday'] != 0)
|
||||
{
|
||||
$checked = ' checked';
|
||||
$recur_end = mktime($event->recur_enddate->hour,$event->recur_enddate->min,$event->recur_enddate->sec,$event->recur_enddate->month,$event->recur_enddate->mday,$event->recur_enddate->year) - $this->bo->datetime->tz_offset;
|
||||
$recur_end = $this->bo->maketime($event['recur_enddate']) - $this->bo->datetime->tz_offset;
|
||||
}
|
||||
else
|
||||
{
|
||||
$checked = '';
|
||||
$recur_end = mktime($event->start->hour,$event->start->min,$event->start->sec,$event->start->month,$event->start->mday,$event->start->year) + 86400 - $this->bo->datetime->tz_offset;
|
||||
$recur_end = $this->bo->maketime($event['start']) + 86400 - $this->bo->datetime->tz_offset;
|
||||
}
|
||||
|
||||
$var[] = Array(
|
||||
@ -2784,18 +2768,18 @@
|
||||
|
||||
$var[] = Array(
|
||||
'field' => lang('Repeat Day').'<br>'.lang('(for weekly)'),
|
||||
'data' => '<input type="checkbox" name="cal[rpt_sun]" value="'.MCAL_M_SUNDAY.'"'.(($event->recur_data & MCAL_M_SUNDAY) ?' checked':'').'> '.lang('Sunday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_mon]" value="'.MCAL_M_MONDAY.'"'.(($event->recur_data & MCAL_M_MONDAY) ?' checked':'').'> '.lang('Monday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_tue]" value="'.MCAL_M_TUESDAY.'"'.(($event->recur_data & MCAL_M_TUESDAY) ?' checked':'').'> '.lang('Tuesday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_wed]" value="'.MCAL_M_WEDNESDAY.'"'.(($event->recur_data & MCAL_M_WEDNESDAY) ?' checked':'').'> '.lang('Wednesday').' <br>'
|
||||
. '<input type="checkbox" name="cal[rpt_thu]" value="'.MCAL_M_THURSDAY.'"'.(($event->recur_data & MCAL_M_THURSDAY) ?' checked':'').'> '.lang('Thursday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_fri]" value="'.MCAL_M_FRIDAY.'"'.(($event->recur_data & MCAL_M_FRIDAY) ?' checked':'').'> '.lang('Friday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_sat]" value="'.MCAL_M_SATURDAY.'"'.(($event->recur_data & MCAL_M_SATURDAY) ?' checked':'').'> '.lang('Saturday').' '
|
||||
'data' => '<input type="checkbox" name="cal[rpt_sun]" value="'.MCAL_M_SUNDAY.'"'.(($event['recur_data'] & MCAL_M_SUNDAY) ?' checked':'').'> '.lang('Sunday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_mon]" value="'.MCAL_M_MONDAY.'"'.(($event['recur_data'] & MCAL_M_MONDAY) ?' checked':'').'> '.lang('Monday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_tue]" value="'.MCAL_M_TUESDAY.'"'.(($event['recur_data'] & MCAL_M_TUESDAY) ?' checked':'').'> '.lang('Tuesday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_wed]" value="'.MCAL_M_WEDNESDAY.'"'.(($event['recur_data'] & MCAL_M_WEDNESDAY) ?' checked':'').'> '.lang('Wednesday').' <br>'
|
||||
. '<input type="checkbox" name="cal[rpt_thu]" value="'.MCAL_M_THURSDAY.'"'.(($event['recur_data'] & MCAL_M_THURSDAY) ?' checked':'').'> '.lang('Thursday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_fri]" value="'.MCAL_M_FRIDAY.'"'.(($event['recur_data'] & MCAL_M_FRIDAY) ?' checked':'').'> '.lang('Friday').' '
|
||||
. '<input type="checkbox" name="cal[rpt_sat]" value="'.MCAL_M_SATURDAY.'"'.(($event['recur_data'] & MCAL_M_SATURDAY) ?' checked':'').'> '.lang('Saturday').' '
|
||||
);
|
||||
|
||||
$var[] = Array(
|
||||
'field' => lang('Frequency'),
|
||||
'data' => '<input name="cal[recur_interval]" size="4" maxlength="4" value="'.$event->recur_interval.'">'
|
||||
'data' => '<input name="cal[recur_interval]" size="4" maxlength="4" value="'.$event['recur_interval'].'">'
|
||||
);
|
||||
|
||||
for($i=0;$i<count($var);$i++)
|
||||
|
82
calendar/soap_client.php
Executable file
82
calendar/soap_client.php
Executable file
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* phpGroupWare - calendar *
|
||||
* http://www.phpgroupware.org *
|
||||
* Written by Mark A Peters <skeeter@phpgroupware.org> *
|
||||
* -------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
$phpgw_info['flags'] = array(
|
||||
'disable_template_class' => True,
|
||||
// 'login' => True,
|
||||
'currentapp' => 'calendar',
|
||||
'noheader' => True,
|
||||
'nofooter' => True);
|
||||
|
||||
include('../header.inc.php');
|
||||
include('../soap/vars.php');
|
||||
|
||||
$method_params = Array();
|
||||
$server['calendar.bocalendar.read_entry'] = array(
|
||||
'soapaction' => "urn:soapinterop",
|
||||
'endpoint' => "http://devel/phpgroupware/calendar/soap_server.php?sessionid=c849d2572fe94cbccdf67c5a33ef7d15&kp3=dc6d2b287cce75e8794fec51ee78c3cb&domain=default",
|
||||
// 'endpoint' => "http://devel/phpgroupware/calendar/soap_server.php",
|
||||
'methodNamespace' => "http://soapinterop.org",
|
||||
'soapactionNeedsMethod' => 0,
|
||||
'name' => 'phpGW calendar - read_entry'
|
||||
);
|
||||
|
||||
$server['calendar.bocalendar.store_to_cache'] = array(
|
||||
'soapaction' => "urn:soapinterop",
|
||||
'endpoint' => "http://devel/phpgroupware/calendar/soap_server.php?sessionid=c849d2572fe94cbccdf67c5a33ef7d15&kp3=dc6d2b287cce75e8794fec51ee78c3cb&domain=default",
|
||||
// 'endpoint' => "http://devel/phpgroupware/calendar/soap_server.php",
|
||||
'methodNamespace' => "http://soapinterop.org",
|
||||
'soapactionNeedsMethod' => 0,
|
||||
'name' => 'phpGW calendar - store_to_cache'
|
||||
);
|
||||
|
||||
|
||||
$method_params['calendar.bocalendar.read_entry']['id'] = 85;
|
||||
|
||||
$method_params['calendar.bocalendar.store_to_cache']['syear'] = 2001;
|
||||
$method_params['calendar.bocalendar.store_to_cache']['smonth'] = 7;
|
||||
$method_params['calendar.bocalendar.store_to_cache']['sday'] = 9;
|
||||
$method_params['calendar.bocalendar.store_to_cache']['eyear'] = 2001;
|
||||
$method_params['calendar.bocalendar.store_to_cache']['emonth'] = 7;
|
||||
$method_params['calendar.bocalendar.store_to_cache']['eday'] = 10;
|
||||
|
||||
// $method = 'calendar.bocalendar.read_entry';
|
||||
$method = 'calendar.bocalendar.store_to_cache';
|
||||
|
||||
print "<b>METHOD: ".$method."</b><br>";
|
||||
$soap_message = CreateObject('phpgwapi.soapmsg',$method,$method_params[$method],$server[$method]['methodNamespace']);
|
||||
print_r($soap_message);
|
||||
$soap = CreateObject('phpgwapi.soap_client',$server[$method]['endpoint']);
|
||||
if($return = $soap->send($soap_message,$server[$method]['soapaction'])){
|
||||
// check for valid response
|
||||
if(get_class($return) == 'soapval'){
|
||||
print 'Correctly decoded server\'s response<br>';
|
||||
// fault?
|
||||
if(eregi('fault',$return->name)){
|
||||
$status = 'failed';
|
||||
} else {
|
||||
$status = 'passed';
|
||||
}
|
||||
} else {
|
||||
print 'Client could not decode server\'s response<br>';
|
||||
}
|
||||
} else {
|
||||
print 'Was unable to send or receive.';
|
||||
}
|
||||
|
||||
//$soap->incoming_payload .= "\n\n<!-- SOAPx4 CLIENT DEBUG\n$client->debug_str\n\nRETURN VAL DEBUG: $return->debug_str-->";
|
||||
print '<strong>Request:</strong><br><xmp>'.$soap->outgoing_payload.'</xmp><br>';
|
||||
print '<strong>Response:</strong><br><xmp>'.$soap->incoming_payload.'</xmp>';
|
||||
// print_r($return);
|
||||
?>
|
50
calendar/soap_server.php
Executable file
50
calendar/soap_server.php
Executable file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* phpGroupWare - calendar *
|
||||
* http://www.phpgroupware.org *
|
||||
* Written by Mark A Peters <skeeter@phpgroupware.org> *
|
||||
* -------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
// $login = 'skeeter';
|
||||
// $passwd = 'Mast\!Mage';
|
||||
// $sessionid = 'c849d2572fe94cbccdf67c5a33ef7d15';
|
||||
// $kp3 = 'dc6d2b287cce75e8794fec51ee78c3cb';
|
||||
// $domain = 'default';
|
||||
|
||||
$phpgw_info['flags'] = array(
|
||||
'disable_template_class' => True,
|
||||
// 'login' => True,
|
||||
'currentapp' => 'calendar',
|
||||
'noheader' => True,
|
||||
'nofooter' => True);
|
||||
|
||||
include('../header.inc.php');
|
||||
include('../soap/vars.php');
|
||||
|
||||
// 1. include client and server
|
||||
// 2. instantiate server object
|
||||
|
||||
// function read_entry($id)
|
||||
// {
|
||||
// $cal = CreateObject('calendar.bocalendar');
|
||||
// return CreateObject('soap.soapval',"event","array",$cal->assoc_array($cal->read_entry($id)));
|
||||
// }
|
||||
$server = CreateObject('phpgwapi.soap_server');
|
||||
// CreateObject('phpgwapi.soap_client');
|
||||
|
||||
// $server->add_to_map(
|
||||
// "read_entry",
|
||||
// array("int"),
|
||||
// array("array")
|
||||
// );
|
||||
$server->service($HTTP_RAW_POST_DATA);
|
||||
|
||||
// $cal = CreateObject('calendar.soap_calendar');
|
||||
?>
|
Loading…
Reference in New Issue
Block a user