UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: izen29 от 13 Февраля 2013, 21:24:43

Название: пользовательская форма вопроса для модуля faq
Отправлено: izen29 от 13 Февраля 2013, 21:24:43
В продолжение эпопеи с задачей вопросов специалистам - решил попробовать для этих целей модуль faq. С выводом вопросов-ответов проблем не возникло, зато с ходу попал на нежелание работать формы собствено задачи вопроса. Покурил пример http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/faq/faq_addquestionform/, взял за основу форму для tpl шаблона

<form method="post" action="/faq/post_question/123/">
<div>
<label for="title">Тема<span>*</span>:</label>
<input style="width: 100%;" type="text" name="title" id="title" />
</div>
<div>
<label for="question">Вопрос<span>*</span>:</label>
<textarea style="width: 50%;" name="question" id="question" ></textarea>
</div>
<xsl:apply-templates select="document('udata://system/captcha')/udata[url]" />
<input type="submit" value="Отправить" />
</form>

и столкнулся с выводом в адресной строке ошибки...
Может кто то сможет навести на правильную реализацию?
Название: Re:пользовательская форма вопроса для модуля faq
Отправлено: Rodogor от 13 Февраля 2013, 21:44:30
Верстать форму самому необходимости нет. как правило нет...... Но мне помнится, что всё же приходилось.  Самое сложное найти куда надо отправлять форму, action формы.

Заходим в xsltTpls\modules\faq.
Интересующий нас макрос - addQuestionForm. Находим либо файл с таким именем, либо поиском по содержимому. Натыкаемся на файл addQuestionForm.xsl. Смотрим на его содержимое. Видно, что шаблон применяется без mode.
Рекомендую поискать что это такое и разобраться с тем чем отличается apply-templates от template match. Как минимум, нужно знать следующие вещи:
apply-templates - применить шаблон
templates - описание шаблона


value-of - значение
потом уже
if - условие
when - аналог switch case
variable - переменная
Потом уже по ходу дела всё станет понятно... Итак, идём дальше..


Мы нашли где описан шаблон нужного нам макроса. Что бы он сработал, его надо где-то вызвать. Находим, где он вызывается....
Проверяем....
Если в адресной строке выдаются ошибки - тогда необходимо вывести эти ошибки. Для этого используем модуль system макрос listErrorMessages. (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/virtualnyj_modul_system/system_listerrormessages/)

что бы вывести его - пишем <xsl:apply-templates select="document('udata://system/listErrorMessages')"/>
Писать нужно на той же странице, где вызывается макрос, выдающий ошибки,  т.к. при наличие ошибок не происходит редирект и ошибки вываливаются в этой же странице. Если ошибок не будет - ничего не будет выводиться
Название: Re:пользовательская форма вопроса для моду
Отправлено: izen29 от 14 Февраля 2013, 00:54:18
спасибо, это все понял, теперь постинг работает, но возник тут же следующий вопрос - после отправки сообщения происходит редирект на страницу /faq/post_question/?posted=номер тикета

отлов <xsl:template match="result[@module = 'faq'][@method = 'post_question']">
по аналогу с восстановлением аккаунта
<xsl:template match="udata[@module = 'users'][@method = 'restore'][@status = 'success']"> ник  чему не привел...
как можно поймать этот редирект? а еще лучше где про него почитать?

не, ступил спросонья - поймать получилось, но в какой переменной можно посмотреть ответ с номером тикета? хмл не показывает((
Название: Re:пользовательская форма вопроса для модуля faq
Отправлено: Rodogor от 14 Февраля 2013, 08:57:39
Не понял что нужно сделать. Попытка поймать success в модуле FAQ, т.е. сообщение о том, что тикет добавлен ?

Что означает "посмотреть ответ с номером тикета", что должно быть и что нужно глянуть ?

Лучшее место для "про него прочитать" - исходный код, но там очень специфический юмор и может быть не интересно, сюжет не особо, действующие персонажи тоже какие-то вялые.
Название: Re:пользовательская форма вопроса для модуля faq
Отправлено: izen29 от 16 Февраля 2013, 00:35:03
Да, что то в конце рабочего дня потерял способность формулировать мысли четко. По проблеме - разобрался и все сделал, просто нужно всетаки иногда спать несколько часов в сутки)
Название: Re:пользовательская форма вопроса для модуля faq
Отправлено: Rodogor от 16 Февраля 2013, 13:27:15
У меня где-то через 3-4 месяца упорной работы с umi функция чёткого формулирования мыслей и словей в предложение вырубилась напрочь.