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

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);
}


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Нина Рудзинская
И не забудем про CPosting::AutoSend()
Полностью схема генерации выпуска из скрипта выглядит так:

Код
    $cPosting = new CPosting;
    $ID = $cPosting->Add($arFields);
    if($ID)
    {
    $cPosting->ChangeStatus($ID, "P");
    $cPosting->AutoSend($ID);
    }
0
Екатерина Обросова
Выпуски хранятся в таблице b_posting
0
Екатерина Обросова
При указании статуса в поле STATUS следует учитывать, что при переводе из одного статуса в другой могут выполняться определенные действия. Так, например, при переводе из статуса "Черновик" ("D") в статус "В процессе" ("P") формируется список адресов по которым будет происходить отправка. А именно емейлы на которые требуется отправить выпуск попадают в таблицу b_posting_email со статусом "Y". Если при добавлении выпуска сразу указать статус "В процессе" ("Р") то процесс добавления емейлов с таблицу b_posting_email не произойдет и выпуск никому не отправится. При этом статус выпуска сменится на "S" (отправлен успешно).
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх