protected function FormatRecurrenceFieldsArray($key, $value, &$arFields)
{
$bProcessed = false;
switch ($key)
{
case "RecurringStartDate":
case "RecurringEndDate":
$bProcessed = true;
$arFields[$key] = date("Y-m-d", MakeTimeStamp($value));
break;
case "RecurringType":
$bProcessed = true;
$ar = array(
"none" => "NONE",
"monthly_absolute" => "MONTHLY_ABSOLUTE",
"monthly_relative" => "MONTHLY_RELATIVE",
"yearly_absolute" => "YEARLY_ABSOLUTE",
"yearly_relative" => "YEARLY_RELATIVE",
"monthly" => "MONTHLY",
"yearly" => "YEARLY",
"weekly" => "WEEKLY",
"daily" => "DAILY"
);
if (empty($value))
{
$value = "NONE";
}
$value = mb_strtolower($value);
if (array_key_exists($value, $ar))
{
if ($ar[$value] !== "NONE")
{
$arFields[$key] = $ar[$value];
$arFields["Recurrence"] = true; // Error ErrorSchemaValidation in Exchange 2013
}
}
else
{
$this->arError[] = array("WrongRecurringType", "Available values for RecurringType are NONE, MONTHLY_ABSOLUTE, MONTHLY_RELATIVE, YEARLY_ABSOLUTE, YEARLY_RELATIVE, WEEKLY, DAILY");
}
break;
case "RecurringDayOfWeekIndex":
$bProcessed = true;
$ar = array("first" => "First", "second" => "Second", "third" => "Third", "fourth" => "Fourth", "last" => "Last", 1 => "First", 2 => "Second", 3 => "Third", 4 => "Fourth");
$value = mb_strtolower($value);
if (array_key_exists($value, $ar))
{
$arFields[$key] = $ar[$value];
}
else
{
$this->arError[] = [
"WrongRecurringDayOfWeekIndex",
"Available values for RecurringDayOfWeekIndex are First, Second, Third, Fourth, Last"
];
}
break;
case "RecurringMonth":
$bProcessed = true;
$ar = array("january" => "January", "february" => "February", "march" => "March", "april" => "April", "may" => "May", "june" => "June", "july" => "July", "august" => "August", "september" => "September", "october" => "October", "november" => "November", "december" => "December", 1 => "January", 2 => "February", 3 => "March", 4 => "April", 5 => "May", 6 => "June", 7 => "July", 8 => "August", 9 => "September", 10 => "October", 11 => "November", 12 => "December");
$value = mb_strtolower($value);
if (array_key_exists($value, $ar))
{
$arFields[$key] = $ar[$value];
}
else
{
$this->arError[] = [
"WrongRecurringMonth",
"Available values for RecurringMonth are January, February, March, April, May, June, July, August, September, October, November, December"
];
}
break;
case "RecurringDaysOfWeek":
$bProcessed = true;
$ar = array("sunday" => "Sunday", "monday" => "Monday", "tuesday" => "Tuesday", "wednesday" => "Wednesday", "thursday" => "Thursday", "friday" => "Friday", "saturday" => "Saturday", "day" => "Day", "weekday" => "Weekday", "weekendday" => "WeekendDay", 0 => "Sunday", 1 => "Monday", 2 => "Tuesday", 3 => "Wednesday", 4 => "Thursday", 5 => "Friday", 6 => "Saturday", 7 => "Sunday");
$value = mb_strtolower($value);
$arValue = explode(",", $value);
foreach ($arValue as $value1)
{
$arValue1 = explode(" ", $value1);
foreach ($arValue1 as $value2)
{
$value2 = trim($value2);
if (!empty($value2))
{
if (array_key_exists($value2, $ar))
{
if (isset($arFields[$key]) && $arFields[$key] <> '')
{
$arFields[$key] .= " ";
}
$arFields[$key] .= $ar[$value2];
}
else
{
$this->arError[] = array("WrongRecurringDaysOfWeek", "Available values for RecurringDaysOfWeek are Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Day, Weekday, WeekendDay");
}
}
}
}
break;
}
return $bProcessed;
}