Beispiel #1
0
 public static function PrepareActivityItem(&$item, &$params, $options = null)
 {
     if (!is_array($options)) {
         $options = array();
     }
     $itemID = intval($item['ID']);
     if (!isset($item['SUBJECT'])) {
         $item['SUBJECT'] = '';
     }
     if (!isset($item['DESCRIPTION'])) {
         $item['DESCRIPTION'] = '';
     }
     if (!isset($item['LOCATION'])) {
         $item['LOCATION'] = '';
     }
     $typeID = isset($item['TYPE_ID']) ? intval($item['TYPE_ID']) : CCrmActivityType::Undefined;
     $item['TYPE_ID'] = $typeID;
     $direction = isset($item['DIRECTION']) ? intval($item['DIRECTION']) : CCrmActivityDirection::Undefined;
     $item['DIRECTION'] = $direction;
     $priority = isset($item['PRIORITY']) ? intval($item['PRIORITY']) : CCrmActivityPriority::None;
     $item['PRIORITY'] = $priority;
     $item['IS_IMPORTANT'] = $priority === CCrmActivityPriority::High;
     $completed = isset($item['COMPLETED']) ? $item['COMPLETED'] === 'Y' : false;
     $item['COMPLETED'] = $completed ? 'Y' : 'N';
     if ($typeID === CCrmActivityType::Task) {
         $taskID = isset($item['ASSOCIATED_ENTITY_ID']) ? intval($item['ASSOCIATED_ENTITY_ID']) : 0;
         $item['SHOW_URL'] = $taskID > 0 && isset($params['TASK_SHOW_URL_TEMPLATE']) ? CComponentEngine::MakePathFromTemplate($params['TASK_SHOW_URL_TEMPLATE'], array('user_id' => isset($params['USER_ID']) ? $params['USER_ID'] : CCrmSecurityHelper::GetCurrentUserID(), 'task_id' => $taskID)) : '';
         $item['DEAD_LINE'] = isset($item['DEADLINE']) ? $item['DEADLINE'] : (isset($item['END_TIME']) ? $item['END_TIME'] : '');
     } else {
         if (isset($params['ACTIVITY_SHOW_URL_TEMPLATE'])) {
             $item['SHOW_URL'] = CComponentEngine::makePathFromTemplate($params['ACTIVITY_SHOW_URL_TEMPLATE'], array('activity_id' => $itemID));
         }
         $item['DEAD_LINE'] = isset($item['DEADLINE']) ? $item['DEADLINE'] : (isset($item['START_TIME']) ? $item['START_TIME'] : '');
     }
     //OWNER_TITLE
     $ownerTitle = '';
     $ownerID = isset($item['OWNER_ID']) ? intval($item['OWNER_ID']) : 0;
     $item['OWNER_ID'] = $ownerID;
     $ownerTypeID = isset($item['OWNER_TYPE_ID']) ? intval($item['OWNER_TYPE_ID']) : 0;
     $item['OWNER_TYPE_ID'] = $ownerTypeID;
     if ($ownerID > 0 && $ownerTypeID > 0) {
         $ownerTitle = CCrmOwnerType::GetCaption($ownerTypeID, $ownerID);
     }
     $item['OWNER_TITLE'] = $ownerTitle;
     //OWNER_SHOW_URL
     $ownerShowUrl = '';
     if ($ownerID > 0) {
         if ($ownerTypeID === CCrmOwnerType::Lead) {
             $ownerShowUrl = isset($params['LEAD_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['LEAD_SHOW_URL_TEMPLATE'], array('lead_id' => $ownerID)) : '';
         } elseif ($ownerTypeID === CCrmOwnerType::Contact) {
             $ownerShowUrl = isset($params['CONTACT_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['CONTACT_SHOW_URL_TEMPLATE'], array('contact_id' => $ownerID)) : '';
         } elseif ($ownerTypeID === CCrmOwnerType::Company) {
             $ownerShowUrl = isset($params['COMPANY_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['COMPANY_SHOW_URL_TEMPLATE'], array('company_id' => $ownerID)) : '';
         } elseif ($ownerTypeID === CCrmOwnerType::Deal) {
             $ownerShowUrl = isset($params['DEAL_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['DEAL_SHOW_URL_TEMPLATE'], array('deal_id' => $ownerID)) : '';
         }
     }
     $item['OWNER_SHOW_URL'] = $ownerShowUrl;
     //IS_EXPIRED
     if ($item['COMPLETED'] === 'Y') {
         $item['IS_EXPIRED'] = false;
     } else {
         $time = isset($item['DEAD_LINE']) ? MakeTimeStamp($item['DEAD_LINE']) : 0;
         $item['IS_EXPIRED'] = $time !== 0 && $time <= time() + CTimeZone::GetOffset();
     }
     $responsibleID = isset($item['RESPONSIBLE_ID']) ? intval($item['RESPONSIBLE_ID']) : 0;
     $item['RESPONSIBLE_ID'] = $responsibleID;
     $item['RESPONSIBLE_SHOW_URL'] = $responsibleID > 0 ? CComponentEngine::MakePathFromTemplate($params['USER_PROFILE_URL_TEMPLATE'], array('user_id' => $responsibleID)) : '';
     $item['RESPONSIBLE_FORMATTED_NAME'] = $responsibleID > 0 && isset($params['NAME_TEMPLATE']) ? CUser::FormatName($params['NAME_TEMPLATE'], array('LOGIN' => isset($item['RESPONSIBLE_LOGIN']) ? $item['RESPONSIBLE_LOGIN'] : '', 'NAME' => isset($item['RESPONSIBLE_NAME']) ? $item['RESPONSIBLE_NAME'] : '', 'LAST_NAME' => isset($item['RESPONSIBLE_LAST_NAME']) ? $item['RESPONSIBLE_LAST_NAME'] : '', 'SECOND_NAME' => isset($item['RESPONSIBLE_SECOND_NAME']) ? $item['RESPONSIBLE_SECOND_NAME'] : ''), true, false) : '';
     //COMMUNICATIONS
     if ($itemID > 0 && isset($options['ENABLE_COMMUNICATIONS']) && $options['ENABLE_COMMUNICATIONS'] && !isset($item['COMMUNICATIONS'])) {
         $item['COMMUNICATIONS'] = CCrmActivity::GetCommunications($itemID);
     }
     $storageTypeID = isset($item['STORAGE_TYPE_ID']) ? intval($item['STORAGE_TYPE_ID']) : CCrmActivityStorageType::Undefined;
     if ($storageTypeID === CCrmActivityStorageType::Undefined || !CCrmActivityStorageType::IsDefined($storageTypeID)) {
         $storageTypeID = CCrmActivity::GetDefaultStorageTypeID();
     }
     $item['STORAGE_TYPE_ID'] = $storageTypeID;
     $item['FILES'] = array();
     $item['DISK_FILES'] = array();
     $item['WEBDAV_ELEMENTS'] = array();
     if (isset($options['ENABLE_FILES']) && $options['ENABLE_FILES']) {
         CCrmActivity::PrepareStorageElementIDs($item);
         CCrmActivity::PrepareStorageElementInfo($item);
     }
 }
Beispiel #2
0
    $ID = isset($_POST['ID']) ? intval($_POST['ID']) : 0;
    $arFields = CCrmActivity::GetByID($ID);
    if (!is_array($arFields)) {
        echo CUtil::PhpToJsObject(array('ERROR' => 'NOT FOUND'));
        die;
    }
    $commData = array();
    $communications = CCrmActivity::GetCommunications($ID);
    foreach ($communications as &$arComm) {
        CCrmActivity::PrepareCommunicationInfo($arComm);
        $commData[] = array('type' => $arComm['TYPE'], 'value' => $arComm['VALUE'], 'entityId' => $arComm['ENTITY_ID'], 'entityType' => CCrmOwnerType::ResolveName($arComm['ENTITY_TYPE_ID']), 'entityTitle' => $arComm['TITLE']);
    }
    unset($arComm);
    $storageTypeID = isset($arFields['STORAGE_TYPE_ID']) ? intval($arFields['STORAGE_TYPE_ID']) : CCrmActivityStorageType::Undefined;
    CCrmActivity::PrepareStorageElementIDs($arFields);
    CCrmActivity::PrepareStorageElementInfo($arFields);
    echo CUtil::PhpToJSObject(array('ACTIVITY' => array('ID' => $ID, 'typeID' => $arFields['TYPE_ID'], 'associatedEntityID' => isset($arFields['ASSOCIATED_ENTITY_ID']) ? $arFields['ASSOCIATED_ENTITY_ID'] : '0', 'ownerID' => $arFields['OWNER_ID'], 'ownerType' => CCrmOwnerType::ResolveName($arFields['OWNER_TYPE_ID']), 'ownerTitle' => CCrmOwnerType::GetCaption($arFields['OWNER_TYPE_ID'], $arFields['OWNER_ID']), 'ownerUrl' => CCrmOwnerType::GetShowUrl($arFields['OWNER_TYPE_ID'], $arFields['OWNER_ID']), 'subject' => $arFields['SUBJECT'], 'description' => $arFields['DESCRIPTION'], 'location' => $arFields['LOCATION'], 'direction' => intval($arFields['DIRECTION']), 'start' => $arFields['START_TIME'], 'end' => $arFields['END_TIME'], 'completed' => isset($arFields['COMPLETED']) && $arFields['COMPLETED'] === 'Y', 'notifyType' => intval($arFields['NOTIFY_TYPE']), 'notifyValue' => intval($arFields['NOTIFY_VALUE']), 'priority' => intval($arFields['PRIORITY']), 'responsibleName' => CCrmViewHelper::GetFormattedUserName(isset($arFields['RESPONSIBLE_ID']) ? intval($arFields['RESPONSIBLE_ID']) : 0), 'storageTypeID' => $storageTypeID, 'files' => isset($arFields['FILES']) ? $arFields['FILES'] : array(), 'webdavelements' => isset($arFields['WEBDAV_ELEMENTS']) ? $arFields['WEBDAV_ELEMENTS'] : array(), 'diskfiles' => isset($arFields['DISK_FILES']) ? $arFields['DISK_FILES'] : array(), 'communications' => $commData)));
} elseif ($action == 'GET_ENTITY_COMMUNICATIONS') {
    $entityType = isset($_POST['ENTITY_TYPE']) ? strtoupper(strval($_POST['ENTITY_TYPE'])) : '';
    $entityID = isset($_POST['ENTITY_ID']) ? intval($_POST['ENTITY_ID']) : 0;
    $communicationType = isset($_POST['COMMUNICATION_TYPE']) ? strval($_POST['COMMUNICATION_TYPE']) : '';
    if ($entityType === '' || $entityID <= 0) {
        echo CUtil::PhpToJSObject(array('ERROR' => 'Invalid data'));
        die;
    }
    $result = GetCrmEntityCommunications($entityType, $entityID, $communicationType);
    echo CUtil::PhpToJSObject($result);
} elseif ($action == 'SEARCH_COMMUNICATIONS') {
    $entityType = isset($_POST['ENTITY_TYPE']) ? strtoupper(strval($_POST['ENTITY_TYPE'])) : '';
    $entityID = isset($_POST['ENTITY_ID']) ? intval($_POST['ENTITY_ID']) : 0;
    $communicationType = isset($_POST['COMMUNICATION_TYPE']) ? strval($_POST['COMMUNICATION_TYPE']) : '';
Beispiel #3
0
     $arRes['RESPONSIBLE'] = false;
     $arRes['RESPONSIBLE_FULL_NAME'] = '';
     $arRes['PATH_TO_RESPONSIBLE'] = '';
 } elseif (!in_array($responsibleID, $responsibleIDs, true)) {
     $responsibleIDs[] = $responsibleID;
 }
 $storageTypeID = isset($arRes['STORAGE_TYPE_ID']) ? intval($arRes['STORAGE_TYPE_ID']) : CCrmActivityStorageType::Undefined;
 if ($storageTypeID === CCrmActivityStorageType::Undefined || !CCrmActivityStorageType::IsDefined($storageTypeID)) {
     $storageTypeID = $arRes['STORAGE_TYPE_ID'] = $arRes['~STORAGE_TYPE_ID'] = CCrmActivity::GetDefaultStorageTypeID();
 }
 $arRes['FILES'] = array();
 $arRes['WEBDAV_ELEMENTS'] = array();
 $arRes['DISK_FILES'] = array();
 if (!$skipFiles) {
     CCrmActivity::PrepareStorageElementIDs($arRes);
     CCrmActivity::PrepareStorageElementInfo($arRes);
 }
 //$arRes['SETTINGS'] = (isset($arRes['~SETTINGS']) && $arRes['~SETTINGS'] !== '') ? unserialize($arRes['~SETTINGS']) : array();
 //Lazy communications loading
 //$arRes['COMMUNICATIONS'] = CCrmActivity::GetCommunications($itemID);
 $arRes['COMMUNICATIONS_LOADED'] = false;
 $description = isset($arRes['~DESCRIPTION']) ? $arRes['~DESCRIPTION'] : '';
 $descriptionType = isset($arRes['DESCRIPTION_TYPE']) ? intval($arRes['DESCRIPTION_TYPE']) : CCrmContentType::PlainText;
 if ($descriptionType === CCrmContentType::BBCode) {
     $arRes['DESCRIPTION_HTML'] = $bbCodeParser->convertText($description);
     $arRes['DESCRIPTION_RAW'] = strip_tags(preg_replace('/(<br[^>]*>)+/is' . BX_UTF_PCRE_MODIFIER, "\n", $arRes['DESCRIPTION_HTML']));
     $arRes['ENABLE_DESCRIPTION_CUT'] = false;
 } elseif ($descriptionType === CCrmContentType::Html) {
     //Already sanitaized
     $arRes['DESCRIPTION_HTML'] = $description;
     $arRes['DESCRIPTION_RAW'] = html_entity_decode(strip_tags(preg_replace('/(<br[^>]*>)+/is' . BX_UTF_PCRE_MODIFIER, "\n", $description)));