8namespace Bitrix\Sender\Entity;
10use Bitrix\Main\Localization\Loc;
12use Bitrix\Main\DB\SqlQueryException;
14use Bitrix\Sender\ContactTable;
15use Bitrix\Sender\ContactListTable;
16use Bitrix\Sender\MailingSubscriptionTable;
17use Bitrix\Sender\Recipient;
19Loc::loadMessages(__FILE__);
35 if (!isset($parameters[
'select']))
37 $parameters[
'select'] =
array(
41 if (!isset($parameters[
'filter']))
43 $parameters[
'filter'] =
array();
77 $setList = array_filter(
$data[
'SET_LIST'],
'is_numeric');
78 $subList = array_filter(
$data[
'SUB_LIST'],
'is_numeric');
79 $unsubList = array_filter(
$data[
'UNSUB_LIST'],
'is_numeric');
89 if (mb_strpos($exception->getMessage(),
'(1062) Duplicate entry') !==
false)
91 $this->errors->setError(
new Error(Loc::getMessage(
'SENDER_ENTITY_CONTACT_ERROR_DUPLICATE')));
110 $setList = array_unique($setList);
111 $unsubList = array_unique($unsubList);
112 $subList = array_unique($subList);
113 $subList = array_diff($subList, $unsubList);
116 foreach ($setList as $itemId)
122 foreach ($subList as $itemId)
126 foreach ($unsubList as $itemId)
144 'select' => [
'LIST_ID'],
145 'filter' => [
'CONTACT_ID' => $id]
147 $data[
'SET_LIST'] = array_column($list,
'LIST_ID');
150 'select' => [
'MAILING_ID'],
151 'filter' => [
'CONTACT_ID' => $id,
'IS_UNSUB' =>
'N']
153 $data[
'SUB_LIST'] = array_column($list,
'MAILING_ID');
156 'select' => [
'MAILING_ID'],
157 'filter' => [
'CONTACT_ID' => $id,
'IS_UNSUB' =>
'Y']
159 $data[
'UNSUB_LIST'] = array_column($list,
'MAILING_ID');
170 public function remove()
212 'MAILING_ID' => $campaignId,
213 'CONTACT_ID' => $this->
getId(),
232 'MAILING_ID' => $campaignId,
233 'CONTACT_ID' => $this->
getId(),
297 'CONTACT_ID' => $this->
getId(),
static getRowById($id, array $parameters=[])
static getList(array $parameters=array())
static update($primary, array $data)
static getDefaultId($siteId=null)
static addUnSubscription(array $parameters=array())
static deleteList(array $filter)
static addSubscription(array $parameters=array())
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)