public static function TryResolveUserFieldOwners(&$arUsefFieldData, &$arOwnerData, $arField = null) { $parsed = 0; $defaultTypeName = ''; if (is_array($arField) && isset($arField['USER_TYPE_ID']) && $arField['USER_TYPE_ID'] === 'crm' && isset($arField['SETTINGS']) && is_array($arField['SETTINGS'])) { foreach ($arField['SETTINGS'] as $k => $v) { if ($v !== 'Y') { continue; } if ($defaultTypeName === '') { $defaultTypeName = $k; continue; } // There is more than one type enabled $defaultTypeName = ''; break; } } foreach ($arUsefFieldData as $value) { $value = strval($value); if ($value === '') { continue; } $ownerTypeName = ''; $ownerID = 0; if (preg_match('/^([A-Z]+)_([0-9]+)$/', strtoupper(trim($value)), $match) === 1) { $ownerTypeName = CCrmOwnerTypeAbbr::ResolveName($match[1]); $ownerID = intval($match[2]); } elseif ($defaultTypeName !== '') { $ownerTypeName = $defaultTypeName; $ownerID = intval($value); } if ($ownerTypeName === '' || $ownerID <= 0) { continue; } $arOwnerData[] = array('OWNER_TYPE_NAME' => $ownerTypeName, 'OWNER_ID' => $ownerID); $parsed++; } return $parsed > 0; }
protected static function PrepareCrmUserTypeValueView($value, $defaultTypeName = '') { $parts = explode('_', $value); if (count($parts) > 1) { return CCrmOwnerType::GetCaption(CCrmOwnerType::ResolveID(CCrmOwnerTypeAbbr::ResolveName($parts[0])), $parts[1]); } elseif ($defaultTypeName !== '') { return CCrmOwnerType::GetCaption(CCrmOwnerType::ResolveID($defaultTypeName), $value); } return $value; }
private static function RegisterEvents($ownerType, $ownerID, $arEvents, $checkPerms) { global $USER; $userID = isset($USER) && $USER instanceof CUser && 'CUser' === get_class($USER) ? $USER->GetId() : 0; $CCrmEvent = new CCrmEvent(); foreach ($arEvents as $arEvent) { $arEvent['EVENT_TYPE'] = 1; $arEvent['ENTITY_TYPE'] = CCrmOwnerTypeAbbr::ResolveName($ownerType); $arEvent['ENTITY_ID'] = $ownerID; $arEvent['ENTITY_FIELD'] = 'PRODUCT_ROWS'; if ($userID > 0) { $arEvent['USER_ID'] = $userID; } $CCrmEvent->Add($arEvent, $checkPerms); } return true; }
CUtil::JSPostUnescape(); $APPLICATION->RestartBuffer(); Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); // Recalcutation of product prices after currency change $mode = isset($_POST['MODE']) ? $_POST['MODE'] : ''; if (!isset($mode[0])) { die; } $ownerType = isset($_POST['OWNER_TYPE']) ? $_POST['OWNER_TYPE'] : ''; if (!isset($ownerType[0])) { echo CUtil::PhpToJSObject(array('ERROR' => 'OWNER_TYPE_NOT_FOUND')); die; } $siteID = isset($_POST['SITE_ID']) && $_POST['SITE_ID'] !== '' ? $_POST['SITE_ID'] : SITE_ID; $ownerID = isset($_POST['OWNER_ID']) ? intval($_POST['OWNER_ID']) : 0; $ownerName = CCrmOwnerTypeAbbr::ResolveName($ownerType); $perms = new CCrmPerms($USER->GetID()); if ($mode === 'SET_OPTION') { $arResponse = array('MODE' => 'SET_OPTION'); $data = isset($_POST['DATA']) && is_array($_POST['DATA']) ? $_POST['DATA'] : array(); if (count($data) == 0) { $arResponse['ERROR'] = 'SOURCE_DATA_NOT_FOUND'; } else { $bSuccess = true; if (empty($ownerType) || $ownerID <= 0) { $bSuccess = false; } if ($bSuccess) { $settings = array(); if (isset($data['SHOW_DISCOUNT'])) { $settings['ENABLE_DISCOUNT'] = $data['SHOW_DISCOUNT'] === 'Y';
case CTaskColumnList::COLUMN_STATUS: echo GetMessage('TASKS_LIST_ITEMS_STATUS_' . $task['REAL_STATUS']); break; case CTaskColumnList::COLUMN_PRIORITY: echo GetMessage('TASKS_LIST_ITEMS_PRIORITY_' . $task['PRIORITY']); break; case CTaskColumnList::COLUMN_UF_CRM: if (empty($task['UF_CRM_TASK'])) { break; } $collection = array(); sort($task['UF_CRM_TASK']); foreach ($task['UF_CRM_TASK'] as $value) { $crmElement = explode('_', $value); $type = $crmElement[0]; $typeId = CCrmOwnerType::ResolveID(CCrmOwnerTypeAbbr::ResolveName($type)); $title = CCrmOwnerType::GetCaption($typeId, $crmElement[1]); $url = CCrmOwnerType::GetShowUrl($typeId, $crmElement[1]); if (!isset($collection[$type])) { $collection[$type] = array(); } $collection[$type][] = '<a href="' . $url . '">' . $title . '</a>'; } if ($collection) { echo '<div class="tasks-list-crm-div">'; $prevType = null; foreach ($collection as $type => $items) { if ($type !== $prevType) { if ($prevType !== null) { echo ' '; }