• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/util/error/collection.php
  • Класс: BitrixTasksUtilErroris
  • Вызов: is::addForeignErrors
public function addForeignErrors($other, array $parameters = array('CHANGE_TYPE_TO' => false))
{
	if($other !== null)
	{
		$parameters['CHANGE_TYPE_TO'] = (string) $parameters['CHANGE_TYPE_TO'];

		if($other instanceof Collection)
		{
			/** @var Error $error */
			foreach($other->toArray() as $error)
			{
				if($parameters['CHANGE_TYPE_TO'] != '')
				{
					$error->setType($parameters['CHANGE_TYPE_TO']);
				}

				$this->add($error);
			}
		}
		elseif(is_array($other))
		{
			foreach($other as $error)
			{
				if(!is_array($error))
				{
					$error = $error->toArray();
				}

				// old tasks crud errors
				if(array_key_exists('id', $error) && array_key_exists('text', $error))
				{
					$errorType = $parameters['CHANGE_TYPE_TO'] != '' ? $parameters['CHANGE_TYPE_TO'] : Error::TYPE_FATAL;

					$newError = array(
						'CODE' => (string) $error['id'],
						'MESSAGE' => (string) $error['text'],
						'TYPE' => $errorType
					);
				}
				else
				{
					if((string) $error['CODE'] == '')
					{
						continue;
					}

					$errorType = (string) $error['TYPE'];
					if((string) $error['TYPE'] == '')
					{
						$errorType = Error::TYPE_FATAL;
					}
					if($parameters['CHANGE_TYPE_TO'] != '')
					{
						$errorType = $parameters['CHANGE_TYPE_TO'];
					}

					$newError = array(
						'CODE' => (string) $error['CODE'],
						'MESSAGE' => (string) $error['MESSAGE'],
						'TYPE' => $errorType
					);
				}

				$this->add($newError['CODE'], $newError['MESSAGE'], $newError['TYPE']);
			}
		}
	}
}