示例#1
0
 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;
 }