• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/result.php
  • Класс: Bitrix\Crm\WebForm\Result
  • Вызов: Result::checkField
protected function checkField($field)
{
	if($field['hidden'] || 1)
	{
		return true;
	}

	$values = array();
	foreach($field['values'] as $value)
	{
		if(is_string($value))
		{
			$value = trim($value);
		}
		else
		{
			trimArr($value);
		}

		if(!$value && $value !== '0' && $value !== 0)
		{
			continue;
		}

		$values[] = $value;
	}


	if($field['required'] && count($values) == 0 && empty($this->params['DISABLE_FIELD_CHECKING']))
	{
		$this->errors[] = Loc::getMessage('CRM_WEBFORM_RESULT_ERROR_REQUIRED_FIELD_EMPTY', array('%field%' => $field['caption']));
		return false;
	}
	else if(count($values) == 0)
	{
		return true;
	}

	$result = true;
	switch($field['type'])
	{
		case 'checkbox':
		case 'radio':
		case 'list':
			$itemValues = array();
			foreach($field['items'] as $item)
			{
				$itemValues[] = $item['value'];
			}

			$result = array_intersect($values, $itemValues) > 0;
			break;

		case 'email':
			foreach($values as $value)
			{
				if(!$this->checkEmail($value))
				{
					$result = false;
					break;
				}
			}
			break;
		case 'phone':
			foreach($values as $value)
			{
				if(!$this->checkPhone($value))
				{
					$result = false;
					break;
				}
			}
			break;
		case 'int':
			foreach($values as $value)
			{
				if(!$this->checkInt($value))
				{
					$result = false;
					break;
				}
			}
			break;
	}


	if(!$result)
	{
		$this->errors[] = Loc::getMessage('CRM_WEBFORM_RESULT_ERROR_REQUIRED_FIELD_EMPTY', array('%field%' => $field['caption']));
	}

	return $result;
}