Логотип

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

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

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

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

udata://forum/topic_post/(talks/obwij)

XML-ответ UData

<udata module="forum" method="topic_post" generation-time="0.006340">
  <id>3</id>
  <name>Общий</name>
  <action>/forum/topic_post_do/3/</action>
</udata>

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

<id>

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

<name>

Название конференции.

<action>

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

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

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

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

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

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

add_topic_user

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

%id%

Id конференции.

%name%

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

%action%

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

add_topic_guest

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

%id%

Id конференции.

%name%

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

%action%

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

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

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

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

<?php

$FORMS = Array();

$FORMS['add_topic_user'] = <<<ADD_TOPIC_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" /><br /><br />
      <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>

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

</form>

ADD_TOPIC_USER;

$FORMS['add_topic_guest'] = <<<ADD_TOPIC_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="login" style="width: 90%;" /><br /><br />
     <span style="color: #000;">Ваше email:</span>
     <input type="text" name="email" style="width: 90%;" value="%email_def%" /><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_TOPIC_GUEST;

?>

Название

%forum topic_post()% — Выводит форму для создания топика конференции.

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

element_id

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

template

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

Описание

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

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