protected function ConvertRecurrenceToArray($recurrence) { $arResultItem = array(); $arAbsoluteMonthlyRecurrence = $recurrence->GetPath("/Recurrence/AbsoluteMonthlyRecurrence"); if (count($arAbsoluteMonthlyRecurrence) > 0) { $arResultItem["RECURRING_TYPE"] = "MONTHLY_ABSOLUTE"; $arAbsoluteMonthlyRecurrenceInterval = $recurrence->GetPath("/Recurrence/AbsoluteMonthlyRecurrence/Interval"); if (count($arAbsoluteMonthlyRecurrenceInterval) > 0) { $arResultItem["RECURRING_INTERVAL"] = $arAbsoluteMonthlyRecurrenceInterval[0]->GetContent(); } $arAbsoluteMonthlyRecurrenceDayOfMonth = $recurrence->GetPath("/Recurrence/AbsoluteMonthlyRecurrence/DayOfMonth"); if (count($arAbsoluteMonthlyRecurrenceDayOfMonth) > 0) { $arResultItem["RECURRING_DAYOFMONTH"] = $arAbsoluteMonthlyRecurrenceDayOfMonth[0]->GetContent(); } } $arRelativeMonthlyRecurrence = $recurrence->GetPath("/Recurrence/RelativeMonthlyRecurrence"); if (count($arRelativeMonthlyRecurrence) > 0) { $arResultItem["RECURRING_TYPE"] = "MONTHLY_RELATIVE"; $arRelativeMonthlyRecurrenceInterval = $recurrence->GetPath("/Recurrence/RelativeMonthlyRecurrence/Interval"); if (count($arRelativeMonthlyRecurrenceInterval) > 0) { $arResultItem["RECURRING_INTERVAL"] = $arRelativeMonthlyRecurrenceInterval[0]->GetContent(); } $arRelativeMonthlyRecurrenceDaysOfWeek = $recurrence->GetPath("/Recurrence/RelativeMonthlyRecurrence/DaysOfWeek"); if (count($arRelativeMonthlyRecurrenceDaysOfWeek) > 0) { $arResultItem["RECURRING_DAYSOFWEEK"] = $arRelativeMonthlyRecurrenceDaysOfWeek[0]->GetContent(); } $arRelativeMonthlyRecurrenceDayOfWeekIndex = $recurrence->GetPath("/Recurrence/RelativeMonthlyRecurrence/DayOfWeekIndex"); if (count($arRelativeMonthlyRecurrenceDayOfWeekIndex) > 0) { $arResultItem["RECURRING_DAYOFWEEKINDEX"] = $arRelativeMonthlyRecurrenceDayOfWeekIndex[0]->GetContent(); } } $arAbsoluteYearlyRecurrence = $recurrence->GetPath("/Recurrence/AbsoluteYearlyRecurrence"); if (count($arAbsoluteYearlyRecurrence) > 0) { $arResultItem["RECURRING_TYPE"] = "YEARLY_ABSOLUTE"; $arAbsoluteYearlyRecurrenceDayOfMonth = $recurrence->GetPath("/Recurrence/AbsoluteYearlyRecurrence/DayOfMonth"); if (count($arAbsoluteYearlyRecurrenceDayOfMonth) > 0) { $arResultItem["RECURRING_DAYOFMONTH"] = $arAbsoluteYearlyRecurrenceDayOfMonth[0]->GetContent(); } $arAbsoluteYearlyRecurrenceMonth = $recurrence->GetPath("/Recurrence/AbsoluteYearlyRecurrence/Month"); if (count($arAbsoluteYearlyRecurrenceMonth) > 0) { $arResultItem["RECURRING_MONTH"] = $arAbsoluteYearlyRecurrenceMonth[0]->GetContent(); } } $arRelativeYearlyRecurrence = $recurrence->GetPath("/Recurrence/RelativeYearlyRecurrence"); if (count($arRelativeYearlyRecurrence) > 0) { $arResultItem["RECURRING_TYPE"] = "YEARLY_RELATIVE"; $arRelativeYearlyRecurrenceDaysOfWeek = $recurrence->GetPath("/Recurrence/RelativeYearlyRecurrence/DaysOfWeek"); if (count($arRelativeYearlyRecurrenceDaysOfWeek) > 0) { $arResultItem["RECURRING_DAYSOFWEEK"] = $arRelativeYearlyRecurrenceDaysOfWeek[0]->GetContent(); } $arRelativeYearlyRecurrenceDayOfWeekIndex = $recurrence->GetPath("/Recurrence/RelativeYearlyRecurrence/DayOfWeekIndex"); if (count($arRelativeYearlyRecurrenceDayOfWeekIndex) > 0) { $arResultItem["RECURRING_DAYOFWEEKINDEX"] = $arRelativeYearlyRecurrenceDayOfWeekIndex[0]->GetContent(); } $arRelativeYearlyRecurrenceMonth = $recurrence->GetPath("/Recurrence/RelativeYearlyRecurrence/Month"); if (count($arRelativeYearlyRecurrenceMonth) > 0) { $arResultItem["RECURRING_MONTH"] = $arRelativeYearlyRecurrenceMonth[0]->GetContent(); } } $arWeeklyRecurrence = $recurrence->GetPath("/Recurrence/WeeklyRecurrence"); if (count($arWeeklyRecurrence) > 0) { $arResultItem["RECURRING_TYPE"] = "WEEKLY"; $arWeeklyRecurrenceInterval = $recurrence->GetPath("/Recurrence/WeeklyRecurrence/Interval"); if (count($arWeeklyRecurrenceInterval) > 0) { $arResultItem["RECURRING_INTERVAL"] = $arWeeklyRecurrenceInterval[0]->GetContent(); } $arWeeklyRecurrenceDaysOfWeek = $recurrence->GetPath("/Recurrence/WeeklyRecurrence/DaysOfWeek"); if (count($arWeeklyRecurrenceDaysOfWeek) > 0) { $arResultItem["RECURRING_DAYSOFWEEK"] = $arWeeklyRecurrenceDaysOfWeek[0]->GetContent(); } } $arDailyRecurrence = $recurrence->GetPath("/Recurrence/DailyRecurrence"); if (count($arDailyRecurrence) > 0) { $arResultItem["RECURRING_TYPE"] = "DAILY"; $arDailyRecurrenceInterval = $recurrence->GetPath("/Recurrence/DailyRecurrence/Interval"); if (count($arDailyRecurrenceInterval) > 0) { $arResultItem["RECURRING_INTERVAL"] = $arDailyRecurrenceInterval[0]->GetContent(); } } $arNumberedRecurrence = $recurrence->GetPath("/Recurrence/NumberedRecurrence"); if (count($arNumberedRecurrence) > 0) { $arNumberedRecurrenceStartDate = $recurrence->GetPath("/Recurrence/NumberedRecurrence/StartDate"); if (count($arNumberedRecurrenceStartDate) > 0) { $arResultItem["RECURRING_STARTDATE"] = CDavICalendarTimeZone::GetFormattedServerDate($arNumberedRecurrenceStartDate[0]->GetContent()); } $arNumberedRecurrenceNumberOfOccurrences = $recurrence->GetPath("/Recurrence/NumberedRecurrence/NumberOfOccurrences"); if (count($arNumberedRecurrenceNumberOfOccurrences) > 0) { $arResultItem["RECURRING_NUMBEROFOCCURRENCES"] = $arNumberedRecurrenceNumberOfOccurrences[0]->GetContent(); } } $arNoEndRecurrence = $recurrence->GetPath("/Recurrence/NoEndRecurrence"); if (count($arNoEndRecurrence) > 0) { $arNoEndRecurrenceStartDate = $recurrence->GetPath("/Recurrence/NoEndRecurrence/StartDate"); if (count($arNoEndRecurrenceStartDate) > 0) { $arResultItem["RECURRING_STARTDATE"] = CDavICalendarTimeZone::GetFormattedServerDate($arNoEndRecurrenceStartDate[0]->GetContent()); } } $arEndDateRecurrence = $recurrence->GetPath("/Recurrence/EndDateRecurrence"); if (count($arEndDateRecurrence) > 0) { $arEndDateRecurrenceStartDate = $recurrence->GetPath("/Recurrence/EndDateRecurrence/StartDate"); if (count($arEndDateRecurrenceStartDate) > 0) { $arResultItem["RECURRING_STARTDATE"] = CDavICalendarTimeZone::GetFormattedServerDate($arEndDateRecurrenceStartDate[0]->GetContent()); } $arEndDateRecurrenceEndDate = $recurrence->GetPath("/Recurrence/EndDateRecurrence/EndDate"); if (count($arEndDateRecurrenceEndDate) > 0) { $arResultItem["RECURRING_ENDDATE"] = CDavICalendarTimeZone::GetFormattedServerDate($arEndDateRecurrenceEndDate[0]->GetContent()); } } return $arResultItem; }