• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangecalendar2.php
  • Класс: CDavExchangeCalendar
  • Вызов: CDavExchangeCalendar::CreateUpdateField
private function CreateUpdateField($key, $value, &$arFields)
	{
		$itemBody = "";

		if ($key === "Body")
		{
			$itemBody .= "     rn";
		}
		elseif ($key === "RequiredAttendees")
		{
			$itemBody .= "     rn";
			foreach ($value as $val)
			{
				$itemBody .= "      ".htmlspecialcharsbx($val)."Acceptrn";
				$itemBody .= "      ".htmlspecialcharsbx($val)."rn";
			}

			$itemBody .= "     rn";
		}
		elseif ($key === "Recurrence")
		{
			$itemBody .= "     rn";
			$rt = null;

			if ($arFields["RecurringType"] === "DAILY")
			{
				$rt = "DailyRecurrence";
			}
			elseif ($arFields["RecurringType"] === "WEEKLY")
			{
				$rt = "WeeklyRecurrence";
			}
			elseif ($arFields["RecurringType"] === "MONTHLY")
			{
				$rt = "AbsoluteMonthlyRecurrence";
			}
			elseif ($arFields["RecurringType"] === "YEARLY")
			{
				$rt = "YearlyRecurrence";
			}
			if(!empty($rt))
			{
				$itemBody .= "      <" . $rt . ">rn";
			}

			if (isset($arFields["RecurringInterval"]) && !in_array($arFields['RecurringType'], ['MONTHLY', 'YEARLY']))
			{
				$itemBody .= "       " . $arFields["RecurringInterval"] . "rn";
			}
			if (isset($arFields["RecurringDaysOfWeek"]))
			{
				if (!is_array($arFields["RecurringDaysOfWeek"]))
				{
					$arFields["RecurringDaysOfWeek"] = [$arFields["RecurringDaysOfWeek"]];
				}

				foreach ($arFields["RecurringDaysOfWeek"] as $recDay)
				{
					$itemBody .= "       " . $recDay . "rn";
				}
			}

			// TODO: mantis:#67383
			if ($arFields["RecurringType"] === "MONTHLY" || $arFields["RecurringType"] === "YEARLY")
			{
				$dateInstance = date_create($arFields['RecurringStartDate']);
				$day = $dateInstance->format('j');
				$itemBody .= "       ".$day."rn";
			}
			if ($arFields["RecurringType"] === "YEARLY")
			{
				$dateInstance = date_create($arFields['RecurringStartDate']);
				$month = $dateInstance->format('n');
				$itemBody .= "       ".$month."rn";
			}

			$itemBody .= "      rn";

			if (isset($arFields["RecurringNumberOfOccurrences"]) && $arFields["RecurringNumberOfOccurrences"] > 0)
			{
				$itemBody .= "      rn";
				$itemBody .= "       ".$arFields["RecurringStartDate"]."rn";
				$itemBody .= "       ".$arFields["RecurringNumberOfOccurrences"]."rn";
				$itemBody .= "      rn";
			}
			elseif (isset($arFields["RecurringEndDate"]))
			{
				$itemBody .= "      rn";
				$itemBody .= "       ".$arFields["RecurringStartDate"]."rn";
				$itemBody .= "       ".$arFields["RecurringEndDate"]."rn";
				$itemBody .= "      rn";
			}
			else
			{
				$itemBody .= "      rn";
				$itemBody .= "       ".$arFields["RecurringStartDate"]."rn";
				$itemBody .= "      rn";
			}

			$itemBody .= "     rn";
		}
		else
		{
			$itemBody .= "     <".htmlspecialcharsbx($key).">";
			if (is_bool($value))
			{
				$itemBody .= $value ? "true" : "false";
			}
			else
			{
				$itemBody .= htmlspecialcharsbx($value);
			}
			$itemBody .= "rn";
		}

		return $itemBody;
	}