improve ical2array as it messed up the ical information on recurring calls

This commit is contained in:
Klaus Leithoff 2015-11-24 16:05:01 +00:00
parent 031b25c740
commit 7a99c3f8a5

View File

@ -1033,6 +1033,7 @@ class calendar_zpush implements activesync_plugin_write, activesync_plugin_meeti
unset($e); unset($e);
// ignore exception, simply set no timezone, as it is optional // ignore exception, simply set no timezone, as it is optional
} }
// copying timestamps (they are already read in servertime, so non tz conversation) // copying timestamps (they are already read in servertime, so non tz conversation)
foreach(array( foreach(array(
'start' => 'starttime', 'start' => 'starttime',
@ -1512,7 +1513,7 @@ END:VTIMEZONE
* @param string|array $ical lines of ical file * @param string|array $ical lines of ical file
* @return array with parsed ical components * @return array with parsed ical components
*/ */
static public function ical2array($ical) static public function ical2array(&$ical,$section=null)
{ {
$arr = array(); $arr = array();
if (!is_array($ical)) $ical = preg_split("/[\r\n]+/m", $ical); if (!is_array($ical)) $ical = preg_split("/[\r\n]+/m", $ical);
@ -1521,10 +1522,11 @@ END:VTIMEZONE
list($name,$value) = explode(':',$line,2); list($name,$value) = explode(':',$line,2);
if ($name == 'BEGIN') if ($name == 'BEGIN')
{ {
$arr[$value] = self::ical2array($ical); $arr[$value] = self::ical2array($ical,$value);
} }
elseif($name == 'END') elseif($name == 'END')
{ {
if ($section && $section==$value) return $arr;
break; break;
} }
else else