<?=$this->render($this->macros('forum', 'topic_post', array($page->getId())), 'forum/topic_post')?>
В XSLT-шаблонизаторе форму необходимо самостоятельно задать в шаблоне, так же как и описать два различных случая для гостя, и для авторизованного пользователя.
Форма выводится по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — default.tpl
.
Макрос выводит две различные формы для авторизованного пользователя и для гостя. Для гостя обязательно заполнение CAPTCHA (защита от автоматических запросов), поэтому в блоке шаблона add_topic_guest должен быть прописан макрос %system captcha()% .
Используемые блоки шаблона
Примеры использования
Вывод формы добавления темы конференции: %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-шаблонизаторе игнорируется.