public static function GetEntityTypes() { if (self::$ENTITY_TYPES === null) { self::$ENTITY_TYPES = array('PHONE' => array('WORK' => array('FULL' => GetMessage('CRM_FM_ENTITY_PHONE_WORK'), 'SHORT' => GetMessage('CRM_FM_ENTITY_PHONE_WORK_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_PHONE_WORK_ABBR'), 'TEMPLATE' => '<a href="' . CCrmCallToUrl::Format('#VALUE#') . '">#VALUE_HTML#</a>'), 'MOBILE' => array('FULL' => GetMessage('CRM_FM_ENTITY_PHONE_MOBILE'), 'SHORT' => GetMessage('CRM_FM_ENTITY_PHONE_MOBILE_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_PHONE_MOBILE_ABBR'), 'TEMPLATE' => '<a href="' . CCrmCallToUrl::Format('#VALUE#') . '">#VALUE_HTML#</a>'), 'FAX' => array('FULL' => GetMessage('CRM_FM_ENTITY_PHONE_FAX'), 'SHORT' => GetMessage('CRM_FM_ENTITY_PHONE_FAX_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_PHONE_FAX_ABBR'), 'TEMPLATE' => '<a href="' . CCrmCallToUrl::Format('#VALUE#') . '">#VALUE_HTML#</a>'), 'HOME' => array('FULL' => GetMessage('CRM_FM_ENTITY_PHONE_HOME'), 'SHORT' => GetMessage('CRM_FM_ENTITY_PHONE_HOME_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_PHONE_HOME_ABBR'), 'TEMPLATE' => '<a href="' . CCrmCallToUrl::Format('#VALUE#') . '">#VALUE_HTML#</a>'), 'PAGER' => array('FULL' => GetMessage('CRM_FM_ENTITY_PHONE_PAGER'), 'SHORT' => GetMessage('CRM_FM_ENTITY_PHONE_PAGER_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_PHONE_PAGER_ABBR'), 'TEMPLATE' => '<a href="' . CCrmCallToUrl::Format('#VALUE#') . '">#VALUE_HTML#</a>'), 'OTHER' => array('FULL' => GetMessage('CRM_FM_ENTITY_PHONE_OTHER'), 'SHORT' => GetMessage('CRM_FM_ENTITY_PHONE_OTHER_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_PHONE_OTHER_ABBR'), 'TEMPLATE' => '<a href="' . CCrmCallToUrl::Format('#VALUE#') . '">#VALUE_HTML#</a>')), 'WEB' => array('WORK' => array('FULL' => GetMessage('CRM_FM_ENTITY_WEB_WORK'), 'SHORT' => GetMessage('CRM_FM_ENTITY_WEB_WORK_SHORT'), 'TEMPLATE' => '<a href="http://#VALUE_URL#" target="_blank">#VALUE_HTML#</a>'), 'HOME' => array('FULL' => GetMessage('CRM_FM_ENTITY_WEB_HOME'), 'SHORT' => GetMessage('CRM_FM_ENTITY_WEB_HOME_SHORT'), 'TEMPLATE' => '<a href="http://#VALUE_URL#" target="_blank">#VALUE_HTML#</a>'), 'FACEBOOK' => array('FULL' => GetMessage('CRM_FM_ENTITY_WEB_FACEBOOK'), 'SHORT' => GetMessage('CRM_FM_ENTITY_WEB_FACEBOOK_SHORT'), 'TEMPLATE' => '<a href="http://www.facebook.com/#VALUE_URL#/" target="_blank">#VALUE_HTML#</a>'), 'LIVEJOURNAL' => array('FULL' => GetMessage('CRM_FM_ENTITY_WEB_LIVEJOURNAL'), 'SHORT' => GetMessage('CRM_FM_ENTITY_WEB_LIVEJOURNAL_SHORT'), 'TEMPLATE' => '<a href="http://#VALUE_URL#.livejournal.com/" target="_blank">#VALUE_HTML#</a>'), 'TWITTER' => array('FULL' => GetMessage('CRM_FM_ENTITY_WEB_TWITTER'), 'SHORT' => GetMessage('CRM_FM_ENTITY_WEB_TWITTER_SHORT'), 'TEMPLATE' => '<a href="http://twitter.com/#VALUE_URL#/" target="_blank">#VALUE_HTML#</a>'), 'OTHER' => array('FULL' => GetMessage('CRM_FM_ENTITY_WEB_OTHER'), 'SHORT' => GetMessage('CRM_FM_ENTITY_WEB_OTHER_SHORT'), 'TEMPLATE' => '<a href="http://#VALUE_URL#" target="_blank">#VALUE_HTML#</a>')), 'EMAIL' => array('WORK' => array('FULL' => GetMessage('CRM_FM_ENTITY_EMAIL_WORK'), 'SHORT' => GetMessage('CRM_FM_ENTITY_EMAIL_WORK_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_EMAIL_WORK_ABBR'), 'TEMPLATE' => '<a href="mailto:#VALUE_URL#">#VALUE_HTML#</a>'), 'HOME' => array('FULL' => GetMessage('CRM_FM_ENTITY_EMAIL_HOME'), 'SHORT' => GetMessage('CRM_FM_ENTITY_EMAIL_HOME_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_EMAIL_HOME_ABBR'), 'TEMPLATE' => '<a href="mailto:#VALUE_URL#">#VALUE_HTML#</a>'), 'OTHER' => array('FULL' => GetMessage('CRM_FM_ENTITY_EMAIL_OTHER'), 'SHORT' => GetMessage('CRM_FM_ENTITY_EMAIL_OTHER_SHORT'), 'ABBR' => GetMessage('CRM_FM_ENTITY_EMAIL_OTHER_ABBR'), 'TEMPLATE' => '<a href="mailto:#VALUE_URL#">#VALUE_HTML#</a>')), 'IM' => array('SKYPE' => array('FULL' => GetMessage('CRM_FM_ENTITY_IM_SKYPE'), 'SHORT' => GetMessage('CRM_FM_ENTITY_IM_SKYPE_SHORT'), 'TEMPLATE' => '<a href="skype:#VALUE_URL#?chat">#VALUE_HTML#</a>'), 'ICQ' => array('FULL' => GetMessage('CRM_FM_ENTITY_IM_ICQ'), 'SHORT' => GetMessage('CRM_FM_ENTITY_IM_ICQ_SHORT'), 'TEMPLATE' => '<a href="http://www.icq.com/people/#VALUE_URL#/" target="_blank">#VALUE_HTML#</a>'), 'MSN' => array('FULL' => GetMessage('CRM_FM_ENTITY_IM_MSN'), 'SHORT' => GetMessage('CRM_FM_ENTITY_IM_MSN_SHORT'), 'TEMPLATE' => '<a href="msn:#VALUE_URL#">#VALUE_HTML#</a>'), 'JABBER' => array('FULL' => GetMessage('CRM_FM_ENTITY_IM_JABBER'), 'SHORT' => GetMessage('CRM_FM_ENTITY_IM_JABBER_SHORT'), 'TEMPLATE' => '#VALUE_HTML#'), 'OTHER' => array('FULL' => GetMessage('CRM_FM_ENTITY_IM_OTHER'), 'SHORT' => GetMessage('CRM_FM_ENTITY_IM_OTHER_SHORT'), 'TEMPLATE' => '#VALUE_HTML#'))); } return self::$ENTITY_TYPES; }
echo CUtil::JSEscape($instantEditorID); ?> ', { containerID: [], ownerType: 'CO', ownerID: <?php echo $arResult['ELEMENT_ID']; ?> , url: '/bitrix/components/bitrix/crm.company.show/ajax.php?<?php echo bitrix_sessid_get(); ?> ', callToFormat: <?php echo CCrmCallToUrl::GetFormat(CCrmCallToUrl::Bitrix); ?> } ); <?php if (isset($arResult['ENABLE_BIZPROC_LAZY_LOADING']) && $arResult['ENABLE_BIZPROC_LAZY_LOADING'] === true) { ?> var bpContainerId = "<?php echo $arResult['BIZPROC_CONTAINER_ID']; ?> "; if(BX(bpContainerId)) { BX.CrmBizprocDispatcher.create( "<?php
$arResult['PREFIX'] = isset($arResult['PREFIX']) ? strval($arResult['PREFIX']) : 'crm_quote_show'; $activityEditorID = $arResult['PREFIX'] . '_send_email'; $activityEditorSettings = array('CONTAINER_ID' => '', 'EDITOR_ID' => $activityEditorID, 'PREFIX' => $arResult['PREFIX'], 'ENABLE_UI' => false, 'ENABLE_TOOLBAR' => false, 'ENABLE_EMAIL_ADD' => true); $leadID = isset($arResult['ELEMENT']['LEAD_ID']) ? intval($arResult['ELEMENT']['LEAD_ID']) : 0; if ($leadID > 0) { $activityEditorSettings['OWNER_TYPE'] = CCrmOwnerType::LeadName; $activityEditorSettings['OWNER_ID'] = $leadID; } $dealID = isset($arResult['ELEMENT']['DEAL_ID']) ? intval($arResult['ELEMENT']['DEAL_ID']) : 0; if ($dealID > 0) { $activityEditorSettings['OWNER_TYPE'] = CCrmOwnerType::DealName; $activityEditorSettings['OWNER_ID'] = $dealID; } $APPLICATION->IncludeComponent('bitrix:crm.activity.editor', '', $activityEditorSettings, $component, array('HIDE_ICONS' => 'Y')); $prefixLower = strtolower($arResult['PREFIX']); $scriptSettings = array('formId' => $arResult['FORM_ID'], 'enableInstantEdit' => (bool) $arResult['ENABLE_INSTANT_EDIT'], 'instantEditorId' => $instantEditorID, 'summaryContainerId' => $summaryContainerID, 'productRowsTabId' => $arResult['PRODUCT_ROW_TAB_ID'], 'ownerType' => CCrmQuote::OWNER_TYPE, 'ownerId' => $arResult['ELEMENT_ID'], 'url' => '/bitrix/components/bitrix/crm.quote.show/ajax.php?' . bitrix_sessid_get(), 'callToFormat' => CCrmCallToUrl::GetFormat(CCrmCallToUrl::Bitrix), 'messages' => array('editButtonTitle' => GetMessage('CRM_EDIT_BTN_TTL'), 'lockButtonTitle' => GetMessage('CRM_LOCK_BTN_TTL')), 'filesFieldSettings' => array('containerId' => $arResult['FILES_FIELD_CONTAINER_ID'], 'controlMode' => 'view', 'webDavSelectUrl' => $arResult['WEBDAV_SELECT_URL'], 'webDavUploadUrl' => $arResult['WEBDAV_UPLOAD_URL'], 'webDavShowUrl' => $arResult['WEBDAV_SHOW_URL'], 'files' => $arResult['ELEMENT']['STORAGE_ELEMENT_IDS'], 'uploadContainerID' => $prefixLower . '_upload_container', 'uploadControlID' => $prefixLower . '_uploader', 'uploadInputID' => $prefixLower . '_saved_file', 'storageTypeId' => $arResult['ELEMENT']['STORAGE_TYPE_ID'], 'defaultStorageTypeId' => CCrmQuote::GetDefaultStorageTypeID(), 'serviceUrl' => '/bitrix/components/bitrix/crm.quote.edit/ajax.php?siteID=' . SITE_ID . '&' . bitrix_sessid_get(), 'messages' => array('webdavFileLoading' => GetMessage('CRM_QUOTE_WEBDAV_FILE_LOADING'), 'webdavFileAlreadyExists' => GetMessage('CRM_QUOTE_WEBDAV_FILE_ALREADY_EXISTS'), 'webdavFileAccessDenied' => GetMessage('CRM_QUOTE_WEBDAV_FILE_ACCESS_DENIED'), 'webdavAttachFile' => GetMessage('CRM_QUOTE_WEBDAV_ATTACH_FILE'), 'webdavTitle' => GetMessage('CRM_QUOTE_WEBDAV_TITLE'), 'webdavDragFile' => GetMessage('CRM_QUOTE_WEBDAV_DRAG_FILE'), 'webdavSelectFile' => GetMessage('CRM_QUOTE_WEBDAV_SELECT_FILE'), 'webdavSelectFromLib' => GetMessage('CRM_QUOTE_WEBDAV_SELECT_FROM_LIB'), 'webdavLoadFiles' => GetMessage('CRM_QUOTE_WEBDAV_LOAD_FILES'), 'diskAttachedFiles' => GetMessage('CRM_QUOTE_DISK_ATTACHED_FILES')))); CCrmQuote::PrepareStorageElementInfo($arResult['ELEMENT']); if (isset($arResult['ELEMENT']['WEBDAV_ELEMENTS'])) { $scriptSettings['filesFieldSettings']['webdavelements'] = $arResult['ELEMENT']['WEBDAV_ELEMENTS']; } elseif (isset($arResult['ELEMENT']['DISK_FILES'])) { $scriptSettings['filesFieldSettings']['diskfiles'] = $arResult['ELEMENT']['DISK_FILES']; } ?> <script type="text/javascript"> BX.ready( function() { BX.CrmQuoteShowInitScript(<?php echo CUtil::PhpToJSObject($scriptSettings); ?> );
public static function GetAllDescriptions() { if (!self::$ALL_DESCRIPTIONS) { IncludeModuleLangFile(__FILE__); self::$ALL_DESCRIPTIONS = array(self::Standard => GetMessage('CRM_CALLTO_URL_STANDARD'), self::Slashless => GetMessage('CRM_CALLTO_URL_SLASHLESS'), self::Bitrix => GetMessage('CRM_CALLTO_URL_BITRIX'), self::Custom => GetMessage('CRM_CALLTO_URL_CUSTOM')); } return self::$ALL_DESCRIPTIONS; }
$arResult['FIELDS']['tab_deal_config'][] = array('id' => 'DEAL_DEFAULT_LIST_VIEW', 'name' => GetMessage('CRM_FIELD_DEAL_DEFAULT_LIST_VIEW'), 'items' => \Bitrix\Crm\Settings\DealSettings::getViewDescriptions(), 'type' => 'list', 'value' => \Bitrix\Crm\Settings\DealSettings::getDefaultListViewID(), 'required' => false); $arResult['FIELDS']['tab_deal_config'][] = array('id' => 'REFRESH_DEAL_CLOSEDATE', 'name' => GetMessage('CRM_FIELD_REFRESH_DEAL_CLOSEDATE'), 'type' => 'checkbox', 'value' => \Bitrix\Crm\Settings\DealSettings::isCloseDateSyncEnabled(), 'required' => false); $arResult['FIELDS']['tab_activity_config'][] = array('id' => 'CALENDAR_DISPLAY_COMPLETED_CALLS', 'name' => GetMessage('CRM_FIELD_DISPLAY_COMPLETED_CALLS_IN_CALENDAR'), 'type' => 'checkbox', 'value' => CCrmActivityCalendarSettings::GetValue(CCrmActivityCalendarSettings::DisplayCompletedCalls, true), 'required' => false); $arResult['FIELDS']['tab_activity_config'][] = array('id' => 'CALENDAR_DISPLAY_COMPLETED_MEETINGS', 'name' => GetMessage('CRM_FIELD_DISPLAY_COMPLETED_MEETINGS_IN_CALENDAR'), 'type' => 'checkbox', 'value' => CCrmActivityCalendarSettings::GetValue(CCrmActivityCalendarSettings::DisplayCompletedMeetings, true), 'required' => false); $arResult['FIELDS']['tab_activity_config'][] = array('id' => 'RECKON_ACTIVITYLESS_ITEMS_IN_COUNTERS', 'name' => GetMessage('CRM_FIELD_RECKON_ACTIVITYLESS_ITEMS_IN_COUNTERS'), 'type' => 'checkbox', 'value' => CCrmUserCounterSettings::GetValue(CCrmUserCounterSettings::ReckonActivitylessItems, true), 'required' => false); $arResult['FIELDS']['tab_outgoing_email'][] = array('id' => 'SERVICE_CODE_ALLOCATION', 'name' => GetMessage('CRM_FIELD_SERVICE_CODE_ALLOCATION'), 'items' => CCrmEMailCodeAllocation::GetAllDescriptions(), 'type' => 'list', 'value' => CCrmEMailCodeAllocation::GetCurrent(), 'required' => false); if (Bitrix\Crm\Integration\Bitrix24Email::isEnabled()) { if (Bitrix\Crm\Integration\Bitrix24Email::allowDisableSignature()) { $arResult['FIELDS']['tab_outgoing_email'][] = array('id' => 'ENABLE_B24_EMAIL_SIGNATURE', 'name' => GetMessage('CRM_FIELD_ENABLE_B24_EMAIL_SIGNATURE'), 'type' => 'checkbox', 'value' => Bitrix\Crm\Integration\Bitrix24Email::isSignatureEnabled(), 'required' => false); } else { $arResult['FIELDS']['tab_outgoing_email'][] = array('id' => 'ENABLE_B24_EMAIL_SIGNATURE', 'name' => GetMessage('CRM_FIELD_ENABLE_B24_EMAIL_SIGNATURE'), 'type' => 'label', 'value' => Bitrix\Crm\Integration\Bitrix24Email::getSignatureExplanation(), 'required' => false); } } $arResult['FIELDS']['tab_format'][] = array('id' => 'PERSON_NAME_FORMAT_ID', 'name' => GetMessage('CRM_FIELD_PERSON_NAME_FORMAT'), 'type' => 'list', 'items' => \Bitrix\Crm\Format\PersonNameFormatter::getAllDescriptions(), 'value' => \Bitrix\Crm\Format\PersonNameFormatter::getFormatID(), 'required' => false); $arResult['FIELDS']['tab_format'][] = array('id' => 'CALLTO_FORMAT', 'name' => GetMessage('CRM_FIELD_CALLTO_FORMAT'), 'type' => 'list', 'items' => CCrmCallToUrl::GetAllDescriptions(), 'value' => CCrmCallToUrl::GetFormat(CCrmCallToUrl::Bitrix), 'required' => false); $calltoSettings = CCrmCallToUrl::GetCustomSettings(); $arResult['FIELDS']['tab_format'][] = array('id' => 'CALLTO_URL_TEMPLATE', 'name' => GetMessage('CRM_FIELD_CALLTO_URL_TEMPLATE'), 'type' => 'text', 'value' => isset($calltoSettings['URL_TEMPLATE']) ? $calltoSettings['URL_TEMPLATE'] : 'callto:[phone]', 'required' => false); $arResult['FIELDS']['tab_format'][] = array('id' => 'CALLTO_CLICK_HANDLER', 'name' => GetMessage('CRM_FIELD_CALLTO_CLICK_HANDLER'), 'type' => 'textarea', 'value' => isset($calltoSettings['CLICK_HANDLER']) ? $calltoSettings['CLICK_HANDLER'] : '', 'required' => false); $arResult['FIELDS']['tab_format'][] = array('id' => 'CALLTO_NORMALIZE_NUMBER', 'name' => GetMessage('CRM_FIELD_CALLTO_NORMALIZE_NUMBER'), 'type' => 'checkbox', 'value' => isset($calltoSettings['NORMALIZE_NUMBER']) ? $calltoSettings['NORMALIZE_NUMBER'] === 'Y' : true, 'required' => false); $arResult['FIELDS']['tab_format'][] = array('id' => 'section_address_format', 'name' => GetMessage('CRM_SECTION_ADDRESS_FORMAT'), 'type' => 'section'); $curAddrFormatID = \Bitrix\Crm\Format\EntityAddressFormatter::getFormatID(); $addrFormatDescrs = \Bitrix\Crm\Format\EntityAddressFormatter::getAllDescriptions(); $arResult['ADDR_FORMAT_INFOS'] = \Bitrix\Crm\Format\EntityAddressFormatter::getAllExamples(); $arResult['ADDR_FORMAT_CONTROL_PREFIX'] = 'addr_format_'; $addrFormatControls = array(); foreach ($addrFormatDescrs as $addrFormatID => $addrFormatDescr) { $isChecked = $addrFormatID === $curAddrFormatID; $addrFormatControlID = $arResult['ADDR_FORMAT_CONTROL_PREFIX'] . $addrFormatID; $addrFormatControls[] = '<input type="radio" class="crm-dup-control-type-radio" id="' . $addrFormatControlID . '" name="ENTITY_ADDRESS_FORMAT_ID" value="' . $addrFormatID . '"' . ($isChecked ? ' checked="checked"' : '') . '/><label class="crm-dup-control-type-label" for="' . $addrFormatControlID . '">' . htmlspecialcharsbx($addrFormatDescr) . '</label>'; } $arResult['FIELDS']['tab_format'][] = array('id' => 'ENTITY_ADDRESS_FORMAT', 'type' => 'custom', 'value' => '<div class="crm-dup-control-type-radio-title">' . GetMessage('CRM_FIELD_ENTITY_ADDRESS_FORMAT') . ':</div>' . '<div class="crm-dup-control-type-radio-wrap">' . implode('', $addrFormatControls) . '</div>', 'colspan' => true);
if ($typeID === 'PHONE' || $typeID === 'EMAIL' || $typeID === 'WEB') { $templateType = '_LINK_'; if ($typeID === 'WEB' && $valueType !== 'WORK' && $valueType !== 'HOME' && $valueType !== 'OTHER') { $editorFieldType .= '-' . strtolower($valueType); } } elseif ($typeID === 'IM') { $templateType = $valueType === 'SKYPE' || $valueType === 'ICQ' || $valueType === 'MSN' ? '_LINK_' : '_INPUT_'; $editorFieldType .= '-' . strtolower($valueType); } $template = isset($crmFieldMultiViewTemplates[$templateType]) ? $crmFieldMultiViewTemplates[$templateType] : ''; if ($template === '') { echo CCrmFieldMulti::GetTemplate($typeID, $valueType, $value); } else { $viewValue = $value; if ($typeID === 'PHONE') { $viewValue = CCrmCallToUrl::Format($value); } elseif ($typeID === 'EMAIL') { $viewValue = "mailto:{$value}"; } elseif ($typeID === 'WEB') { if ($valueType === 'OTHER' || $valueType === 'WORK' || $valueType === 'HOME') { $hasProto = preg_match('/^http(?:s)?:\\/\\/(.+)/', $value, $urlMatches) > 0; if ($hasProto) { $value = $urlMatches[1]; } else { $viewValue = "http://{$value}"; } } elseif ($valueType === 'FACEBOOK') { $viewValue = "http://www.facebook.com/{$value}/"; } elseif ($valueType === 'TWITTER') { $viewValue = "http://twitter.com/{$value}/"; } elseif ($valueType === 'LIVEJOURNAL') {
public static function CreateMultiFields($fieldTypeID, &$fieldValues, &$formFields, $fieldParams = array(), $readOnlyMode = true) { $fieldTypeID = strtoupper(strval($fieldTypeID)); if ($fieldTypeID === '' || !is_array($fieldValues) || count($fieldValues) === 0 || !is_array($formFields)) { return false; } if (!is_array($fieldParams)) { $fieldParams = array(); } foreach ($fieldValues as $ID => &$data) { $valueType = isset($data['VALUE_TYPE']) ? strtoupper($data['VALUE_TYPE']) : ''; $value = isset($data['VALUE']) ? $data['VALUE'] : ''; $fieldID = "FM.{$fieldTypeID}.{$valueType}"; $field = array('id' => $fieldID, 'name' => CCrmFieldMulti::GetEntityName($fieldTypeID, $valueType, true)); if ($readOnlyMode) { $field['type'] = 'label'; $field['value'] = CCrmFieldMulti::GetTemplate($fieldTypeID, $valueType, $value); } else { $templateType = 'INPUT'; $editorFieldType = strtolower($fieldTypeID); if ($fieldTypeID === 'PHONE' || $fieldTypeID === 'EMAIL' || $fieldTypeID === 'WEB') { $templateType = '_LINK_'; if ($fieldTypeID === 'WEB') { if ($valueType !== 'WORK' && $valueType !== 'HOME' && $valueType !== 'OTHER') { $editorFieldType .= '-' . strtolower($valueType); } } } elseif ($fieldTypeID === 'IM') { $templateType = $valueType === 'SKYPE' || $valueType === 'ICQ' || $valueType === 'MSN' ? '_LINK_' : 'INPUT'; $editorFieldType .= '-' . strtolower($valueType); } $template = isset(self::$TEMPLATES[$templateType]) ? self::$TEMPLATES[$templateType] : ''; if ($template === '') { $field['type'] = 'label'; $field['value'] = CCrmFieldMulti::GetTemplate($fieldTypeID, $valueType, $value); } else { $viewValue = $value; if ($fieldTypeID === 'PHONE') { $viewValue = CCrmCallToUrl::Format($value); } elseif ($fieldTypeID === 'EMAIL') { $viewValue = "mailto:{$value}"; } elseif ($fieldTypeID === 'WEB') { if ($valueType === 'OTHER' || $valueType === 'WORK' || $valueType === 'HOME') { $hasProto = preg_match('/^http(?:s)?:\\/\\/(.+)/', $value, $urlMatches) > 0; if ($hasProto) { $value = $urlMatches[1]; } else { $viewValue = "http://{$value}"; } } elseif ($valueType === 'FACEBOOK') { $viewValue = "http://www.facebook.com/{$value}/"; } elseif ($valueType === 'TWITTER') { $viewValue = "http://twitter.com/{$value}/"; } elseif ($valueType === 'LIVEJOURNAL') { $viewValue = "http://{$value}.livejournal.com/"; } } elseif ($fieldTypeID === 'IM') { if ($valueType === 'SKYPE') { $viewValue = "skype:{$value}?chat"; } elseif ($valueType === 'ICQ') { $viewValue = "http://www.icq.com/people/{$value}/"; } elseif ($valueType === 'MSN') { $viewValue = "msn:{$value}"; } } $field['type'] = 'custom'; $field['value'] = str_replace(array('#NAME#', '#FIELD_TYPE#', '#VALUE#', '#VIEW_VALUE#'), array($fieldID, htmlspecialcharsbx($editorFieldType), htmlspecialcharsbx($value), htmlspecialcharsbx($viewValue)), $template); } } $formFields[] = !empty($fieldParams) ? array_merge($field, $fieldParams) : $field; } unset($data); return true; }
?> <?php $phone = isset($arPhone['NUMBER']) ? trim($arPhone['NUMBER']) : ''; if (strlen($phone) === 0) { continue; } ?> <span class="crm-phone-text"><?php echo ($phoneCount > 0 ? ', ' : '') . htmlspecialcharsbx(isset($arPhone['TITLE']) ? $arPhone['TITLE'] : ''); ?> </span> <a class="crm-phone-number-link" onclick="addToDescription('<?php echo htmlspecialcharsbx(str_replace(array('#NAME#', '#PHONE#'), array($groupTitle, $phone), $descrTemplate)); ?> ');" href="<?php echo CCrmCallToUrl::Format(urlencode($arPhone['NUMBER'])); ?> "><?php echo htmlspecialcharsbx($arPhone['NUMBER']); ?> </a> <?php $phoneCount++; ?> <?php } ?> </span> </div> <?php }
public static function PrepareMultiFieldHtml($typeName, $arParams, $arOptions = array()) { $value = isset($arParams['VALUE']) ? $arParams['VALUE'] : ''; $valueUrl = $value; if ($typeName === 'PHONE') { if ($value === '') { return isset($arOptions['STUB']) ? $arOptions['STUB'] : ''; } $additionalHtml = ''; $enableSip = is_array($arOptions) && isset($arOptions['ENABLE_SIP']) && (bool) $arOptions['ENABLE_SIP']; if ($enableSip) { $sipParams = isset($arOptions['SIP_PARAMS']) ? $arOptions['SIP_PARAMS'] : null; $additionalHtml = self::PrepareSipCallHtml($value, $sipParams); } $linkAttrs = CCrmCallToUrl::PrepareLinkAttributes($value); $className = isset($arParams['CLASS_NAME']) ? $arParams['CLASS_NAME'] : 'crm-item-tel-num'; return '<a' . ($className !== '' ? ' class="' . htmlspecialcharsbx($className) . '"' : '') . ' title="' . htmlspecialcharsbx($value) . '"' . ' href="' . htmlspecialcharsbx($linkAttrs['HREF']) . '"' . ' onclick="' . htmlspecialcharsbx($linkAttrs['ONCLICK']) . '">' . htmlspecialcharsbx($value) . '</a>' . $additionalHtml; } elseif ($typeName === 'EMAIL') { if ($value === '') { return isset($arOptions['STUB']) ? $arOptions['STUB'] : ''; } $crmEmail = strtolower(trim(COption::GetOptionString('crm', 'mail', ''))); if ($crmEmail !== '') { $valueUrl = $valueUrl . '?cc=' . urlencode($crmEmail); } $className = isset($arParams['CLASS_NAME']) ? $arParams['CLASS_NAME'] : 'crm-item-tel-num'; return '<a' . ($className !== '' ? ' class="' . htmlspecialcharsbx($className) . '"' : '') . ' title="' . htmlspecialcharsbx($value) . '"' . ' href="mailto:' . htmlspecialcharsbx($valueUrl) . '">' . htmlspecialcharsbx($value) . '</a>'; } elseif ($typeName === 'WEB') { if ($value === '') { return isset($arOptions['STUB']) ? $arOptions['STUB'] : ''; } $valueUrl = preg_replace('/^\\s*http(s)?:\\/\\//i', '', $value); } $valueTypeID = isset($arParams['VALUE_TYPE_ID']) ? $arParams['VALUE_TYPE_ID'] : ''; $valueType = isset($arParams['VALUE_TYPE']) ? $arParams['VALUE_TYPE'] : null; if (!$valueType && $valueTypeID !== '') { $arEntityTypes = CCrmFieldMulti::GetEntityTypes(); $arValueTypes = isset($arEntityTypes[$typeName]) ? $arEntityTypes[$typeName] : array(); $valueType = isset($arValueTypes[$valueTypeID]) ? $arValueTypes[$valueTypeID] : null; } if (!($valueType && !empty($valueType['TEMPLATE']))) { if ($value === '') { return isset($arOptions['STUB']) ? $arOptions['STUB'] : ''; } return htmlspecialcharsbx($value); } if ($value === '') { return isset($arOptions['STUB']) ? $arOptions['STUB'] : ''; } return str_replace(array('#VALUE#', '#VALUE_URL#', '#VALUE_HTML#'), array($value, htmlspecialcharsbx($valueUrl), htmlspecialcharsbx($value)), $valueType['TEMPLATE']); }