mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-26 00:29:18 +01:00
Whole bunch of new code. Skeleton alarm management stuff. Importing of iCal file data (semi-working). New data fields (uid/location). New tables (phpgw_cal_alarm).
This commit is contained in:
parent
79dc225381
commit
8cfde64d54
@ -425,8 +425,14 @@
|
|||||||
$l_cal['private'] = 'public';
|
$l_cal['private'] = 'public';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!isset($l_cal['category']))
|
||||||
|
{
|
||||||
|
$l_cal['category'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$is_public = ($l_cal['private'] == 'public'?1:0);
|
$is_public = ($l_cal['private'] == 'public'?1:0);
|
||||||
$this->so->event_init();
|
$this->so->event_init();
|
||||||
|
$this->add_attribute('uid',$l_cal['uid']);
|
||||||
$this->so->set_category($l_cal['category']);
|
$this->so->set_category($l_cal['category']);
|
||||||
$this->so->set_title($l_cal['title']);
|
$this->so->set_title($l_cal['title']);
|
||||||
$this->so->set_description($l_cal['description']);
|
$this->so->set_description($l_cal['description']);
|
||||||
@ -434,6 +440,7 @@
|
|||||||
$this->so->set_end($l_end['year'],$l_end['month'],$l_end['mday'],$l_end['hour'],$l_end['min'],0);
|
$this->so->set_end($l_end['year'],$l_end['month'],$l_end['mday'],$l_end['hour'],$l_end['min'],0);
|
||||||
$this->so->set_class($is_public);
|
$this->so->set_class($is_public);
|
||||||
$this->so->add_attribute('reference',($l_cal['reference']?$l_cal['reference']:0));
|
$this->so->add_attribute('reference',($l_cal['reference']?$l_cal['reference']:0));
|
||||||
|
$this->so->add_attribute('location',($l_cal['location']?$l_cal['location']:''));
|
||||||
if($l_cal['id'])
|
if($l_cal['id'])
|
||||||
{
|
{
|
||||||
$this->so->add_attribute('id',$l_cal['id']);
|
$this->so->add_attribute('id',$l_cal['id']);
|
||||||
@ -1672,7 +1679,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function export_event($l_event_id=0)
|
function export_ical($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']);
|
||||||
|
|
||||||
@ -1703,12 +1710,18 @@
|
|||||||
$ical_event['class'] = intval($event['public']);
|
$ical_event['class'] = intval($event['public']);
|
||||||
$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']);
|
||||||
|
$icalendar->set_var($ical_event['location'],'value',$event['location']);
|
||||||
|
$icalendar->set_var($ical_event['uid'],'value',$event['uid']);
|
||||||
$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),'vevent');
|
$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),'vevent');
|
$icalendar->parse_value($ical_event,'dtend',date('Ymd\THis\Z',$dtend_mktime),'vevent');
|
||||||
$mod_mktime = $this->maketime($event['modtime']) - $this->datetime->tz_offset;
|
$mod_mktime = $this->maketime($event['modtime']) - $this->datetime->tz_offset;
|
||||||
$icalendar->parse_value($ical_event,'last_modified',date('Ymd\THis\Z',$mod_mktime),'vevent');
|
$icalendar->parse_value($ical_event,'last_modified',date('Ymd\THis\Z',$mod_mktime),'vevent');
|
||||||
|
if($event['location'])
|
||||||
|
{
|
||||||
|
$icalendar->set_var($ical_event['location'],'value',$event['location']);
|
||||||
|
}
|
||||||
if(count($event['participants']) > 1)
|
if(count($event['participants']) > 1)
|
||||||
{
|
{
|
||||||
$db = $GLOBALS['phpgw']->db;
|
$db = $GLOBALS['phpgw']->db;
|
||||||
|
@ -79,6 +79,12 @@ define('OTHER',99);
|
|||||||
|
|
||||||
class boicalendar
|
class boicalendar
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var $public_functions = array(
|
||||||
|
'import' => True
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
var $ical;
|
var $ical;
|
||||||
var $line = 0;
|
var $line = 0;
|
||||||
var $event = Array();
|
var $event = Array();
|
||||||
@ -1606,12 +1612,10 @@ 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 = $this->parameter[$key]['function'];
|
$function = $this->parameter[$key]['function'];
|
||||||
$this->debug($key.' Function Param : '.$value);
|
$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':
|
||||||
@ -1619,6 +1623,7 @@ class boicalendar
|
|||||||
break;
|
break;
|
||||||
case 'date-time':
|
case 'date-time':
|
||||||
$str .= ($key=='until'?':':';UNTIL=').date('Ymd\THis',mktime($event['hour'],$event['min'],$event['sec'],$event['month'],$event['mday'],$event['year'])).(!@isset($event['tzid'])?'Z':'');
|
$str .= ($key=='until'?':':';UNTIL=').date('Ymd\THis',mktime($event['hour'],$event['min'],$event['sec'],$event['month'],$event['mday'],$event['year'])).(!@isset($event['tzid'])?'Z':'');
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
unset($value);
|
unset($value);
|
||||||
@ -2029,6 +2034,16 @@ class boicalendar
|
|||||||
if($this->api)
|
if($this->api)
|
||||||
{
|
{
|
||||||
$dtime['hour'] -= $GLOBALS['phpgw_info']['users']['common']['tz_offset'];
|
$dtime['hour'] -= $GLOBALS['phpgw_info']['users']['common']['tz_offset'];
|
||||||
|
if($dtime['hour'] < 0)
|
||||||
|
{
|
||||||
|
$dtime['mday'] -= 1;
|
||||||
|
$dtime['hour'] = 24 - $dtime['hour'];
|
||||||
|
}
|
||||||
|
elseif($dtime['hour'] >= 24)
|
||||||
|
{
|
||||||
|
$dtime['mday'] += 1;
|
||||||
|
$dtime['hour'] = $dtime['hour'] - 24;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->debug('DATETIME : '._debug_array($dtime));
|
$this->debug('DATETIME : '._debug_array($dtime));
|
||||||
@ -2768,6 +2783,171 @@ class boicalendar
|
|||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function import()
|
||||||
|
{
|
||||||
|
if($GLOBALS['uploadedfile'] == 'none' || $GLOBALS['uploadedfile'] == '')
|
||||||
|
{
|
||||||
|
Header('Location: ' . $GLOBALS['phpgw']->link('/index.php',
|
||||||
|
Array(
|
||||||
|
'menuaction' => 'calendar.uiicalendar.import',
|
||||||
|
'action' => 'GetFile'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$GLOBALS['phpwg']->common->phpgw_exit();
|
||||||
|
}
|
||||||
|
$uploaddir = $GLOBALS['phpgw_info']['server']['temp_dir'] . SEP;
|
||||||
|
|
||||||
|
srand((double)microtime()*1000000);
|
||||||
|
$random_number = rand(100000000,999999999);
|
||||||
|
$newfilename = md5($GLOBALS['uploadedfile'].", ".$uploadedfile_name.", "
|
||||||
|
. time() . getenv("REMOTE_ADDR") . $random_number );
|
||||||
|
|
||||||
|
copy($GLOBALS['uploadedfile'], $uploaddir . $newfilename);
|
||||||
|
// $ftp = fopen($uploaddir . $newfilename . '.info','wb');
|
||||||
|
// fputs($ftp,$uploadedfile_type."\n".$uploadedfile_name."\n");
|
||||||
|
// fclose($ftp);
|
||||||
|
|
||||||
|
$filename = $uploaddir . $newfilename;
|
||||||
|
$fp=fopen($filename,'rt');
|
||||||
|
$mime_msg = explode("\n",fread($fp, filesize($filename)));
|
||||||
|
fclose($fp);
|
||||||
|
|
||||||
|
$so_event = createobject('calendar.socalendar',
|
||||||
|
Array(
|
||||||
|
'owner' => 0,
|
||||||
|
'filter' => '',
|
||||||
|
'category' => ''
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
unlink($filename);
|
||||||
|
|
||||||
|
$datetime_vars = Array(
|
||||||
|
'start' => 'dtstart',
|
||||||
|
'end' => 'dtend',
|
||||||
|
'modtime' => 'dtstamp',
|
||||||
|
'modtime' => 'last_modified'
|
||||||
|
);
|
||||||
|
|
||||||
|
$date_array = Array(
|
||||||
|
'Y' => 'year',
|
||||||
|
'm' => 'month',
|
||||||
|
'd' => 'mday',
|
||||||
|
'H' => 'hour',
|
||||||
|
'i' => 'min',
|
||||||
|
's' => 'sec'
|
||||||
|
);
|
||||||
|
|
||||||
|
$ical = $this->parse($mime_msg);
|
||||||
|
$c_events = count($ical['event']);
|
||||||
|
for($i=0;$i<$c_events;$i++)
|
||||||
|
{
|
||||||
|
if($ical['event'][$i]['uid']['value'])
|
||||||
|
{
|
||||||
|
$uid_exists = $so_event->find_uid($ical['event'][$i]['uid']['value']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($uid_exists)
|
||||||
|
{
|
||||||
|
$event = $so_event->read_entry($uid_exists[0]);
|
||||||
|
if(!isset($event['participant'][$GLOBALS['phpgw_info']['user']['account_id']]))
|
||||||
|
{
|
||||||
|
|
||||||
|
$so_event->add_attribute('participants','A',$GLOBALS['phpgw_info']['user']['account_id']);
|
||||||
|
$event = $so_event->get_cached_event();
|
||||||
|
$so_event->add_entry($event);
|
||||||
|
$event = $so_event->get_cached_event();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$so_event->event_init();
|
||||||
|
$so_event->add_attribute('id',0);
|
||||||
|
$so_event->add_attribute('reference',0);
|
||||||
|
if($ical['event'][$i]['uid']['value'])
|
||||||
|
{
|
||||||
|
$so_event->add_attribute('uid',$ical['event'][$i]['uid']['value']);
|
||||||
|
}
|
||||||
|
if($ical['event'][$i]['summary']['value'])
|
||||||
|
{
|
||||||
|
$so_event->set_title($ical['event'][$i]['summary']['value']);
|
||||||
|
}
|
||||||
|
if($ical['event'][$i]['description']['value'])
|
||||||
|
{
|
||||||
|
$so_event->set_description($ical['event'][$i]['description']['value']);
|
||||||
|
}
|
||||||
|
if($ical['event'][$i]['location']['value'])
|
||||||
|
{
|
||||||
|
$so_event->add_attribute('location',$ical['event'][$i]['location']['value']);
|
||||||
|
}
|
||||||
|
if(isset($ical['event'][$i]['priority']))
|
||||||
|
{
|
||||||
|
$so_event->add_attribute('priority',$ical['event'][$i]['priority']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$so_event->add_attribute('priority',2);
|
||||||
|
}
|
||||||
|
if(!isset($ical['event'][$i]['class']))
|
||||||
|
{
|
||||||
|
$ical['event'][$i]['class'] = 1;
|
||||||
|
}
|
||||||
|
$so_event->set_class($ical['event'][$i]['class']);
|
||||||
|
|
||||||
|
@reset($datetime_vars);
|
||||||
|
while(list($e_datevar,$i_datevar) = each($datetime_vars))
|
||||||
|
{
|
||||||
|
if(isset($ical['event'][$i][$i_datevar]))
|
||||||
|
{
|
||||||
|
$temp_time = $so_event->maketime($ical['event'][$i][$i_datevar]) + $so_event->datetime->tz_offset;
|
||||||
|
@reset($date_array);
|
||||||
|
while(list($key,$var) = each($date_array))
|
||||||
|
{
|
||||||
|
$event[$e_datevar][$var] = intval(date($key,$temp_time));
|
||||||
|
}
|
||||||
|
$so_event->set_date($e_datevar,$event[$e_datevar]['year'],$event[$e_datevar]['month'],$event[$e_datevar]['mday'],$event[$e_datevar]['hour'],$event[$e_datevar]['min'],$event[$e_datevar]['sec']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!isset($ical['event'][$i]['category']['value']) || !$ical['event'][$i]['category']['value'])
|
||||||
|
{
|
||||||
|
$so_event->add_attribute('category',0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//categories -- with value
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($ical['event'][$i]['rrule']))
|
||||||
|
{
|
||||||
|
//rrule
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($ical['event'][$i]['organizer']))
|
||||||
|
{
|
||||||
|
$so_event->add_attribute('owner',$GLOBALS['phpgw_info']['user']['account_id']);
|
||||||
|
$so_event->add_attribute('participants','A',$GLOBALS['phpgw_info']['user']['account_id']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//owner
|
||||||
|
}
|
||||||
|
|
||||||
|
$event = $so_event->get_cached_event();
|
||||||
|
$so_event->add_entry($event);
|
||||||
|
$event = $so_event->get_cached_event();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Header('Location: '.$GLOBALS['phpgw']->link('/index.php',
|
||||||
|
Array(
|
||||||
|
'menuaction' => 'calendar.uicalendar.view',
|
||||||
|
'cal_id' => $event['id']
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$GLOBALS['phpgw']->common->phpgw_exit();
|
||||||
|
}
|
||||||
|
|
||||||
function debug($str='')
|
function debug($str='')
|
||||||
{
|
{
|
||||||
if($this->debug_str)
|
if($this->debug_str)
|
||||||
|
@ -41,6 +41,11 @@
|
|||||||
$this->cal->open('INBOX',intval($this->owner));
|
$this->cal->open('INBOX',intval($this->owner));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function maketime($time)
|
||||||
|
{
|
||||||
|
return mktime($time['hour'],$time['min'],$time['sec'],$time['month'],$time['mday'],$time['year']);
|
||||||
|
}
|
||||||
|
|
||||||
function makeobj()
|
function makeobj()
|
||||||
{
|
{
|
||||||
if (!is_object($this->cal))
|
if (!is_object($this->cal))
|
||||||
@ -131,6 +136,19 @@
|
|||||||
return $this->cal->get_event_ids($include_repeats,$sql);
|
return $this->cal->get_event_ids($include_repeats,$sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function find_uid($uid)
|
||||||
|
{
|
||||||
|
$sql = " AND (phpgw_cal.uid = '".$uid."') ";
|
||||||
|
|
||||||
|
$found = $this->cal->get_event_ids(False,$sql);
|
||||||
|
if(!$found)
|
||||||
|
{
|
||||||
|
$found = $this->cal->get_event_ids(True,$sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $found;
|
||||||
|
}
|
||||||
|
|
||||||
function add_entry(&$event)
|
function add_entry(&$event)
|
||||||
{
|
{
|
||||||
$this->cal->store_event($event);
|
$this->cal->store_event($event);
|
||||||
@ -192,6 +210,11 @@
|
|||||||
$this->cal->event_init();
|
$this->cal->event_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function set_date($element,$year,$month,$day=0,$hour=0,$min=0,$sec=0)
|
||||||
|
{
|
||||||
|
$this->cal->set_date($element,$year,$month,$day,$hour,$min,$sec);
|
||||||
|
}
|
||||||
|
|
||||||
function set_start($year,$month,$day=0,$hour=0,$min=0,$sec=0)
|
function set_start($year,$month,$day=0,$hour=0,$min=0,$sec=0)
|
||||||
{
|
{
|
||||||
$this->cal->set_start($year,$month,$day,$hour,$min,$sec);
|
$this->cal->set_start($year,$month,$day,$hour,$min,$sec);
|
||||||
|
@ -19,12 +19,11 @@
|
|||||||
{
|
{
|
||||||
$GLOBALS['phpgw_info']['server']['calendar_type'] = 'sql';
|
$GLOBALS['phpgw_info']['server']['calendar_type'] = 'sql';
|
||||||
}
|
}
|
||||||
// This will be elminated when ical is fully implemented
|
/* This will be elminated when ical is fully implemented */
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$GLOBALS['phpgw_info']['server']['calendar_type'] = 'sql';
|
$GLOBALS['phpgw_info']['server']['calendar_type'] = 'sql';
|
||||||
}
|
}
|
||||||
include(PHPGW_INCLUDE_ROOT.'/calendar/inc/class.socalendar__.inc.php');
|
include(PHPGW_INCLUDE_ROOT.'/calendar/inc/class.socalendar__.inc.php');
|
||||||
include(PHPGW_INCLUDE_ROOT.'/calendar/inc/class.socalendar_'.$GLOBALS['phpgw_info']['server']['calendar_type'].'.inc.php');
|
include(PHPGW_INCLUDE_ROOT.'/calendar/inc/class.socalendar_'.$GLOBALS['phpgw_info']['server']['calendar_type'].'.inc.php');
|
||||||
return new socalendar_;
|
|
||||||
?>
|
?>
|
||||||
|
@ -71,6 +71,16 @@ class socalendar__
|
|||||||
$this->datetime = CreateObject('phpgwapi.datetime');
|
$this->datetime = CreateObject('phpgwapi.datetime');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function maketime($time)
|
||||||
|
{
|
||||||
|
return mktime($time['hour'],$time['min'],$time['sec'],$time['month'],$time['mday'],$time['year']);
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_cached_event()
|
||||||
|
{
|
||||||
|
return $this->event;
|
||||||
|
}
|
||||||
|
|
||||||
function event_init()
|
function event_init()
|
||||||
{
|
{
|
||||||
$this->event = Array();
|
$this->event = Array();
|
||||||
|
@ -37,7 +37,7 @@ class socalendar_ extends socalendar__
|
|||||||
{
|
{
|
||||||
if($user=='')
|
if($user=='')
|
||||||
{
|
{
|
||||||
settype($user,'integer');
|
// settype($user,'integer');
|
||||||
$this->user = $GLOBALS['phpgw_info']['user']['account_id'];
|
$this->user = $GLOBALS['phpgw_info']['user']['account_id'];
|
||||||
}
|
}
|
||||||
elseif(is_int($user))
|
elseif(is_int($user))
|
||||||
@ -103,7 +103,7 @@ class socalendar_ extends socalendar__
|
|||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->stream->lock(array('phpgw_cal','phpgw_cal_user','phpgw_cal_repeats'));
|
$this->stream->lock(array('phpgw_cal','phpgw_cal_user','phpgw_cal_repeats','phpgw_cal_alarm'));
|
||||||
|
|
||||||
$this->stream->query('SELECT * FROM phpgw_cal WHERE cal_id='.$event_id,__LINE__,__FILE__);
|
$this->stream->query('SELECT * FROM phpgw_cal WHERE cal_id='.$event_id,__LINE__,__FILE__);
|
||||||
|
|
||||||
@ -120,6 +120,8 @@ class socalendar_ extends socalendar__
|
|||||||
$this->set_category(intval($this->stream->f('category')));
|
$this->set_category(intval($this->stream->f('category')));
|
||||||
$this->set_title($GLOBALS['phpgw']->strip_html($this->stream->f('title')));
|
$this->set_title($GLOBALS['phpgw']->strip_html($this->stream->f('title')));
|
||||||
$this->set_description($GLOBALS['phpgw']->strip_html($this->stream->f('description')));
|
$this->set_description($GLOBALS['phpgw']->strip_html($this->stream->f('description')));
|
||||||
|
$this->add_attribute('uid',$GLOBALS['phpgw']->strip_html($this->stream->f('uid')));
|
||||||
|
$this->add_attribute('location',$GLOBALS['phpgw']->strip_html($this->stream->f('location')));
|
||||||
$this->add_attribute('reference',intval($this->stream->f('reference')));
|
$this->add_attribute('reference',intval($this->stream->f('reference')));
|
||||||
|
|
||||||
// This is the preferred method once everything is normalized...
|
// This is the preferred method once everything is normalized...
|
||||||
@ -198,6 +200,15 @@ class socalendar_ extends socalendar__
|
|||||||
$this->add_attribute('participants',$this->stream->f('cal_status'),intval($this->stream->f('cal_login')));
|
$this->add_attribute('participants',$this->stream->f('cal_status'),intval($this->stream->f('cal_login')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->stream->query('SELECT * FROM phpgw_cal_alarm WHERE cal_id='.$event_id.' AND cal_owner='.$this->user,__LINE__,__FILE__);
|
||||||
|
if($this->stream->num_rows())
|
||||||
|
{
|
||||||
|
while($this->stream->next_record())
|
||||||
|
{
|
||||||
|
$this->add_attribute('alarm',$this->stream->f('cal_text'),intval($this->stream->f('cal_time')));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -253,7 +264,7 @@ class socalendar_ extends socalendar__
|
|||||||
|
|
||||||
function store_event()
|
function store_event()
|
||||||
{
|
{
|
||||||
return $this->save_event($this->event);
|
return $this->save_event(&$this->event);
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete_event($event_id)
|
function delete_event($event_id)
|
||||||
@ -367,9 +378,27 @@ class socalendar_ extends socalendar__
|
|||||||
$this->stream->lock($locks);
|
$this->stream->lock($locks);
|
||||||
if($event['id'] == 0)
|
if($event['id'] == 0)
|
||||||
{
|
{
|
||||||
|
if ($GLOBALS['phpgw_info']['server']['hostname'] != '')
|
||||||
|
{
|
||||||
|
$id_suffix = $GLOBALS['phpgw_info']['server']['hostname'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$id_suffix = $GLOBALS['phpgw']->common->randomstring(3).'local';
|
||||||
|
}
|
||||||
|
$parts = Array(
|
||||||
|
'title',
|
||||||
|
'description'
|
||||||
|
);
|
||||||
|
@reset($parts);
|
||||||
|
while(list($key,$field) = each($parts))
|
||||||
|
{
|
||||||
|
$part[$key] = substr($GLOBALS['phpgw']->crypto->encrypt($event[$field]),0,20);
|
||||||
|
}
|
||||||
|
$event['uid'] = $part[0].'-'.$part[1].'@'.$id_suffix;
|
||||||
$temp_name = tempnam($GLOBALS['phpgw_info']['server']['temp_dir'],'cal');
|
$temp_name = tempnam($GLOBALS['phpgw_info']['server']['temp_dir'],'cal');
|
||||||
$this->stream->query('INSERT INTO phpgw_cal(title,owner,priority,is_public) '
|
$this->stream->query('INSERT INTO phpgw_cal(uid,title,owner,priority,is_public) '
|
||||||
. "values('".$temp_name."',".$event['owner'].",".$event['priority'].",".$event['public'].")");
|
. "values('".$event['uid']."','".$temp_name."',".$event['owner'].",".$event['priority'].",".$event['public'].")");
|
||||||
$this->stream->query("SELECT cal_id FROM phpgw_cal WHERE title='".$temp_name."'");
|
$this->stream->query("SELECT cal_id FROM phpgw_cal WHERE title='".$temp_name."'");
|
||||||
$this->stream->next_record();
|
$this->stream->next_record();
|
||||||
$event['id'] = $this->stream->f('cal_id');
|
$event['id'] = $this->stream->f('cal_id');
|
||||||
@ -399,6 +428,7 @@ class socalendar_ extends socalendar__
|
|||||||
. 'is_public='.$event['public'].', '
|
. 'is_public='.$event['public'].', '
|
||||||
. "title='".addslashes($event['title'])."', "
|
. "title='".addslashes($event['title'])."', "
|
||||||
. "description='".addslashes($event['description'])."', "
|
. "description='".addslashes($event['description'])."', "
|
||||||
|
. "location='".$event['location']."', "
|
||||||
. 'reference='.$event['reference'].' '
|
. 'reference='.$event['reference'].' '
|
||||||
. 'WHERE cal_id='.$event['id'];
|
. 'WHERE cal_id='.$event['id'];
|
||||||
|
|
||||||
@ -406,8 +436,8 @@ class socalendar_ extends socalendar__
|
|||||||
|
|
||||||
$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']);
|
@reset($event['participants']);
|
||||||
while (list($key,$value) = each($event['participants']))
|
while (list($key,$value) = @each($event['participants']))
|
||||||
{
|
{
|
||||||
if(intval($key) == intval($this->user))
|
if(intval($key) == intval($this->user))
|
||||||
{
|
{
|
||||||
@ -456,7 +486,7 @@ class socalendar_ extends socalendar__
|
|||||||
|
|
||||||
function get_alarm($id)
|
function get_alarm($id)
|
||||||
{
|
{
|
||||||
$this->stream->query('SELECT cal_time, cal_text FROM phpgw_cal_alarm WHERE cal_id='.$id,__LINE__,__FILE__);
|
$this->stream->query('SELECT cal_time, cal_text FROM phpgw_cal_alarm WHERE cal_id='.$id.' AND cal_owner='.$this->user,__LINE__,__FILE__);
|
||||||
if($this->stream->num_rows())
|
if($this->stream->num_rows())
|
||||||
{
|
{
|
||||||
while($this->stream->next_record())
|
while($this->stream->next_record())
|
||||||
@ -487,11 +517,6 @@ class socalendar_ extends socalendar__
|
|||||||
|
|
||||||
// End of ICal style support.......
|
// 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)
|
function group_search($owner=0)
|
||||||
{
|
{
|
||||||
$owner = ($owner==$GLOBALS['phpgw_info']['user']['account_id']?0:$owner);
|
$owner = ($owner==$GLOBALS['phpgw_info']['user']['account_id']?0:$owner);
|
||||||
@ -526,4 +551,3 @@ class socalendar_ extends socalendar__
|
|||||||
return $this->localdates(mktime(0,0,0,intval(substr($d,4,2)),intval(substr($d,6,2)),intval(substr($d,0,4))));
|
return $this->localdates(mktime(0,0,0,intval(substr($d,4,2)),intval(substr($d,6,2)),intval(substr($d,0,4))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
@ -551,6 +551,15 @@
|
|||||||
$p->set_var($var);
|
$p->set_var($var);
|
||||||
echo $p->fp('out','form_button');
|
echo $p->fp('out','form_button');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$var = Array(
|
||||||
|
'action_url_button' => $GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uialarm.manager'),
|
||||||
|
'action_text_button' => lang('Alarm Management'),
|
||||||
|
'action_confirm_button' => '',
|
||||||
|
'action_extra_field' => '<input type="hidden" name="cal_id" value="'.$cal_id.'">'
|
||||||
|
);
|
||||||
|
$p->set_var($var);
|
||||||
|
echo $p->fp('out','form_button');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->bo->check_perms(PHPGW_ACL_DELETE))
|
if ($this->bo->check_perms(PHPGW_ACL_DELETE))
|
||||||
@ -637,7 +646,7 @@
|
|||||||
unset($GLOBALS['phpgw_info']['flags']['noheader']);
|
unset($GLOBALS['phpgw_info']['flags']['noheader']);
|
||||||
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
|
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
|
||||||
$GLOBALS['phpgw']->common->phpgw_header();
|
$GLOBALS['phpgw']->common->phpgw_header();
|
||||||
echo nl2br($this->bo->export_event($cal_id));
|
echo nl2br($this->bo->export_ical($cal_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
function add($cd=0,$readsess=0)
|
function add($cd=0,$readsess=0)
|
||||||
@ -671,6 +680,8 @@
|
|||||||
$this->bo->set_end($this->bo->year,$this->bo->month,$this->bo->day,$thishour,$thisminute,0);
|
$this->bo->set_end($this->bo->year,$this->bo->month,$this->bo->day,$thishour,$thisminute,0);
|
||||||
$this->bo->set_title('');
|
$this->bo->set_title('');
|
||||||
$this->bo->set_description('');
|
$this->bo->set_description('');
|
||||||
|
$this->bo->add_attribute('location','');
|
||||||
|
$this->bo->add_attribute('uid','');
|
||||||
$this->bo->add_attribute('priority',2);
|
$this->bo->add_attribute('priority',2);
|
||||||
if(@$this->bo->prefs['calendar']['default_private'])
|
if(@$this->bo->prefs['calendar']['default_private'])
|
||||||
{
|
{
|
||||||
@ -845,12 +856,17 @@
|
|||||||
|
|
||||||
function planner()
|
function planner()
|
||||||
{
|
{
|
||||||
unset($GLOBALS['phpgw_info']['flags']['noheader']);
|
|
||||||
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
|
if(floor(phpversion()) == 4)
|
||||||
$GLOBALS['phpgw']->common->phpgw_header();
|
{
|
||||||
|
eval('
|
||||||
|
|
||||||
|
unset($GLOBALS[\'phpgw_info\'][\'flags\'][\'noheader\']);
|
||||||
|
unset($GLOBALS[\'phpgw_info\'][\'flags\'][\'nonavbar\']);
|
||||||
|
$GLOBALS[\'phpgw\']->common->phpgw_header();
|
||||||
|
|
||||||
$html = CreateObject('infolog.html');
|
$html = CreateObject(\'infolog.html\');
|
||||||
$sbox = CreateObject('phpgwapi.sbox');
|
$sbox = CreateObject(\'phpgwapi.sbox\');
|
||||||
|
|
||||||
$intervals_per_day = 3; // this should be configurable
|
$intervals_per_day = 3; // this should be configurable
|
||||||
$interval = Array(
|
$interval = Array(
|
||||||
@ -870,33 +886,33 @@
|
|||||||
$days = $this->bo->datetime->days_in_month($this->bo->month,$this->bo->year);
|
$days = $this->bo->datetime->days_in_month($this->bo->month,$this->bo->year);
|
||||||
$enddate = mktime(23,59,59,$this->bo->month,$this->bo->days,$this->bo->year) - $this->tz_offset;
|
$enddate = mktime(23,59,59,$this->bo->month,$this->bo->days,$this->bo->year) - $this->tz_offset;
|
||||||
|
|
||||||
$header[] = lang('Category');
|
$header[] = lang(\'Category\');
|
||||||
for ($d = 1; $d <= $days; $d++)
|
for ($d = 1; $d <= $days; $d++)
|
||||||
{
|
{
|
||||||
$dayname = substr(lang(date('D',mktime(0,0,0,$this->bo->month,$d,$this->bo->year))),0,2);
|
$dayname = substr(lang(date(\'D\',mktime(0,0,0,$this->bo->month,$d,$this->bo->year))),0,2);
|
||||||
|
|
||||||
$header['.'.$d] = 'colspan="'.$intervals_per_day.'" align="center"';
|
$header[\'.\'.$d] = \'colspan="\'.$intervals_per_day.\'" align="center"\';
|
||||||
$header[$d] = '<a href="'.$html->link('/index.php',
|
$header[$d] = \'<a href="\'.$html->link(\'/index.php\',
|
||||||
array(
|
array(
|
||||||
'menuaction' => 'calendar.uicalendar.add',
|
\'menuaction\' => \'calendar.uicalendar.add\',
|
||||||
'date' => sprintf("%04d%02d%02d",$this->bo->year,$this->bo->month,$d)
|
\'date\' => sprintf("%04d%02d%02d",$this->bo->year,$this->bo->month,$d)
|
||||||
)
|
)
|
||||||
).'">'.$dayname.'<br>'.$d.'</a>';
|
).\'">\'.$dayname.\'<br>\'.$d.\'</a>\';
|
||||||
}
|
}
|
||||||
$last_cell = $intervals_per_day * $days - 1;
|
$last_cell = $intervals_per_day * $days - 1;
|
||||||
|
|
||||||
$this->bo->store_to_cache(
|
$this->bo->store_to_cache(
|
||||||
Array(
|
Array(
|
||||||
'syear' => $this->bo->year,
|
\'syear\' => $this->bo->year,
|
||||||
'smonth' => $this->bo->month,
|
\'smonth\' => $this->bo->month,
|
||||||
'sday' => 1,
|
\'sday\' => 1,
|
||||||
'eyear' => $this->bo->year,
|
\'eyear\' => $this->bo->year,
|
||||||
'emonth' => $this->bo->month,
|
\'emonth\' => $this->bo->month,
|
||||||
'eday' => $days
|
\'eday\' => $days
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$firstday = intval(date('Ymd',mktime(0,0,0,$this->bo->month,1,$this->bo->year)));
|
$firstday = intval(date(\'Ymd\',mktime(0,0,0,$this->bo->month,1,$this->bo->year)));
|
||||||
$lastday = intval(date('Ymd',mktime(0,0,0,$this->bo->month,$days,$this->bo->year)));
|
$lastday = intval(date(\'Ymd\',mktime(0,0,0,$this->bo->month,$days,$this->bo->year)));
|
||||||
|
|
||||||
$this->bo->remove_doubles_in_cache($firstday,$lastday);
|
$this->bo->remove_doubles_in_cache($firstday,$lastday);
|
||||||
|
|
||||||
@ -913,28 +929,28 @@
|
|||||||
{
|
{
|
||||||
$event = $daily[$g];
|
$event = $daily[$g];
|
||||||
|
|
||||||
$view = $html->link('/index.php',
|
$view = $html->link(\'/index.php\',
|
||||||
array(
|
array(
|
||||||
'menuaction' => 'calendar.uicalendar.view',
|
\'menuaction\' => \'calendar.uicalendar.view\',
|
||||||
'cal_id' => $event['id']
|
\'cal_id\' => $event[\'id\']
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$start_cell = $intervals_per_day * ($event['start']['mday'] - 1);
|
$start_cell = $intervals_per_day * ($event[\'start\'][\'mday\'] - 1);
|
||||||
$start_cell += $interval[$event['start']['hour']];
|
$start_cell += $interval[$event[\'start\'][\'hour\']];
|
||||||
|
|
||||||
$end_cell = $intervals_per_day * ($event['end']['mday'] - 1);
|
$end_cell = $intervals_per_day * ($event[\'end\'][\'mday\'] - 1);
|
||||||
$end_cell += $interval[$event['end']['hour']];
|
$end_cell += $interval[$event[\'end\'][\'hour\']];
|
||||||
|
|
||||||
$i = 0; // search for row of parent category
|
$i = 0; // search for row of parent category
|
||||||
do {
|
do {
|
||||||
++$i;
|
++$i;
|
||||||
if ($c = $event['category'])
|
if ($c = $event[\'category\'])
|
||||||
{
|
{
|
||||||
$cat = $this->planner_category($event['category']);
|
$cat = $this->planner_category($event[\'category\']);
|
||||||
if ($cat['parent'])
|
if ($cat[\'parent\'])
|
||||||
{
|
{
|
||||||
$pcat = $this->planner_category($c = $cat['parent']);
|
$pcat = $this->planner_category($c = $cat[\'parent\']);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -943,20 +959,20 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$cat = $pcat = array( 'name' => lang('none'));
|
$cat = $pcat = array( \'name\' => lang(\'none\'));
|
||||||
}
|
}
|
||||||
$k = $c.'_'.$i;
|
$k = $c.\'_\'.$i;
|
||||||
$ka = '.nr_'.$k;
|
$ka = \'.nr_\'.$k;
|
||||||
if (!isset($rows[$k]))
|
if (!isset($rows[$k]))
|
||||||
{
|
{
|
||||||
if ($i > 1) // further line - no name
|
if ($i > 1) // further line - no name
|
||||||
{
|
{
|
||||||
$rows[$k] = array();
|
$rows[$k] = array();
|
||||||
$rows[$c.'_1']['._name'] = 'rowspan="'.$i.'"';
|
$rows[$c.\'_1\'][\'._name\'] = \'rowspan="\'.$i.\'"\';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$rows[$k]['_name'] = $pcat['name'];
|
$rows[$k][\'_name\'] = $pcat[\'name\'];
|
||||||
}
|
}
|
||||||
$rows[$ka] = 0;
|
$rows[$ka] = 0;
|
||||||
}
|
}
|
||||||
@ -966,34 +982,34 @@
|
|||||||
|
|
||||||
if ($akt_cell < $start_cell)
|
if ($akt_cell < $start_cell)
|
||||||
{
|
{
|
||||||
$row[$event->id.'_1'] = ' ';
|
$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'];
|
$opt = &$row[\'.\'.$event[\'id\'].\'_2\'];
|
||||||
$cel = &$row[$event['id'].'_2'];
|
$cel = &$row[$event[\'id\'].\'_2\'];
|
||||||
if ($start_cell < $end_cell)
|
if ($start_cell < $end_cell)
|
||||||
{
|
{
|
||||||
$opt .= "colspan=".(1 + $end_cell - $start_cell);
|
$opt .= "colspan=".(1 + $end_cell - $start_cell);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($bgcolor=$cat['color'])
|
if ($bgcolor=$cat[\'color\'])
|
||||||
{
|
{
|
||||||
$opt .= ' bgcolor="'.$bgcolor.'"';
|
$opt .= \' bgcolor="\'.$bgcolor.\'"\';
|
||||||
}
|
}
|
||||||
$opt .= ' title="'.$event['title'];
|
$opt .= \' title="\'.$event[\'title\'];
|
||||||
if ($event['description'])
|
if ($event[\'description\'])
|
||||||
{
|
{
|
||||||
$opt .= " \n".$event['description'];
|
$opt .= " \n".$event[\'description\'];
|
||||||
}
|
}
|
||||||
$opt .= '" onClick="location=\''.$view.'\'"';
|
$opt .= \'" onClick="location=\\\'\'.$view.\'\\\'"\';
|
||||||
$cel = '<a href="'.$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\',\'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>';
|
$cel .= \'</a>\';
|
||||||
|
|
||||||
$akt_cell = $end_cell + 1;
|
$akt_cell = $end_cell + 1;
|
||||||
}
|
}
|
||||||
@ -1002,25 +1018,28 @@
|
|||||||
{
|
{
|
||||||
if (is_array($r))
|
if (is_array($r))
|
||||||
{
|
{
|
||||||
$rows['.'.$k] = 'bgcolor="'.$GLOBALS['phpgw']->nextmatchs->alternate_row_color().'"';
|
$rows[\'.\'.$k] = \'bgcolor="\'.$GLOBALS[\'phpgw\']->nextmatchs->alternate_row_color().\'"\';
|
||||||
$row = &$rows[$k];
|
$row = &$rows[$k];
|
||||||
$akt_cell = &$rows['.nr_'.$k];
|
$akt_cell = &$rows[\'.nr_\'.$k];
|
||||||
if ($akt_cell <= $last_cell)
|
if ($akt_cell <= $last_cell)
|
||||||
{
|
{
|
||||||
$row['3'] = ' ';
|
$row[\'3\'] = \' \';
|
||||||
$row['.3'] = 'colspan="'.(1+$last_cell-$akt_cell).'"';
|
$row[\'.3\'] = \'colspan="\'.(1+$last_cell-$akt_cell).\'"\';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$bgcolor = 'bgcolor="'.$this->theme['th_bg'].'"';
|
$bgcolor = \'bgcolor="\'.$this->theme[\'th_bg\'].\'"\';
|
||||||
echo $html->table(
|
echo $html->table(
|
||||||
array(
|
array(
|
||||||
'_h' => $header,
|
\'_h\' => $header,
|
||||||
'._h' => $bgcolor
|
\'._h\' => $bgcolor
|
||||||
)+$rows,
|
)+$rows,
|
||||||
'width="100%" cols="'.(1+$days*$intervals_per_day).'"'
|
\'width="100%" cols="\'.(1+$days*$intervals_per_day).\'"\'
|
||||||
);
|
);
|
||||||
|
');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function matrixselect()
|
function matrixselect()
|
||||||
@ -1418,11 +1437,13 @@
|
|||||||
|
|
||||||
$p->set_file(
|
$p->set_file(
|
||||||
Array(
|
Array(
|
||||||
'footer' => 'footer.tpl'
|
'footer' => 'footer.tpl',
|
||||||
|
'form_button' => 'form_button_script.tpl'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$p->set_block('footer','footer_table','footer_table');
|
$p->set_block('footer','footer_table','footer_table');
|
||||||
$p->set_block('footer','footer_row','footer_row');
|
$p->set_block('footer','footer_row','footer_row');
|
||||||
|
$p->set_block('footer','blank_row','blank_row');
|
||||||
|
|
||||||
$m = $this->bo->month;
|
$m = $this->bo->month;
|
||||||
$y = $this->bo->year;
|
$y = $this->bo->year;
|
||||||
@ -1501,6 +1522,16 @@
|
|||||||
);
|
);
|
||||||
$this->output_template_array($p,'table_row','footer_row',$var);
|
$this->output_template_array($p,'table_row','footer_row',$var);
|
||||||
|
|
||||||
|
$var = Array(
|
||||||
|
'submit_button' => lang('Submit'),
|
||||||
|
'action_url_button' => $GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uiicalendar.import'),
|
||||||
|
'action_text_button' => lang('Import'),
|
||||||
|
'action_confirm_button' => '',
|
||||||
|
'action_extra_field' => ''
|
||||||
|
);
|
||||||
|
$this->output_template_array($p,'b_row','form_button',$var);
|
||||||
|
$p->parse('table_row','blank_row',True);
|
||||||
|
|
||||||
$p->pparse('out','footer_table');
|
$p->pparse('out','footer_table');
|
||||||
unset($p);
|
unset($p);
|
||||||
}
|
}
|
||||||
@ -1887,7 +1918,6 @@
|
|||||||
|
|
||||||
if($day_params['appts'])
|
if($day_params['appts'])
|
||||||
{
|
{
|
||||||
$lr_events = CreateObject('calendar.calendar_item');
|
|
||||||
$var = Array(
|
$var = Array(
|
||||||
'week_day_font_size' => '2',
|
'week_day_font_size' => '2',
|
||||||
'events' => ''
|
'events' => ''
|
||||||
@ -2100,6 +2130,13 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($event['location'])
|
||||||
|
{
|
||||||
|
$var[] = Array(
|
||||||
|
'field' => lang('Location'),
|
||||||
|
'data' => $event['location']
|
||||||
|
);
|
||||||
|
}
|
||||||
$var[] = Array(
|
$var[] = Array(
|
||||||
'field' => lang('Start Date/Time'),
|
'field' => lang('Start Date/Time'),
|
||||||
'data' => $GLOBALS['phpgw']->common->show_date($this->bo->maketime($event['start']) - $this->tz_offset)
|
'data' => $GLOBALS['phpgw']->common->show_date($this->bo->maketime($event['start']) - $this->tz_offset)
|
||||||
@ -2784,6 +2821,7 @@
|
|||||||
'action_url' => $GLOBALS['phpgw']->link('/index.php',Array('menuaction'=>'calendar.bocalendar.update')),
|
'action_url' => $GLOBALS['phpgw']->link('/index.php',Array('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"
|
. '<input type="hidden" name="cal[owner]" value="'.$this->bo->owner.'">'."\n"
|
||||||
|
. '<input type="hidden" name="cal[uid]" value="'.$event['uid'].'">'."\n"
|
||||||
. ($GLOBALS['HTTP_GET_VARS']['cal_id'] && $event['id'] == 0?'<input type="hidden" name="cal[reference]" value="'.$GLOBALS['HTTP_GET_VARS']['cal_id'].'">'."\n":
|
. ($GLOBALS['HTTP_GET_VARS']['cal_id'] && $event['id'] == 0?'<input type="hidden" name="cal[reference]" value="'.$GLOBALS['HTTP_GET_VARS']['cal_id'].'">'."\n":
|
||||||
($event['reference']?'<input type="hidden" name="cal[reference]" value="'.$event['reference'].'">'."\n":'')),
|
($event['reference']?'<input type="hidden" name="cal[reference]" value="'.$event['reference'].'">'."\n":'')),
|
||||||
'errormsg' => ($params['cd']?$GLOBALS['phpgw']->common->check_code($params['cd']):'')
|
'errormsg' => ($params['cd']?$GLOBALS['phpgw']->common->check_code($params['cd']):'')
|
||||||
@ -2805,7 +2843,13 @@
|
|||||||
// Display Categories
|
// Display Categories
|
||||||
$var[] = Array(
|
$var[] = Array(
|
||||||
'field' => lang('Category'),
|
'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="0">'.lang('Choose the category').'</option>'.$this->cat->formated_list('select','all',$event['category'],True).'</select>'
|
||||||
|
);
|
||||||
|
|
||||||
|
// Location
|
||||||
|
$var[] = Array(
|
||||||
|
'field' => lang('Location'),
|
||||||
|
'data' => '<input name="cal[location]" size="25" maxlength="80" value="'.$event['location'].'">'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Date
|
// Date
|
||||||
@ -2867,7 +2911,7 @@
|
|||||||
// Participants
|
// Participants
|
||||||
$accounts = $GLOBALS['phpgw']->acl->get_ids_for_location('run',1,'calendar');
|
$accounts = $GLOBALS['phpgw']->acl->get_ids_for_location('run',1,'calendar');
|
||||||
$users = Array();
|
$users = Array();
|
||||||
$this->build_part_list($users,$accounts,$event['owner']);
|
$this->build_part_list($users,$accounts,$this->bo->owner);
|
||||||
|
|
||||||
$str = '';
|
$str = '';
|
||||||
@asort($users);
|
@asort($users);
|
||||||
@ -3004,13 +3048,14 @@
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@reset($accounts);
|
||||||
while(list($index,$id) = each($accounts))
|
while(list($index,$id) = each($accounts))
|
||||||
{
|
{
|
||||||
if(intval($id) == $owner)
|
if(intval($id) == $owner)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(!isset($users[intval($id)]))
|
elseif(!isset($users[intval($id)]))
|
||||||
{
|
{
|
||||||
if($GLOBALS['phpgw']->accounts->exists(intval($id)) == True)
|
if($GLOBALS['phpgw']->accounts->exists(intval($id)) == True)
|
||||||
{
|
{
|
||||||
|
@ -18,9 +18,11 @@
|
|||||||
{
|
{
|
||||||
var $bo;
|
var $bo;
|
||||||
var $datetime;
|
var $datetime;
|
||||||
|
var $template;
|
||||||
|
|
||||||
var $public_functions = array(
|
var $public_functions = array(
|
||||||
'test' => True
|
'test' => True,
|
||||||
|
'import' => True
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -29,6 +31,7 @@
|
|||||||
{
|
{
|
||||||
$this->bo = CreateObject('calendar.boicalendar');
|
$this->bo = CreateObject('calendar.boicalendar');
|
||||||
$this->datetime = CreateObject('phpgwapi.datetime');
|
$this->datetime = CreateObject('phpgwapi.datetime');
|
||||||
|
$this->template = $GLOBALS['phpgw']->template;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -161,5 +164,39 @@
|
|||||||
echo nl2br($this->bo->build_ical($vcalendar));
|
echo nl2br($this->bo->build_ical($vcalendar));
|
||||||
echo "End Time : ".$GLOBALS['phpgw']->common->show_date()."<br>\n";
|
echo "End Time : ".$GLOBALS['phpgw']->common->show_date()."<br>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function import()
|
||||||
|
{
|
||||||
|
unset($GLOBALS['phpgw_info']['flags']['noheader']);
|
||||||
|
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
|
||||||
|
$GLOBALS['phpgw_info']['flags']['nonappheader'] = True;
|
||||||
|
$GLOBALS['phpgw_info']['flags']['nonappfooter'] = True;
|
||||||
|
$GLOBALS['phpgw']->common->phpgw_header();
|
||||||
|
|
||||||
|
echo '<body bgcolor="' . $GLOBALS['phpgw_info']['theme']['bg_color'] . '">';
|
||||||
|
|
||||||
|
if ($GLOBALS['HTTP_GET_VARS']['action'] == 'GetFile')
|
||||||
|
{
|
||||||
|
echo '<b><center>' . lang('You must select a [iv]Cal. (*.[iv]cs)') . '</b></center><br><br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->template->set_file(
|
||||||
|
Array(
|
||||||
|
'vcalimport' => 'vcal_import.tpl'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$var = Array(
|
||||||
|
'vcal_header' => '<p> <b>' . lang('Calendar - [iv]Cal Importer') . '</b><hr><p>',
|
||||||
|
'action_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=calendar.boicalendar.import'),
|
||||||
|
'lang_access' => lang('Access'),
|
||||||
|
'lang_groups' => lang('Which groups'),
|
||||||
|
'access_option'=> $access_option,
|
||||||
|
'group_option' => $group_option,
|
||||||
|
'load_vcal' => lang('Load [iv]Cal')
|
||||||
|
);
|
||||||
|
$this->template->set_var($var);
|
||||||
|
$this->template->pparse('out','vcalimport');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
a calendar en a
|
a calendar en a
|
||||||
accept calendar en Accept
|
accept calendar en Accept
|
||||||
accepted calendar en Accepted
|
accepted calendar en Accepted
|
||||||
|
add alarm calendar en Add Alarm
|
||||||
|
alarm management calendar en Alarm Management
|
||||||
all day calendar en All Day
|
all day calendar en All Day
|
||||||
are you sure\nyou want to\ndelete this entry ? calendar en Are you sure\nyou want to\ndelete this entry ?
|
are you sure\nyou want to\ndelete this entry ? calendar en Are you sure\nyou want to\ndelete this entry ?
|
||||||
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar en Are you sure\nyou want to\ndelete this entry ?\n\nThis will delete\nthis entry for all users.
|
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar en Are you sure\nyou want to\ndelete this entry ?\n\nThis will delete\nthis entry for all users.
|
||||||
@ -39,6 +41,7 @@ grant calendar access common en Grant Calendar Access
|
|||||||
group public only calendar en Group Public Only
|
group public only calendar en Group Public Only
|
||||||
ignore conflict calendar en Ignore Conflict
|
ignore conflict calendar en Ignore Conflict
|
||||||
i participate calendar en I Participate
|
i participate calendar en I Participate
|
||||||
|
location calendar en Location
|
||||||
minutes calendar en minutes
|
minutes calendar en minutes
|
||||||
mo calendar en M
|
mo calendar en M
|
||||||
mon calendar en Mon
|
mon calendar en Mon
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
'phpgw_cal' => array(
|
'phpgw_cal' => array(
|
||||||
'fd' => array(
|
'fd' => array(
|
||||||
'cal_id' => array('type' => 'auto','nullable' => False),
|
'cal_id' => array('type' => 'auto','nullable' => False),
|
||||||
|
'uid' => array('type' => 'varchar', 'precision' => 255,'nullable' => False),
|
||||||
'owner' => array('type' => 'int', 'precision' => 8,'nullable' => False),
|
'owner' => array('type' => 'int', 'precision' => 8,'nullable' => False),
|
||||||
'category' => array('type' => 'int', 'precision' => 8,'nullable' => True),
|
'category' => array('type' => 'int', 'precision' => 8,'nullable' => True),
|
||||||
'groups' => array('type' => 'varchar', 'precision' => 255,'nullable' => True),
|
'groups' => array('type' => 'varchar', 'precision' => 255,'nullable' => True),
|
||||||
@ -26,6 +27,7 @@
|
|||||||
'is_public' => array('type' => 'int', 'precision' => 8,'nullable' => False,'default' => 1),
|
'is_public' => array('type' => 'int', 'precision' => 8,'nullable' => False,'default' => 1),
|
||||||
'title' => array('type' => 'varchar', 'precision' => 80,'nullable' => False,'default' => '1'),
|
'title' => array('type' => 'varchar', 'precision' => 80,'nullable' => False,'default' => '1'),
|
||||||
'description' => array('type' => 'text','nullable' => True),
|
'description' => array('type' => 'text','nullable' => True),
|
||||||
|
'location' => array('type' => 'varchar', 'precision' => 255,'nullable' => True),
|
||||||
'reference' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0)
|
'reference' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0)
|
||||||
),
|
),
|
||||||
'pk' => array('cal_id'),
|
'pk' => array('cal_id'),
|
||||||
@ -78,6 +80,7 @@
|
|||||||
'fd' => array(
|
'fd' => array(
|
||||||
'alarm_id' => array('type' => 'auto','nullable' => False),
|
'alarm_id' => array('type' => 'auto','nullable' => False),
|
||||||
'cal_id' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
'cal_id' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
||||||
|
'cal_owner' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
||||||
'cal_time' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
'cal_time' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
||||||
'cal_text' => array('type' => 'varchar', 'precision' => 50, 'nullable' => False)
|
'cal_text' => array('type' => 'varchar', 'precision' => 50, 'nullable' => False)
|
||||||
),
|
),
|
||||||
|
@ -851,6 +851,7 @@
|
|||||||
'fd' => array(
|
'fd' => array(
|
||||||
'alarm_id' => array('type' => 'auto','nullable' => False),
|
'alarm_id' => array('type' => 'auto','nullable' => False),
|
||||||
'cal_id' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
'cal_id' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
||||||
|
'cal_owner' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
||||||
'cal_time' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
'cal_time' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
|
||||||
'cal_text' => array('type' => 'varchar', 'precision' => 50, 'nullable' => False)
|
'cal_text' => array('type' => 'varchar', 'precision' => 50, 'nullable' => False)
|
||||||
),
|
),
|
||||||
@ -861,6 +862,9 @@
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$GLOBALS['phpgw_setup']->oProc->AddColumn('phpgw_cal','uid',array('type' => 'varchar', 'precision' => 255,'nullable' => False));
|
||||||
|
$GLOBALS['phpgw_setup']->oProc->AddColumn('phpgw_cal','location',array('type' => 'varchar', 'precision' => 255,'nullable' => True));
|
||||||
|
|
||||||
$GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.004';
|
$GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.004';
|
||||||
return $GLOBALS['setup_info']['calendar']['currentver'];
|
return $GLOBALS['setup_info']['calendar']['currentver'];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user