UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: manadsgn от 25 Июня 2012, 14:52:48

Название: Магазин "Современный" - добавление заголовка к левому меню каталога
Отправлено: manadsgn от 25 Июня 2012, 14:52:48
Не могу разобраться, как к левому меню каталога добавить заголовок "Каталог товаров". Делаю по аналогии с блоком новостей справа:

<xsl:variable name="category-name" select="document(concat('upage://', category_id))/udata/page/name" />

   <h2 umi:element-id="{category_id}" umi:field-name="name">
               <xsl:value-of select="$category-name" />
   </h2>

но выводится название текущей страницы

Если вводить заголовок вручную, то страница перестает отображаться вообще.
Я понимаю, что мне нужно как-то прописать путь вместо "udata/page/name"  к странице каталога, но как это сделать?
Название: Re:Магазин "Современный" - добавление заголовка к левому меню каталога
Отправлено: admin от 25 Июня 2012, 15:11:27
1. если вы вводите заголовок вручную какой у вас получается код? (так как этот-то вариант должен был первым сработать как самый простой)

А также включите режим debug (http://help-dev.umi-cms.ru/part.Config.debug.html) и покажите что пишет ситема при написании заголовка вручную

2. если вы хотите динамически подставлять заголовок то посмотрите с каким кодом вы работаете и откуда пытаетесь вытянуть category-id
Цитировать
<xsl:variable name="category-name" select="document(concat('upage://', category_id))/udata/page/name" />

судя по вашему коду, вы рассчитываете что у узла <udata> есть узел <category_id> содержащий нужный вам id, но при использовании макроса getCategoryList
эта информация содержится как атрибут @category-id узла <udata>
<udata category-id="4015" module="catalog" method="getCategoryList" generation-time="0.023509">

в итоге как минимум есть ошибка при создании переменной, может и еще что-то но сразу на глаз не видно, попробуйте вот так
<xsl:variable name="category-name" select="document(concat('upage://', @category-id))/udata/page/name" />

   <h2 umi:element-id="{@category-id}" umi:field-name="name">
               <xsl:value-of select="$category-name" />
   </h2>

Название: Re:Магазин "Современный" - добавление заголовка к левому меню каталога
Отправлено: manadsgn от 25 Июня 2012, 16:51:53
Если заголовок ввожу вручную, код такой:

   <div class="left">
             <h2>Каталог товаров</h2>
             <div class="left_catalog">
                <xsl:apply-templates select="document('udata://catalog/getCategoryList/void/shop/')" mode="left-column" />
                   </div>   

Здесь ошибка, как я понимаю, в том, что текст написан напрямую, а нужно его задавать через какую-то переменную, но я пока в XSLT полный ноль.
Debug ничего не выдает, появляется просто пустая страница.

Попробовала Ваш вариант кода, вместо заголовка "Каталог товаров", появляется заголовок "Главная" на всех страницах..

Спасибо за помощь!
Название: Re:Магазин "Современный" - добавление заголовка к левому меню каталога
Отправлено: admin от 25 Июня 2012, 17:11:54
то есть
 <div class="left">
             <h2>Каталог товаров</h2>
             <div class="left_catalog">
                <xsl:apply-templates select="document('udata://catalog/getCategoryList/void/shop/')" mode="left-column" />
                   </div>   
белый экран
 <div class="left">

             <div class="left_catalog">
                <xsl:apply-templates select="document('udata://catalog/getCategoryList/void/shop/')" mode="left-column" />
                   </div>   
сайт отображается?

проверь еще кодировку файла в котором находиться эта запись, должна быть utf-8

насчет того что динамика не выводит что надо, приложи сюда файл /layout/default.xsl и файл в котором шаблоны для левой колонки
Название: Re:Магазин "Современный" - добавление заголовка к левому меню каталога
Отправлено: manadsgn от 25 Июня 2012, 17:33:00
Все получилось, спасибо! Проблема была в кодировке.