Логотип

Документация по макросам и шаблонам UMI.CMS

dispatches subscribe()

Название

%dispatches subscribe()% — Выводит форму подписки на рассылки.

Параметры: dispatches subscribe([template = 'default'])

template

Имя шаблона, в котором определены формы для подписки.

Описание

Макрос выводит форму подписки на рассылки по шаблону, указанному в параметре template. Если шаблон не указан, то используется шаблон/tpls/dispatches/default.tpl.

Дополнительные сведения

<?=$this->render($this->macros('dispatches', 'subscribe'), 'dispatches/subscribeRight') ?>

В XSLT-шаблонизаторе метод выводит лишь список существующий рассылок. Форма для подписки должна быть самостоятельно прописана в шаблонах.

Пример вызова

udata://dispatches/subscribe/

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"/>

Элементы и атрибуты

<subscriber_dispatches>

Ветвь, содержащая элементы items — рассылки, существующие на сайте.

<items>

Элемент, описывающий рассылку. Содержимое элемента — название рассылки.

@id

Идентификатор рассылки.

@is-checked

Атрибут, указывающий на какие рассылки уже подписан авторизованный пользователь.

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /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 адреса для отписки от рассылки.

subscribe_guest_alredy_subscribed

Тело письма, которое отправляется неавторизованному пользователю, если он уже был подписан на рассылки.

%unsubscribe_link%

Url адрес для отписки от рассылки.

subscribe_confirm_subject

Тема письма, которое отправляется неавторизованному пользователю, при попытке подписаться на рассылки.

Примеры использования

Откройте файл 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>