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