- Модуль: 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)." Accept rn";
$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 .= " ".$rt.">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 .= "".htmlspecialcharsbx($key).">rn";
}
return $itemBody;
}