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 == "DTSTAMP") or ($key == "LAST-MODIFIED") or ($key == "CREATED")) $value = $this->ical_date_to_unix($value);
|
||||||
if ($key == "RRULE" ) $value = $this->ical_rrule($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)
|
switch ($type)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -503,22 +503,40 @@ if ($conf->global->ENABLE_AGENDA_EXT==1 && $conf->global->AGENDA_EXT_NB>0)
|
|||||||
foreach($icalevents as $icalevent)
|
foreach($icalevents as $icalevent)
|
||||||
{
|
{
|
||||||
// Create a new object action
|
// 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;
|
$paramkey='AGENDA_EXT_NAME'.$i;
|
||||||
$namecal = $conf->global->$paramkey;
|
$namecal = $conf->global->$paramkey;
|
||||||
$paramkey='AGENDA_EXT_COLOR'.$i;
|
$paramkey='AGENDA_EXT_COLOR'.$i;
|
||||||
$colorcal = $conf->global->$paramkey;
|
$colorcal = $conf->global->$paramkey;
|
||||||
$event->id=$icalevent[UID];
|
$event->id=$icalevent['UID'];
|
||||||
$event->icalname=$namecal;
|
$event->icalname=$namecal;
|
||||||
$event->icalcolor=$colorcal;
|
$event->icalcolor=$colorcal;
|
||||||
$usertime=($_SESSION['dol_tz']*60*60)+($_SESSION['dol_dst']*60*60);
|
$usertime=($_SESSION['dol_tz']*60*60)+($_SESSION['dol_dst']*60*60);
|
||||||
$event->datep=$icalevent[DTSTART]+$usertime;
|
$event->datep=$datestart+$usertime;
|
||||||
$event->datef=$icalevent[DTEND]+$usertime;
|
$event->datef=$dateend+$usertime;
|
||||||
$event->type_code="ICALEVENT";
|
$event->type_code="ICALEVENT";
|
||||||
$event->libelle='<b>'.$icalevent[SUMMARY].'</b><br>'.str_replace("\\n", "<br>", "$icalevent[DESCRIPTION]");
|
$event->libelle='<b>'.$icalevent['SUMMARY'].'</b><br>'.str_replace("\\n", "<br>", $icalevent['DESCRIPTION']);
|
||||||
//$event->fulldayevent=$obj->fulldayevent;
|
|
||||||
|
|
||||||
$event->date_start_in_calendar=$event->datep;
|
$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);
|
while ($loop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else //repeatable or fullday event
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
@ -898,7 +911,11 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
|||||||
if ($linerelatedto) print $linerelatedto.'<br>';
|
if ($linerelatedto) print $linerelatedto.'<br>';
|
||||||
|
|
||||||
// Show label
|
// 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 print $event->getNomUrl(0,$maxnbofchar,'cal_event');
|
||||||
}
|
}
|
||||||
else // It's a birthday
|
else // It's a birthday
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user