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