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

	if ($key === "Body")
	{
		$itemBody .= "     rn";
	}
	elseif ($key === "Recurrence")
	{
		$ar = array("MONTHLY_ABSOLUTE" => "AbsoluteMonthlyRecurrence", "MONTHLY_RELATIVE" => "RelativeMonthlyRecurrence", "YEARLY_ABSOLUTE" => "AbsoluteYearlyRecurrence", "YEARLY_RELATIVE" => "RelativeYearlyRecurrence", "WEEKLY" => "WeeklyRecurrence", "DAILY" => "DailyRecurrence");

		if (isset($arFields["RecurringType"]) && array_key_exists($arFields["RecurringType"], $ar))
		{
			$rnode = $ar[$arFields["RecurringType"]];

			$itemBody .= "     rn";
			$itemBody .= "      <".$rnode.">rn";

			if ($arFields["RecurringType"] === "MONTHLY_ABSOLUTE")
			{
				if (isset($arFields["RecurringInterval"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringInterval"])
						. "rn";
				}
				if (isset($arFields["RecurringDayOfMonth"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringDayOfMonth"])
						. "rn";
				}
			}
			elseif ($arFields["RecurringType"] === "MONTHLY_RELATIVE")
			{
				if (isset($arFields["RecurringInterval"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringInterval"])
						. "rn";
				}
				if (isset($arFields["RecurringDaysOfWeek"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringDaysOfWeek"])
						. "rn";
				}
				if (isset($arFields["RecurringDayOfWeekIndex"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringDayOfWeekIndex"])
						. "rn";
				}
			}
			elseif ($arFields["RecurringType"] === "YEARLY_ABSOLUTE")
			{
				if (isset($arFields["RecurringDayOfMonth"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringDayOfMonth"])
						. "rn";
				}
				if (isset($arFields["RecurringMonth"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringMonth"])
						. "rn";
				}
			}
			elseif ($arFields["RecurringType"] === "YEARLY_RELATIVE")
			{
				if (isset($arFields["RecurringDaysOfWeek"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringDaysOfWeek"])
						. "rn";
				}
				if (isset($arFields["RecurringDayOfWeekIndex"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringDayOfWeekIndex"])
						. "rn";
				}
				if (isset($arFields["RecurringMonth"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringMonth"])
						. "rn";
				}
			}
			elseif ($arFields["RecurringType"] === "WEEKLY")
			{
				if (isset($arFields["RecurringInterval"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringInterval"])
						. "rn";
				}
				if (isset($arFields["RecurringDaysOfWeek"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringDaysOfWeek"])
						. "rn";
				}
			}
			elseif ($arFields["RecurringType"] === "DAILY")
			{
				if (isset($arFields["RecurringInterval"]))
				{
					$itemBody .= "       "
						. htmlspecialcharsbx($arFields["RecurringInterval"])
						. "rn";
				}
			}

			$itemBody .= "      rn";

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

			$itemBody .= "     rn";
		}
	}
	elseif (is_array($value))	// Extended fields represented as arrays
	{
		$propertyName = $value['PropertyName'];
		$propertyType = $value['PropertyType'];
		$propertyValue = $value['Value'];

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

	return $itemBody;
}