• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/chat.php
  • Класс: BitrixImOpenLinesChat
  • Вызов: Chat::getFieldData
public function getFieldData($field)
{
	$data = [];

	if (
		$this->isDataLoaded()
		&& in_array($field, [self::FIELD_CRM, self::FIELD_SESSION, self::FIELD_LIVECHAT])
	)
	{
		if ($field == self::FIELD_SESSION)
		{
			$data = [
				'ID' => time(),
				'CRM' => 'N',
				'CRM_ENTITY_TYPE' => 'NONE',
				'CRM_ENTITY_ID' => '0',
				'PAUSE' => 'N',
				'WAIT_ACTION' => 'N',
				'DATE_CREATE' => '0',
				'LINE_ID' => 0,
				'BLOCK_DATE' => 0,
				'BLOCK_REASON' => 0
			];

			$fieldData = explode("|", $this->chat[self::getFieldName($field)]);
			if (isset($fieldData[0]) && $fieldData[0] == 'Y')
			{
				$data['CRM'] = $fieldData[0];
			}
			if (isset($fieldData[1]))
			{
				$data['CRM_ENTITY_TYPE'] = $fieldData[1];
			}
			if (isset($fieldData[2]))
			{
				$data['CRM_ENTITY_ID'] = $fieldData[2];
			}
			if (isset($fieldData[3]) && $fieldData[3] == 'Y')
			{
				$data['PAUSE'] = $fieldData[3];
			}
			if (isset($fieldData[4]) && $fieldData[4] == 'Y')
			{
				$data['WAIT_ACTION'] = $fieldData[4];
			}
			if (isset($fieldData[5]))
			{
				$data['ID'] = intval($fieldData[5]);
			}
			if (isset($fieldData[6]))
			{
				$data['DATE_CREATE'] = intval($fieldData[6]);
			}
			if (isset($fieldData[7]) && $fieldData[7] > 0)
			{
				$data['LINE_ID'] = intval($fieldData[7]);
			}
			if (isset($fieldData[8]))
			{
				$data['BLOCK_DATE'] = (int)$fieldData[8];
			}
			if (isset($fieldData[9]))
			{
				$data['BLOCK_REASON'] = $fieldData[9];
			}
		}
		else if ($field == self::FIELD_CRM)
		{
			$data = [
				'LEAD' => 0,
				'COMPANY' => 0,
				'CONTACT' => 0,
				'DEAL' => 0,
			];

			$fieldData = explode("|", $this->chat[self::getFieldName($field)]);

			$countFields = count($fieldData);
			for($i = 0; $countFields>$i; $i=$i+2)
			{
				if(isset($data[$fieldData[$i]]) && isset($fieldData[$i+1]))
				{
					$data[$fieldData[$i]] = $fieldData[$i+1];
				}
			}
		}
		else if ($field == self::FIELD_LIVECHAT)
		{
			$data = [
				'READED' => 'N',
				'READED_ID' => '0',
				'READED_TIME' => 0,
				'SESSION_ID' => '0',
				'SHOW_FORM' => 'Y',
				'WELCOME_FORM_NEEDED' => 'Y',
				'WELCOME_TEXT_SENT' => 'N'
			];
			$fieldData = explode("|", $this->chat[self::getFieldName($field)]);
			if (isset($fieldData[0]) && $fieldData[0] == 'Y')
			{
				$data['READED'] = $fieldData[0];
			}
			if (isset($fieldData[1]))
			{
				$data['READED_ID'] = intval($fieldData[1]);
			}
			if (isset($fieldData[2]))
			{
				$data['READED_TIME'] = $fieldData[2];
			}
			if (isset($fieldData[3]))
			{
				$data['SESSION_ID'] = intval($fieldData[3]);
			}
			if (isset($fieldData[4]))
			{
				$data['SHOW_FORM'] = $fieldData[4] == 'N'? 'N': 'Y';
			}
			if (isset($fieldData[5]))
			{
				$data['WELCOME_FORM_NEEDED'] = $fieldData[5] === 'N'? 'N': 'Y';
			}
			if (isset($fieldData[6]))
			{
				$data['WELCOME_TEXT_SENT'] = $fieldData[7] === 'N'? 'N': 'Y';
			}
		}
	}

	return $data;
}