Документация для разработчиков
Темная тема

Add

Описание и параметры

int
CPosting::Add(
	array arFields
);

Метод добавляет выпуск. Метод нестатический.

Параметры

ПараметрОписаниеС версии
arFields Массив со значениями полей объекта "Выпуск"
Дополнительно могут быть указаны поля:
RUB_ID - массив идентификаторов рассылок;
GROUP_ID - массив идентификаторов групп пользователей.

Требования к полям передаваемым в arFields

  • FROM_FIELD - должно содержать правильный адрес e-mail (см. функцию check_email).
  • TO_FIELD - в случае когда поле DIRECT_SEND равно Y не должно быть пустым.
  • SUBJECT - не должно быть пустым.
  • BODY - не должно быть пустым.
  • AUTO_SEND_TIME - если задано, то должно содержать или false или дату включающую время (см. метод CDatabase::IsDate)

Возвращаемые значения

В случае успешного добавления возвращается ID выпуска. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке (так же возбуждается исключение CMain::ThrowException).

При указании статуса в поле STATUS следует учитывать, что при переводе из одного статуса в другой могут выполняться определенные действия. Так, например, при переводе из статуса "Черновик" ("D") в статус "В процессе" ("P") формируется список адресов, по которым будет происходить отправка. А именно, адреса, на которые требуется отправить выпуск, попадают в таблицу b_posting_email со статусом "Y". Если при добавлении выпуска сразу указать статус "В процессе" ("Р"), то процесс добавления адресов в таблицу b_posting_email не произойдет, и выпуск никому не отправится. При этом статус выпуска сменится на "S" (отправлен успешно). Выпуски хранятся в таблице b_posting.

Примеры использования

$posting = new CPosting;
$arFields = Array(
	"FROM_FIELD" => $FROM_FIELD,
	"TO_FIELD" => $TO_FIELD,
	"BCC_FIELD" => $BCC_FIELD,
	"EMAIL_FILTER" => $EMAIL_FILTER,
	"SUBJECT" => $SUBJECT,
	"BODY_TYPE" => ($BODY_TYPE <> "html"? "text":"html"),
	"BODY" => $BODY,
	"DIRECT_SEND" => ($DIRECT_SEND <> "Y"? "N":"Y"),
	"CHARSET" => $CHARSET,
	"SUBSCR_FORMAT" => ($SUBSCR_FORMAT<>"html" && $SUBSCR_FORMAT<>"text"?
		false:$SUBSCR_FORMAT),
	"RUB_ID" => $RUB_ID,
	"GROUP_ID" => $GROUP_ID
);
if($STATUS <> "")
{
	if($STATUS<>"S" && $STATUS<>"E" && $STATUS<>"P")
		$STATUS = "D";
	$arFields["STATUS"] = $STATUS;
	if($STATUS == "D")
	{
		$arFields["DATE_SENT"] = false;
		$arFields["SENT_BCC"] = "";
		$arFields["ERROR_EMAIL"] = "";
	}
}
$ID = $posting->Add($arFields);
if($ID == false)
	echo $posting->LAST_ERROR;
// Полностью схема генерации выпуска из скрипта выглядит так:
$cPosting = new CPosting;
$ID = $cPosting->Add($arFields);
if($ID)
{
	$cPosting->ChangeStatus($ID, "P");
	$cPosting->AutoSend($ID);
}


© «Битрикс», 2001-2024, «1С-Битрикс», 2024