Esempio n. 1
0
 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']);
 }