<?=$this->render($this->macros('dispatches', 'subscribe'), 'dispatches/subscribeRight') ?>
В XSLT-шаблонизаторе метод выводит лишь список существующий рассылок. Форма для подписки должна быть самостоятельно прописана в шаблонах.
XML-ответ UData
Ответ для авторизованного пользователя:
<udata module="dispatches" method="subscribe" generation-time="0.131528">
<subscriber_dispatches>
<items id="27252">Акции</items>
<items id="27257" is_checked="1">Политические новости</items>
</subscriber_dispatches>
</udata>
Ответ для неавторизованного пользователя:
<udata module="dispatches" method="subscribe" generation-time="0.005902"/>
Используемые шаблоны
Макрос оперирует шаблонами, находящимися в каталоге /tpls/dispatches/
.
Используемые блоки шаблона
subscribe_unregistred_user
Блок для подписки неавторизованных пользователей.
- %sbs_genders%
-
Выводит справочник «Пол подписчика». Используется только внутри select.
subscribe_registred_user
Блок для подписки авторизованных пользователей.
- %subscriber_dispatches%
-
Выводит блок subscriber_dispatches текущего шаблона.
subscriber_dispatches
Блок для вывода рассылок, на которые может подписаться авторизованный пользователь.
- %rows%
-
Указывает место, куда будет выведен список рассылок. Каждая рассылка выводится по блоку subscriber_dispatch_row, текущего шаблона.
subscriber_dispatch_row
Блок для вывода каждой рассылки.
- %disp_id%
-
id рассылки.
- %disp_name%
-
Название рассылки.
- %is_checked%
-
Выводит «1» или «0», в зависимости от того подписан ли пользователь на данную рассылку.
- %checked%
-
Выводит «checked», если пользователь подписан на данную рассылку. В противном случае выводит пустую строку. Используется для формирования checkbox'a.
subscribe_confirm
Тело письма, которое отправляется неавторизованному пользователю при успешной подписке.
- %unsubscribe_link%
-
Url адреса для отписки от рассылки.
Примеры использования
Откройте файл default.tpl
в директории /tpls/dispatches/
и измените его по своему усмотрению:
<?php
$FORMS = Array();
$FORMS['subscribe_unregistred_user'] = <<<END
<form method="post" name="sbs_frm" enctype="multipart/form-data"
action="%pre_lang%/dispatches/subscribe_do/">
<table border="0" width="95%" class="bg_subscription">
<tr><td><img src="/images/bg_subscription_top.gif" width="100%" height="12" alt=""></td></tr>
<tr><td class="pad_left h2" style="padding-left:10px; padding-bottom: 5px">Подписка на новости:</td></tr>
<tr>
<td class="h4">
<img src="/images/spacer.gif" width="10" height="1" alt="" border="0">
<input name="sbs_mail" type="text" size="18" value="Введите e-mail" class="form"
onfocus="if(this.value == 'Введите e-mail') { this.value = ''; }"
onblur="if(this.value == '') { this.value = 'Введите e-mail' } " />
<a href="javascript: document.forms['sbs_frm'].submit();" >
<img src="/images/submit_ok.gif" width="39" align="absmiddle" hspace="7" height="18" alt="" border="0">
</a>
</td>
</tr>
<tr><td><img src="/images/bg_subscription_bot.gif" width="100%" height="12" alt=""></td></tr>
</table>
</form>
END;
$FORMS['subscribe_registred_user'] = <<<END
<form method="post" name="sbs_frm" enctype="multipart/form-data"
action="%pre_lang%/dispatches/subscribe_do/">
<table border="0" width="95%" class="bg_subscription">
<tr><td><img src="/images/bg_subscription_top.gif" width="100%" height="12" alt=""></td></tr>
<tr><td class="pad_left h2" style="padding-left:10px;">
Вы подписаны на рассылки:<br />
%subscriber_dispatches%
</td></tr>
<tr><td>
<a href="javascript: document.forms['sbs_frm'].submit();" >
<img src="/images/submit_ok.gif" width="39" align="absmiddle" hspace="7" height="18" alt="" border="0">
</a>
</td></tr>
<tr><td><img src="/images/bg_subscription_bot.gif" width="100%" height="12" alt=""></td></tr>
</table>
</form>
END;
$FORMS['subscriber_dispatches'] = <<<END
<table border="0" cellpadding="0" cellspacing="2">
%rows%
</table>
END;
$FORMS['subscriber_dispatch_row'] = <<<END
<tr>
<td>
<input type="checkbox" %checked% name="subscriber_dispatches[]" value="%disp_id%" />%disp_name%
</td>
</tr>
END;
$FORMS['subscribe_confirm'] = <<<END
<p>Доброго времени суток!</p>
<p>Вы подписались на рассылку.</p>
<p>Если вы не хотите ее получать, перейдите по этой ссылке: <a href="%unsubscribe_link%">%unsubscribe_link%</a></p>
<p>UMI.CMS<br />
<a href="mailto:admin@example.com">admin@example.com</a></p>
END;
$FORMS['subscribe_confirm_subject'] = "Подписка на рассылку";
$FORMS['subscribe_guest_alredy_subscribed'] = <<<END
<p>Такой адрес уже есть в нашем списке.
<a href="%unsubscribe_link%">Хотите отписаться?</a>
</p>
END;
?>
Существует два варианта формы подписки — для авторизованных и для неавторизованных пользователей. Для настройки этих форм используйте блоки шаблона subscribe_registred_user и subscribe_unregistred_user. Авторизованный пользователь может выбирать рассылки, на которые он хочет подписаться. Неавторизованный пользователь подписывается на все текущие рассылки.
В форме для авторизованного пользователя должно быть обязательное поле ввода E-mail:
<input name="sbs_mail" type="text" />
Форму неавторизованного пользователя можно дополнить следующими полями ввода:
Фамилия:<br />
<input name="sbs_lname" type="text" />
Имя:<br />
<input name="sbs_fname" type="text" />
Отчество:<br />
<input name="sbs_father_name" type="text" />
Пол:<br />
<select name="sbs_gender">
<option></option>
%sbs_genders%
</select>
Название
%dispatches subscribe()% — Выводит форму подписки на рассылки.
Параметры: dispatches subscribe([template = 'default'])
- template
-
Имя шаблона, в котором определены формы для подписки.