UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Axiomateria от 06 Июля 2013, 18:21:28

Название: Варианты подгрузки разных типов страниц в одном шаблоне
Отправлено: Axiomateria от 06 Июля 2013, 18:21:28
Суть вопроса такая:  у меня есть три типовых варианта страниц для  "Главная" + "Контактная информация" +"Страницы каталога", то три варианта, которые подгружаются в одном основном шаблоне-дизайне.
Получилось решить только для двух вариантов подгрузки в шаблоне ../layouts/default.xsl  
                
               <xsl:if test="/result/page/@is-default='1'">
                   <xsl:call-template name="index_main"/>
                </xsl:if>

                <xsl:if test="not(/result/page/@is-default='1')">
                   <xsl:call-template name="pages"/>                
                </xsl:if>

где "index_main" это только тип для Главная страница сайта, а "pages" это тип страниц "Страницы каталога".

Вопрос: как сделать третий вариант типа страниц для  "Контактная информация" ?
Название: Re:Варианты подгрузки разных типов страниц в одном шаблоне
Отправлено: admin от 07 Июля 2013, 03:45:59
<xsl:choose>
<xsl:when test="/result/page/@is-default='1'">
главная
</xsl:when>
<xsl:when test="/result/@pageId='13' or /result/page/@alt-name='contacts'">
контакты
</xsl:when>
<xsl:otherwise>
все остальные страницы
</xsl:otherwise>
</xsl:choose>

при условии, что 13 это id страницы "контакты" или что у страницы "Контакты" м псевдостатическим именем "contacts"
Название: Re:Варианты подгрузки разных типов страниц в одном шаблоне
Отправлено: Axiomateria от 07 Июля 2013, 16:06:17
Спасибо, admin!
В итоге у меня успешно получилась такая вот конструкция с подключением нового созданного третьего варианта типа страниц для  "Контактная информация" - pages2

             <xsl:choose>
             <xsl:when test="/result/page/@is-default='1'">
              <xsl:call-template name="index_main"/>
             </xsl:when>
             <xsl:when test="/result/@pageId='86'">
              <xsl:call-template name="pages2"/>
             </xsl:when>
             <xsl:otherwise>
              <xsl:call-template name="pages"/>
             </xsl:otherwise>
           </xsl:choose>
Название: Re:Варианты подгрузки разных типов страниц в одном шаблоне
Отправлено: Axiomateria от 08 Июля 2013, 13:31:47
Есть ещё одно уточнение: требуется вывести по аналогии с
             <xsl:when test="/result/@pageId='86'">
              <xsl:call-template name="pages2"/>
             </xsl:when>
вариант типа страниц но не по признаку конкретного её ID страницы, а по принадлежность её к своему типу данных?
То есть вместо  
<xsl:when test="/result/@pageId='86'">
должно быть  
<xsl:when test="/result/page/@type-id='149'">
?
Название: Re:Варианты подгрузки разных типов страниц в одном шаблоне
Отправлено: admin от 08 Июля 2013, 14:52:35
да, можно так, но лучше делать немного по другому, например у вас есть католог товаров который выводиться шаблоном
<xsl:template match="/result[@method = 'category']">
стандартная страница раздела каталога
</xsl:template>
в файле /templates/demodizzy/xslt/modules/catalog/category-view.xsl

и вам надо создать новый шаблон для раздела католога с псевдастатическим адресом "brands", тогда вы просто создаете нижне уточняющий шаблон используя возможности предиката
<xsl:template match="/result[@method = 'category']">
стандартная страница раздела каталога
</xsl:template>

<xsl:template match="/result[@method = 'category' and page/@alt-name='brands']">
страница с псевдостатическим именем "brands"
</xsl:template>

точно также, вы можете добавить сколь угодно много уточняющих шаблонов по типам данных, по id странице и вообще по всему до чего вы можете дотянуться в xml документе с которым работаете.