Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Выборка активных и не активных страниц через Selector

Автор atachРаздел Custom макросы

Ответов: 2
Просмотров: 2999
Последний ответ 24 Апреля 2016, 13:02:38
от atach
Вывод данных страниц разного типа данны в порядке создания

Автор SumrakrndРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 2979
Последний ответ 09 Декабря 2016, 12:55:59
от Sumrakrnd
Вопрос по выводу дочерних страниц модуля структура

Автор shotoРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 5646
Последний ответ 07 Марта 2014, 17:34:18
от e.ioffe
Сбор информации об обновлении страниц сайта

Автор AllaVKРаздел Custom макросы

Ответов: 15
Просмотров: 10221
Последний ответ 28 Сентября 2011, 17:02:34
от AllaVK
Фильтрация страниц по значениям кастомных полей

Автор AksukРаздел Макросы UMI.CMS

Ответов: 10
Просмотров: 7984
Последний ответ 30 Сентября 2011, 01:05:22
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Суть вопроса такая:  у меня есть три типовых варианта страниц для  "Главная" + "Контактная информация" +"Страницы каталога", то три варианта, которые подгружаются в одном основном шаблоне-дизайне.
Получилось решить только для двух вариантов подгрузки в шаблоне ../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" это тип страниц "Страницы каталога".

Вопрос: как сделать третий вариант типа страниц для  "Контактная информация" ?
« Последнее редактирование: 06 Июля 2013, 18:25:42 от Axiomateria »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
<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"

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Спасибо, 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>

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Есть ещё одно уточнение: требуется вывести по аналогии с
             <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'">
?
« Последнее редактирование: 08 Июля 2013, 14:10:39 от Axiomateria »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
да, можно так, но лучше делать немного по другому, например у вас есть католог товаров который выводиться шаблоном
<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 документе с которым работаете.