UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Axiomateria от 31 Марта 2014, 15:16:41

Название: Вывод сообщений из темы форума в объект каталога
Отправлено: Axiomateria от 31 Марта 2014, 15:16:41
Здравствуйте!
В шаблоне объекта каталога прописал вызов на тему форума (тип поля "Ссылка на дерево"):
<xsl:apply-templates select="document(concat('udata://forum/topic/notemplate/100/0', //property[@name = 'discussion_forum']/value/page/@id,'/void/100'))/udata"/>
результат в странице XML такие:
<group id="444" name="thematic_broadcast">
<title>Тематические трансляции</title>
<property id="468" name="discussion_forum" type="symlink">
<title>Обсуждение из форума</title>
<value>
<page id="1140" parentId="1139" link="http://domen.ru/conference/shumopodavlenie" is-active="1" object-id="2886" type-id="64" type-guid="forum-topic" update-time="1396254298" alt-name="shumopodavlenie" xlink:href="upage://1140">
<basetype id="36" module="forum" method="topic">Топик в форуме</basetype>
<name>Шумоподавление</name>
</page>
</value>
</property>
</group>

Однако сообщения выводится только форма для добавления сообщения на тему форума, а самих сообщений нет.

Думал, что сработает по аналогии успешного подключения таким же способом фотогалереи... но что-то видно не доглядел...

Да ещё вот важная деталь - проект мультидоменный и если тему форума перетащить в структуре в тот домен, в котором находиться этот объект каталога, то сообщения начинают выводиться... Но хотелось бы, что бы это не было принципиальным, опять-так для подключения к объекту каталога фотогалереи такой проблемки нет.
Название: Re:Вывод сообщений из темы форума в объект каталога
Отправлено: Axiomateria от 05 Апреля 2014, 12:11:25
После основательного штудирования родного руководства для UMI.CMS с непосредственным участием специалистов Службы Заботы в итоге рецепт решения свершён. Если кому интересно, могу изложить его здесь.
Название: Re:Вывод сообщений из темы форума в объект каталога
Отправлено: ilyar от 23 Апреля 2014, 12:08:40
После основательного штудирования родного руководства для UMI.CMS с непосредственным участием специалистов Службы Заботы в итоге рецепт решения свершён. Если кому интересно, могу изложить его здесь.

Конечно интересно, пиши, будет полезно.
Название: Re:Вывод сообщений из темы форума в объект каталога
Отправлено: Axiomateria от 25 Апреля 2014, 18:59:38
Конечно интересно, пиши, будет полезно.

В объекте каталога через тип поля "Ссылка н дерево" подключение темы форума через происходит такие вызовы
            <xsl:apply-templates select="document(concat('udata://forum/topic/notemplate/100/0/', //property[@name = 'discussion_forum']/value/page/@id,'/void/100'))/udata" mode="forumtopic-link"/>           
            <xsl:apply-templates select="document(concat('usel://ForumTopic/', //property[@name = 'discussion_forum']/value/page/@id))/udata" mode="forumtopic-link-inner"/>
и обрабатываются выводимые сообщения в этой теме форума вместе с ссылкой на тему форума такими шаблонами:
 <xsl:template match="udata" mode="forumtopic-link">
        <xsl:apply-templates select="document(concat('upage://',@id))//property[@name = 'discussion_forum']" mode="topic-title-link"  />
    </xsl:template>
 
    <xsl:template match="item" mode="topic-title-link">
        <xsl:variable name="publish_time" select="document(concat('upage://',@id))//property[@name = 'publish_time']/value/@unix-timestamp" />
        <tr class="head-shadow">
            <td>
                <xsl:apply-templates select="document(concat('udata://users/viewAuthor/', @author_id, '/'))/udata" />
            </td>
            <td align="left" valign="top">
                <a name="{@id}" />
                <div class="forum_message">
                    <span>
                        <xsl:value-of select="name" />
                    </span>
                    <span umi:element-id="{@id}" umi:field-name="publish_time" class="publishtime">
                        <xsl:apply-templates select="document(concat('udata://system/convertDate/',$publish_time,'/d.m.Y%20%E2%20H:i/'))/udata" />
                    </span>
                    <hr />
                    <div umi:element-id="{@id}" umi:field-name="message" class="topic_message">
                        <xsl:value-of select="." disable-output-escaping="yes" />  
                    </div>
                </div>
            </td>
        </tr>
    </xsl:template>
    
    <xsl:template match="//property[@name = 'discussion_forum']/title" mode="topic-title-link">
        <div class="float20"> </div>
        <xsl:value-of select="." />
        <xsl:text>: </xsl:text>
    </xsl:template>
    <xsl:template match="//property[@name = 'discussion_forum']/value/page" mode="topic-title-link">
        <a href="{@link}" title="{basetype} {name}" target="_blank">
            <xsl:value-of select="name" />
        </a>
        <div class="float20"> </div>
    </xsl:template>  
    
    <xsl:template match="udata" mode="forumconf-title">
        <xsl:apply-templates select="document(concat('upage://',@id))//property[@name = 'forum_topics']" mode="forumconf-title"  />
    </xsl:template>
    <xsl:template match="page" mode="forumconf-title">
        <xsl:value-of select="title" />
        <xsl:text>: </xsl:text>
        <h4>
            <xsl:value-of select="name" />
        </h4>      
        <xsl:apply-templates select="document(concat('upage://',@id))//property[@name = 'descr']" mode="forumconf-title"  />
    </xsl:template>
    <xsl:template match="//property[@name='descr']" mode="forumconf-title">
        <xsl:value-of select="value" disable-output-escaping="yes" />
    </xsl:template>

Ссылка на рабочий вариант: http://vitorond.ru/shop/kotly_chugunnye/vitorond_18-63kvt/kotel_vitorond_100_kc4b_18kvt_bez_gorelki

Кому интересно, могу ещё подкинуть и вызовы с шаблонами для вывода сразу всех тем в одной конференции для объекта каталога.