Существуют два способа подписки на рассылку:
В первом случае подписаться можно только на одну рассылку, принадлежащую компоненту в разделе, в указанном примере — это компонент в разделе news из раздела news. Ссылка доступна в компоненте (в префиксе, в объекте списка, в суффиксе, в полном отображении объекта) через переменную $subscribeLink, то есть, например, в префиксе компонента можно написать:
<a href="<?= $subscribeLink;?>">подписаться</a>
Это код выведет ссылку для подписки на текущий компонент в разделе.
Формат ссылки в общем виде:
http://название_сайта/раздел1/.../разделN/subscribe_КлючевоеСловоКомпонентаВРазделе.html
При заходе по такой ссылке неавторизованный пользователь увидит форму подписки для неавторизованного пользователя, которая задается в настройках модуля.
Ссылку вида example.com/news/subscribe_news.html можно использовать и для отписки пользователя от рассылки. Для этого в условие подписки нужно проверять, подписан ли пользователь на рассылку, и, если подписан, то отписать его. Пример такой реализации:
// получаем объект для работы с рассылками $nc_subscriber = nc_subscriber::get_object(); // проверяем, подписан ли пользователь на компонент в разделе if ( $nc_subscriber->is_subscribe_to_cc($cc) ) { // получаем номер рассылки по данному компоненту в разделе $mailer_id = $nc_subscriber->get_mailer_by_cc($cc, 'Mailer_ID'); // отписываем пользователя $nc_subscriber->subscription_delete_by_mailer($mailer_id); // подписка производиться не будет $posting = 0; // текст, выдаваемый пользователю $warnText = "Вы успешно отписались"; }
Подробнее о функция модуля будет рассказано в специальном разделе.
Во втором случае формат данных, пришедших через GET или POST, должен быть таким:
subscribe_НомерРассылки=1 — для подписки на рассылку; subscribe_НомерРассылки=-1 — для отписки от рассылки.
Пример использования:
Ссылка для подписки на рассылки с номерами 2 и 5, а также для отписки от рассылки с номером 3:
http://example.com/netcat/modules/subscriber/index.php?subscribe_2=1&subscribe_5=1&subscribe_3=-1
В форме этот параметр можно указать так:
<input type="hidden" name="subscribe_2" value="1>
При наличии модуля «Личный кабинет» можно разрешить незарегистрированному пользователю подписываться на рассылки. Хоть пользователь и не регистрируется на сайте, он все равно создаётся (добавляется запись в таблице User). Назовем таких пользователей псевдопользователи.
Для начала необходимо настроить модуль «Личный кабинет», настроив параметры для псевдопользователя:
Псевдопользователь сможет авторизоваться только в одном разделе (разделе с управлениями подписками), на других разделах он будет как неавторизированный, причем для авторизации он должен пройти по ссылке, содержащую специальный код в параметре auth_hash. Такая ссылка генерируется автоматически и доступна через макропеременную
%SUB_LINK%
Допустим, мы хотим разрешить всем пользователям подписываться на новости компании. Для этого создаем рассылку «Новости» с типом доступа «всем».
В настройках модуля необходимо задать форму подписки для неавторизированных пользователей. Она может выглядеть так:
Подписка на новости <br/> <form method='post' action='/netcat/subscribe.php'> <input type='hidden' name='catalogue' value='".$catalogue."' /> <input type='hidden' name='sub' value='".$sub."' /> <input type='hidden' name='cc' value='".$cc."' /> <input type='hidden' name='posting' value='1' /> Ваш email: <input type='text' name='fields[Email]' value='".$fields[Email]."' /> <input type='submit' value='Ok' /> </form>
Основные моменты:
Если пользователь не ошибся при вводе адреса, то далее сработает «Действие после подписки», которое может содержать текст об успешной подписке. Пример заполнения действия после подписки:
<?=( $nc_status == 'on' ? "Вы успешно подписались." : "На ваш e-mail отправлено письмо с ссылкой для подтверждения подписки");?> <br/><br/> <a href='<?= $current_sub['Hidden_URL']; ?>'>Вернуться к новостям</a>
Пользователю отправится письмо, в котором будет ссылка на подтверждение подписки. Шаблон письма задается в настройках модуля. Пример шаблона письма:
Уважаемый ...! Чтобы подтвердить подписку, перейдите по <a href='%LINK%'>ссылке.</a> <a href='%SUB_LINK%'>Страница управления подписками</a>
В настройках модуля так же можно задать максимальное время ожидания подтверждения подписки.
При переходе по ссылке для подтверждения пользователь увидит текст, заданный в настройках модуля («Текст, выводимый при подтверждении подписки»).
После этого незарегистрированный пользователь сможет получать обновления о сайте и управлять своими подписками в специальном разделе.
Как было сказано выше, псевдопользователь авторизуется по хэшу в разделе управления собственными подписками, то есть пемеременные $AUTH_USER_ID и $current_user доступны.
Элемент массива $current_user['UserType'] для псевдопользоватлей равен 'pseudo', для обычных зарегистрированных пользоватлей — 'normal'.
Комментарии 1
[CODE]<input type="hidden" name="subscribe_2" value="1>
[/CODE]