Update
Описание и параметры
mixed CSubscription::Update( int ID, array arFields, string SITE_ID = SITE_ID );
Метод изменяет данные подписки. Если изменяется адрес подписки, то метод снимает подтверждение с подписки и генерирует событие для отправки письма с кодом подтверждения подписки (если это явно не запрещено). Если подписка не подтверждена, а массив полей включает в себя правильный CONFIRM_CODE, то подписка подтверждается. Метод нестатический.
Параметры
| Параметр | Описание | C версии |
|---|---|---|
| ID | Идентификатор подписки. | |
| arFields | Массив со значениями полей объекта "Подписка".
Дополнительно могут быть указаны поля: RUB_ID - массив идентификаторов рассылок, на которые подписывается адрес; SEND_CONFIRM - отправлять ли письмо с кодом подтверждения подписчику при изменениии адреса (Y/N). |
|
| SITE_ID | Идентификатор сайта, по которому определяется шаблон письма о подтверждении подписки. По умолчанию параметр принимает значение текущего сайта. Обязателен при использовании RUB_ID. Если ALL_SITES указан в массиве $arFields, то SITE_ID можно не указывать | 4.0.0 |
Возвращаемые значения
В случае успешного изменения возвращается true. В противном случает возвращается false,
и переменная класса LAST_ERROR содержит сообщение об ошибке (так же возбуждается исключение CMain::ThrowException).
При успешном результате переменная класса LAST_MESSAGE содержит строку-код информационного сообщения.
Возможные значения:
"CONF" - подписка подтверждена;
"SENT" - сгенерировано событие для отправки письма с кодом подтверждения.
Примеры использования
$subscr = new CSubscription;
//confirmation code from letter or confirmation form
if($CONFIRM_CODE <> "" && $ID > 0 && empty($action))
{
if($str_CONFIRMED <> "Y")
{
//subscribtion confirmation
if($subscr->Update($ID, array("CONFIRM_CODE"=>$CONFIRM_CODE)))
$str_CONFIRMED = "Y";
$strWarning .= $subscr->LAST_ERROR;
$iMsg = $subscr->LAST_MESSAGE;
}
}
//*************************
//form actions processing
//*************************
if($ID > 0)
{
if($action == "unsubscribe" && CSubscription::IsAuthorized($ID))
{
//unsubscription
if($subscr->Update($ID, array("ACTIVE"=>"N")))
{
$str_ACTIVE = "N";
$iMsg = "UNSUBSCR";
}
}
if($action == "activate" && CSubscription::IsAuthorized($ID))
{
//activation
if($subscr->Update($ID, array("ACTIVE"=>"Y")))
{
$str_ACTIVE = "Y";
$iMsg = "ACTIVE";
}
}
}