• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/field.php
  • Класс: BitrixListsField
  • Вызов: Field::prepareEditFieldByUserTypeHTML
static function prepareEditFieldByUserTypeHTML(array $field)
{
	$result = [
		'id' => $field['FIELD_ID'] . '[]',
		'name' => $field['NAME'],
		'required' => $field['IS_REQUIRED'] == 'Y' ? true : false,
		'type' => 'custom',
		'show' => $field['SHOW'],
		'customHtml' => '',
	];
	$html = '';
	if (!isset($field['VALUE']) || !is_array($field['VALUE']))
	{
		$field['VALUE'] = [$field['VALUE'] ?? null];
	}

	$isEmptyValue = true;
	foreach($field['VALUE'] as $value)
	{
		if(!empty($value['VALUE']))
			$isEmptyValue = false;
	}
	if($isEmptyValue && $field['READ'] == 'Y')
	{
		$result['value'] = Loc::getMessage('LISTS_FIELD_NOT_DATA');
		return $result;
	}

	if($field['MULTIPLE'] == 'Y')
	{
		$params = array('width' => '100%','height' => '200px');
		$html .= '';
		foreach($field['VALUE'] as $key => $value)
		{
			if($field['READ'] == 'Y')
			{
				$html .= call_user_func_array($field['PROPERTY_USER_TYPE']['GetPublicViewHTML'],
					array(
						$field,
						$value,
						array(
							'VALUE' => $field['FIELD_ID']."[".$key."][VALUE]",
							'DESCRIPTION' => '',
							'FORM_NAME' => 'form_'.$field['FORM_ID'],
							'MODE' => 'FORM_FILL',
							'COPY' => $field['COPY_ID'] > 0,
						),
					));
				if(is_array($value['VALUE']))
				{
					$value['VALUE']['TEXT'] ? $htmlContent = $value['VALUE']['TEXT'] : $htmlContent = '';
				}
				else
				{
					$value['VALUE'] ? $htmlContent = $value['VALUE'] : $htmlContent = '';
				}
				$result['customHtml'] .= '';
				$result['customHtml'] .= '';
			}
			else
			{
				if(is_array($value['VALUE']))
					$htmlContent = $value['VALUE']['TEXT'] ? $value['VALUE']['TEXT'] : '';
				else
					$htmlContent = $value['VALUE'] ? $value['VALUE'] : '';
				$fieldIdForHtml = 'id_'.$field['FIELD_ID'].'__'.$key.'_';
				$fieldNameForHtml = $field['FIELD_ID']."[".$key."][VALUE][TEXT]";
				$html .= '';
			}
		}
		$html .= '
'.self::renderHtmlEditor( $fieldIdForHtml, $fieldNameForHtml, $params, $htmlContent).'
'; if($field['READ'] == 'N') { $html .= ''; } } else { foreach($field['VALUE'] as $key => $value) { if($field['READ'] == 'Y') { $html .= call_user_func_array($field['PROPERTY_USER_TYPE']['GetPublicViewHTML'], array( $field, $value, array( 'VALUE' => $field['FIELD_ID']."[".$key."][VALUE]", 'DESCRIPTION' => '', 'FORM_NAME' => 'form_' . ($field['FORM_ID'] ?? ''), 'MODE' => 'FORM_FILL', 'COPY' => isset($field['COPY_ID']) && $field['COPY_ID'] > 0, ), )); if(is_array($value['VALUE'])) $value['VALUE']['TEXT'] ? $htmlContent = $value['VALUE']['TEXT'] : $htmlContent = ''; else $value['VALUE'] ? $htmlContent = $value['VALUE'] : $htmlContent = ''; $result['customHtml'] .= ''; $result['customHtml'] .= ''; } else { $html .= call_user_func_array($field['PROPERTY_USER_TYPE']['GetPublicEditHTML'], array( $field, $value, array( 'VALUE' => $field['FIELD_ID']."[".$key."][VALUE]", 'DESCRIPTION' => '', 'FORM_NAME' => 'form_' . ($field['FORM_ID'] ?? ''), 'MODE' => 'FORM_FILL', 'COPY' => $field['COPY_ID'] > 0, ), )); } } } $result['value'] = $html; return $result; }