Логотип

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

<?=$this->render(array('message_post' => $this->macros('forum', 'message_post', array($page->getId()))), 'forum/message_post')?>

В XSLT-шаблонизаторе форму необходимо самостоятельно задать в шаблоне, так же как и описать два различных случая для гостя, и для авторизованного пользователя.

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

udata://forum/message_post/(talks/obwij/kto_ya_i_zachem/)

XML-ответ UData

<udata module="forum" method="message_post" generation-time="0.004335">
  <id>4</id>
  <name>Кто я и зачем?</name>
  <action>/forum/message_post_do/4/</action>
</udata>

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

<id>

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

<name>

Название темы.

<action>

Значение action для формы добавления сообщения.

Форма выводится по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — default.tpl.

Макрос выводит две различные формы для авторизованного пользователя и для гостя. Для гостя обязательно заполнение CAPTCHA (защита от автоматических запросов), поэтому в блоке шаблона add_message_guest должен быть прописан макрос %system captcha()% .

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

Макрос оперирует шаблонами, находящимися в каталоге /tpls/forum/.

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

add_message_user

Блок вывода формы для авторизованного пользователя.

%id%

Id темы конференции.

%name%

Имя темы конференции

%action%

Url адрес метода добавления сообщения (используется в атрибуте action формы).

add_message_guest

Блок вывода формы для гостя.

%id%

Id темы конференции.

%name%

Имя темы конференции.

%action%

Url адрес метода добавления сообщения (используется в атрибуте action формы).

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

Вывод формы добавления сообщения: %forum topic_post('/sample_forum/sample_topic')%.

Вывод формы добавления сообщения по пользовательскому шаблону: %forum topic_post('/sample_forum/sample_topic', 'sample')%.

<?php

$FORMS['add_message_user'] = <<<ADD_MESSAGE_USER

  <form method="post" action="%action%" onsubmit="javascript: return true; forum_check_form(this);">

   <div class="forum_add" style="width: 100%;">
    <br />
    <div>
      <a name="add"></a>
      <span style="color: #000;">Заголовок сообщения:</span>
      <input type="text" name="title" style="width:90%;" class="textinputs" value="Re: %name%" />
      <br /><br />
      <span style="color: #000;">Ваши комментарии:</span>
      <textarea name="body" id="message" style="width: 90%;height:150px;" class="textinputs"></textarea>
      <p><input type="submit" value="Отправить" /></p>
    </div>
    <br />
   </div>

   <input type="hidden" name="login" disabled="disabled" />

  </form>

ADD_MESSAGE_USER;

$FORMS['add_message_guest'] = <<<ADD_MESSAGE_GUEST

  <form method="post" action="%action%" onsubmit="javascript: return true; forum_check_form(this);">

  <div class="forum_add" style="width: 100%;">
   <br />
   <div>

    <a name="add"></a>
    <span style="color: #000;">Ваше имя:</span>
    <input type="text" name="nickname" style="width: 90%; " class="textinputs" /><br /><br />

    <span style="color: #000;">Ваш e-mail:</span>
    <input type="text" name="email" style="width: 90%; " class="textinputs" /><br /><br />

    <span style="color: #000;">Название темы:</span>
    <input type="text" name="title" style="width: 90%;" class="textinputs" /><br /><br />

    %system captcha()%

    <span style="color: #000;">Ваши комментарии:</span>
    <textarea name="body" id="forum_body" style="width:90%; height:240px;" class="textinputs"></textarea>
    <p><input type="submit" value="Отправить" /></p>

   </div>
   <br />
  </div>

</form>

ADD_MESSAGE_GUEST;

?>

Название

%forum message_post()% — Выводит форму для добавления сообщения

Параметры: forum message_post(element_id [, template = 'default'])

element_id

id топика конференции, или путь к нему от корня сайта. По умолчанию — текущая страница.

template

Имя шаблона, по которому выводится форма.В XSLT-шаблонизаторе игнорируется.

Описание

Макрос отвечает за форму для добавления сообщения в топик конференции, указанный в параметре element_id.

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