- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/contact.php
- Класс: BitrixSenderContactTable
- Вызов: ContactTable::addIfNotExist
static function addIfNotExist(array $ar)
{
$id = false;
$listId = false;
if(array_key_exists('LIST_CODE', $ar) && array_key_exists('LIST_NAME', $ar))
{
$listId = ListTable::addIfNotExist($ar['LIST_CODE'], $ar['LIST_NAME']);
unset($ar['LIST_CODE'], $ar['LIST_NAME']);
}
$ar['EMAIL'] = mb_strtolower($ar['EMAIL']);
$contactDb = ContactTable::getList(array(
'select' => array('ID'),
'filter' => array(
'=CODE' => $ar['EMAIL'],
'=TYPE_ID' => RecipientType::EMAIL
)
));
if($contact = $contactDb->fetch())
{
$id = $contact['ID'];
}
else
{
$ar['TYPE_ID'] = RecipientType::EMAIL;
$ar['CODE'] = $ar['EMAIL'];
unset($ar['EMAIL']);
$resultAdd = static::add($ar);
if($resultAdd->isSuccess())
$id = $resultAdd->getId();
}
if($listId && $id)
{
ContactListTable::addIfNotExist($id, $listId);
}
return $id;
}