task #9747: Can show content of external calendar (ical) into agenda
This commit is contained in:
parent
976c74ac87
commit
b3d57785dc
@ -154,7 +154,13 @@ class ical
|
||||
if (($key == "DTSTAMP") or ($key == "LAST-MODIFIED") or ($key == "CREATED")) $value = $this->ical_date_to_unix($value);
|
||||
if ($key == "RRULE" ) $value = $this->ical_rrule($value);
|
||||
|
||||
if (stristr($key,"DTSTART") or stristr($key,"DTEND")) list($key,$value) = $this->ical_dt_date($key,$value);
|
||||
if (stristr($key,"DTSTART") or stristr($key,"DTEND") or stristr($key,"DTSTART;VALUE=DATE") or stristr($key,"DTEND;VALUE=DATE"))
|
||||
{
|
||||
if (stristr($key,"DTSTART;VALUE=DATE") or stristr($key,"DTEND;VALUE=DATE"))
|
||||
list($key,$value) = array($key,$value);
|
||||
else
|
||||
list($key,$value) = $this->ical_dt_date($key,$value);
|
||||
}
|
||||
|
||||
switch ($type)
|
||||
{
|
||||
|
||||
@ -503,22 +503,40 @@ if ($conf->global->ENABLE_AGENDA_EXT==1 && $conf->global->AGENDA_EXT_NB>0)
|
||||
foreach($icalevents as $icalevent)
|
||||
{
|
||||
// Create a new object action
|
||||
if(!is_array($icalevent[DTSTART])) //non-repeatable and not fullday event
|
||||
$event=new ActionComm($db);
|
||||
$addevent = false;
|
||||
if($icalevent['DTSTART;VALUE=DATE']) //fullday event
|
||||
{
|
||||
$datestart=$db->jdate($icalevent['DTSTART;VALUE=DATE']);
|
||||
$dateend=$db->jdate($icalevent['DTEND;VALUE=DATE']);
|
||||
$event->fulldayevent=true;
|
||||
$addevent=true;
|
||||
}
|
||||
elseif (is_array($icalevent['RRULE'])) //repeatable event
|
||||
{
|
||||
$addevent=false; //TODO: a faire
|
||||
}
|
||||
elseif(!is_array($icalevent['DTSTART'])) //non-repeatable and not fullday event
|
||||
{
|
||||
$datestart=$icalevent['DTSTART'];
|
||||
$dateend=$icalevent['DTEND'];
|
||||
$addevent=true;
|
||||
}
|
||||
|
||||
if($addevent)
|
||||
{
|
||||
$event=new ActionComm($db);
|
||||
$paramkey='AGENDA_EXT_NAME'.$i;
|
||||
$namecal = $conf->global->$paramkey;
|
||||
$paramkey='AGENDA_EXT_COLOR'.$i;
|
||||
$colorcal = $conf->global->$paramkey;
|
||||
$event->id=$icalevent[UID];
|
||||
$event->id=$icalevent['UID'];
|
||||
$event->icalname=$namecal;
|
||||
$event->icalcolor=$colorcal;
|
||||
$usertime=($_SESSION['dol_tz']*60*60)+($_SESSION['dol_dst']*60*60);
|
||||
$event->datep=$icalevent[DTSTART]+$usertime;
|
||||
$event->datef=$icalevent[DTEND]+$usertime;
|
||||
$event->datep=$datestart+$usertime;
|
||||
$event->datef=$dateend+$usertime;
|
||||
$event->type_code="ICALEVENT";
|
||||
$event->libelle='<b>'.$icalevent[SUMMARY].'</b><br>'.str_replace("\\n", "<br>", "$icalevent[DESCRIPTION]");
|
||||
//$event->fulldayevent=$obj->fulldayevent;
|
||||
$event->libelle='<b>'.$icalevent['SUMMARY'].'</b><br>'.str_replace("\\n", "<br>", $icalevent['DESCRIPTION']);
|
||||
|
||||
$event->date_start_in_calendar=$event->datep;
|
||||
|
||||
@ -559,12 +577,7 @@ if ($conf->global->ENABLE_AGENDA_EXT==1 && $conf->global->AGENDA_EXT_NB>0)
|
||||
while ($loop);
|
||||
}
|
||||
}
|
||||
else //repeatable or fullday event
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
@ -898,7 +911,11 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
||||
if ($linerelatedto) print $linerelatedto.'<br>';
|
||||
|
||||
// Show label
|
||||
if($event->type_code == 'ICALEVENT') print $event->libelle;
|
||||
if($event->type_code == 'ICALEVENT')
|
||||
{
|
||||
if ($event->fulldayevent) print '('.$event->icalname.')<br>';
|
||||
print $event->libelle;
|
||||
}
|
||||
else print $event->getNomUrl(0,$maxnbofchar,'cal_event');
|
||||
}
|
||||
else // It's a birthday
|
||||
|
||||
Loading…
Reference in New Issue
Block a user