- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangetasks.php
- Класс: CDavExchangeTasks
- Вызов: CDavExchangeTasks::ConvertTaskToArray
private function ConvertTaskToArray($taskItem)
{
$arResultItem = array();
$arItemId = $taskItem->GetPath("/Task/ItemId");
if (!empty($arItemId))
{
$arResultItem["XML_ID"] = $arItemId[0]->GetAttribute("Id");
$arResultItem["MODIFICATION_LABEL"] = $arItemId[0]->GetAttribute("ChangeKey");
}
$arSubject = $taskItem->GetPath("/Task/Subject");
if (!empty($arSubject))
{
$arResultItem["SUBJECT"] = $this->Encode($arSubject[0]->GetContent());
}
$arBody = $taskItem->GetPath("/Task/Body");
if (!empty($arBody))
{
$arResultItem["BODY"] = $this->Encode($arBody[0]->GetContent());
$arResultItem["BODY_TYPE"] = $arBody[0]->GetAttribute("BodyType");
}
$arDateTimeCreated = $taskItem->GetPath("/Task/DateTimeCreated");
if (!empty($arDateTimeCreated))
{
$arResultItem["DATE_CREATE"] = CDavICalendarTimeZone::GetFormattedServerDateTime($arDateTimeCreated[0]->GetContent());
}
$arImportance = $taskItem->GetPath("/Task/Importance");
if (!empty($arImportance))
{
$arResultItem["IMPORTANCE"] = $arImportance[0]->GetContent();
}
$arReminderIsSet = $taskItem->GetPath("/Task/ReminderIsSet");
if (!empty($arReminderIsSet) && ($arReminderIsSet[0]->GetContent() === "true"))
{
$arReminderMinutesBeforeStart = $taskItem->GetPath("/Task/ReminderMinutesBeforeStart");
if (!empty($arReminderMinutesBeforeStart))
{
$arResultItem["REMINDER_MINUTES_BEFORE_START"] = $arReminderMinutesBeforeStart[0]->GetContent();
}
}
$arActualWork = $taskItem->GetPath("/Task/ActualWork");
if (!empty($arActualWork))
{
$arResultItem["ACTUAL_WORK"] = $arActualWork[0]->GetContent();
}
$arBillingInformation = $taskItem->GetPath("/Task/BillingInformation");
if (!empty($arBillingInformation))
{
$arResultItem["BILLING_INFORMATION"] = $arBillingInformation[0]->GetContent();
}
$arMileage = $taskItem->GetPath("/Task/Mileage");
if (!empty($arMileage))
{
$arResultItem["MILEAGE"] = $arMileage[0]->GetContent();
}
$arStartDate = $taskItem->GetPath("/Task/StartDate");
if (!empty($arStartDate))
{
$arResultItem["START_DATE"] = CDavICalendarTimeZone::GetFormattedServerDateTime($arStartDate[0]->GetContent());
}
$arDueDate = $taskItem->GetPath("/Task/DueDate");
if (!empty($arDueDate))
{
$arResultItem["DUE_DATE"] = CDavICalendarTimeZone::GetFormattedServerDateTime($arDueDate[0]->GetContent());
}
$arIsComplete = $taskItem->GetPath("/Task/IsComplete");
if (!empty($arIsComplete))
{
$arResultItem["IS_COMPLETE"] = (($arIsComplete[0]->GetContent() === "true") ? true : false);
}
$arIsRecurring = $taskItem->GetPath("/Task/IsRecurring");
if (!empty($arIsRecurring))
{
$arResultItem["IS_RECURRING"] = (($arIsRecurring[0]->GetContent() === "true") ? true : false);
}
$arRecurrence = $taskItem->GetPath("/Task/Recurrence");
if (!empty($arRecurrence))
{
$ar = $this->ConvertRecurrenceToArray($arRecurrence[0]);
if (!empty($ar))
{
$arResultItem = array_merge($arResultItem, $ar);
$arResultItem["IS_RECURRING"] = true;
}
}
$arPercentComplete = $taskItem->GetPath("/Task/PercentComplete");
if (!empty($arPercentComplete))
{
$arResultItem["PERCENT_COMPLETE"] = $arPercentComplete[0]->GetContent();
}
$arStatus = $taskItem->GetPath("/Task/Status");
if (!empty($arStatus))
{
$arResultItem["STATUS"] = $arStatus[0]->GetContent();
}
$arExtendedProperty = $taskItem->GetPath("/Task/ExtendedProperty");
$extendedPropertiesCount = count($arExtendedProperty);
for ($i = 0; $i < $extendedPropertiesCount; $i++)
{
$arTmp = $arExtendedProperty[$i]->GetContent();
$propertyName = $arTmp[0]->GetAttribute('PropertyName');
$propertyValue = $arTmp[1]->GetContent();
$arResultItem['ExtendedProperty'][$i] = array(
'Name' => $propertyName,
'Value' => $this->Encode(base64_decode($propertyValue))
);
}
$arStatusDescription = $taskItem->GetPath("/Task/StatusDescription");
if (!empty($arStatusDescription))
{
$arResultItem["STATUS_DESCRIPTION"] = $arStatusDescription[0]->GetContent();
}
$arTotalWork = $taskItem->GetPath("/Task/TotalWork");
if (!empty($arTotalWork))
{
$arResultItem["TOTAL_WORK"] = $arTotalWork[0]->GetContent();
}
$arOwner = $taskItem->GetPath("/Task/Owner");
if (!empty($arOwner))
{
$arResultItem["OWNER"] = $this->Encode($arOwner[0]->GetContent());
}
return $arResultItem;
}