UMIhelp

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

Название: форма создания новой темы для модуля форум
Отправлено: izen29 от 12 Февраля 2013, 18:13:04
Здравствуйте!

Реализую функционал модуля Форум и столкнулся с проблемой вывода формы создания новой темы. Единственное что нашел по данному предмету: http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/forum/forum_topic_post/
но так и не понял - как правильно заверстать форму, какие поля в ней должны быть, как реализовать оба сценария (и чем они отличаются). Кто нибудь реализовывал подобный функционал, просвятите плиз?
Название: Re:форма создания новой темы для модуля форум
Отправлено: Rodogor от 13 Февраля 2013, 21:09:13
Итак... Пока не поздно - лучше выбрать другую CMS. Если кажется, что сейчас немного забыли дописать документацию и дописать кодэ - то через пару месяцев будешь сидеть и допиливать движок. Это конечно прикольно, но до поры...

Качаешь localpack... Устанавливаешь... Заходишь на форум - там одна тема создана, формы отправки новой темы нет. Форум кстати зачётный, на офф сайте можешь потыкать и посмотри сколько сообщений реально в постах и сколько выводит система. Попробуй поиск и т.п... Вообщем то ещё ололо.

Скачал localpack.... Все xslt шаблоны хранятся в xsltTpls\modules\ИМЯ_МОДУЛЯ. Соответственно для форума - xsltTpls\modules\forum. Почти для всех модулей там реализован минимальный функционал, но это не всегда.
Изучаешь, какие макросы есть у модуля форум. Тебя интересует именно topic_post. Заходим, смотрим - есть там такой файл. Смотрим как реализовано.
Заходим в localhost/pioneer_club/ , дописываем .xml - /pioneer_club/.xml. Смотрим, какой модуль и макрос у нас используется - <result xmlns:xlink="http://www.w3.org/TR/xlink" module="forum" method="conf" domain="localhost" system-build="20317" lang="ru" header="Фан-клуб Pioneer" title="Фан-клуб Pioneer" site-name="umicms.demo site" request-uri="/pioneer_club/.xml" pageId="46">
Находим файл conf.xsl или ищем по ключевому слову "conf", "$method='conf'"
Заходим, смотрим - что за на... Код из разряда a=5; if (a==5) {...}
Цитировать
<xsl:template match="udata[@module = 'forum'][@method = 'conf']">
      <xsl:param name="test_add_topic" select="0" />
......
<xsl:if test="not($test_add_topic)">
         <xsl:apply-templates select="document(concat('udata://forum/topic_post/', $document-page-id))/udata" />
      </xsl:if>
   </xsl:template>
Удаляем нафиг xsl:if, оставляем что там внутри, заходим ещё раз на форум и чудо - всё работает...

Обычно я пишу более аккуратно и более понятно, сейчас просто времени нет, а в личке обещал подсказать
Название: Re:форма создания новой темы для модуля форум
Отправлено: izen29 от 13 Февраля 2013, 21:20:07
Спасибо! Сел курить))
Название: Re:форма создания новой темы для модуля форум
Отправлено: admin от 13 Февраля 2013, 21:55:06
Все по сути в сообщении Rodogor, добавлю только, что если вы устанавливали localpack недавно и ставили демо-сайт "интернет магазин современны", то файлы его шаблона лежат по адресу /templates/demodizzy/xslt.

Шаблон формы, которую вы вывели у себя, если проделали вышеописанное, лежит в файле  /templates/demodizzy/xslt/modules/forum/topic_post.xsl

Также, для пытливых, могу добавить что отправляется она по адресу /forum/topic_post_do/[elemeny_id]. Что однозначно подсказывает нам, что все, что ответственно за добавление темы, находиться в функции topic_post_do() в модуле forum.

чтобы наверняка, я заглянул в эту функции и увидел что она кушает поля с именами:
title - имя темы
body - сообщение, которое в коде никуда в итоге не записывается, но при этом проверяется через антиспам (странно ;))
nickname и email если отправитель незарегистрированный пользователь
login - если пользователь зарегистрированный (хотя по факту, это поле нигде серьезно не используется и не пишется в итогово созданную форму, так как если пользователь зарегистрирован, то система сама определяет его id и вытягивает всю необходимую информацию)

P.S. Rodogor, повеселил стилем рассказа))
Название: Re:форма создания новой темы для модуля форум
Отправлено: Rodogor от 13 Февраля 2013, 22:49:13
Admin, я тут планирую сделать прям целый ряд огромных статей по тем приколам, которые я нашёл в umi, по общению с техподдержкой ну и в целом впечатление. Раскидаюсь с проектами (говорю это уже почти пол года) и повеселю от души.

Поправка про путь к xslt шаблонам и demodizzy - я действительно с путями напутал, давно уже не видел оригинал. Всё что пошло через меня обновлять больше нельзя, а вылавливать глюки в новых обновлениях мне надоело. Ради интереса порой что-то обновляю и смотрю как там в коде что сделали, может чего путёвого.