Группы Товаров На Главной с выводом картинок групп

#
Группы Товаров На Главной с выводом картинок групп
Добрый день. Пытаюсь сделать следующее: чтобы под основным (верхним) меню сайта выводился список групп интернет-магазина с картинками. Ниже привожу последовательность своих действий (что сделал) и собственно что получилось (т.е. не получилось):
1. При установке системе выбран шаблон "Основной".
2. В "Макеты/Основной макет" в "<div class="left_block slide_block"> <div class="data">" добавлен код:

<?php
      // Разделы магазина
      if (Core::moduleIsActive('shop'))
      {
         $Shop_Controller_Show = new Shop_Controller_Show(
            Core_Entity::factory('Shop', 1)
         );
         $Shop_Controller_Show
            ->xsl(
               Core_Entity::factory('Xsl')->getByName('МагазинГруппыТоваровНаГлавнойПодМеню')
            )
            ->groupsMode('tree')
            //->itemsForbiddenTags(array('text'))
            ->group(0)
            ->limit(0)
            ->show();
      }    ?>

3. Скопирован стандартный xsl-шаблон 'МагазинГруппыТоваровНаГлавной' и переименован в 'МагазинГруппыТоваровНаГлавнойПодМеню'.
4. В xsl-шаблоне 'МагазинГруппыТоваровНаГлавнойПодМеню' код:

   <!-- Шаблон для групп товара -->
   <xsl:template match="shop_group">
      <li>
         <a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="shop_group">
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </a>
         
         <!-- Если есть подгруппы -->
         <!-- <xsl:if test="shop_group">
            <ul class="left_menu gray_link gray" id="{@id}" style="display: none;">
               <xsl:apply-templates select="shop_group"/>
            </ul>
         </xsl:if> -->
      </li>
   </xsl:template>


заменяю на следующий код:

   <xsl:template match="shop_group">
      <ul>
         <xsl:for-each select=". | following-sibling::shop_group[position() &lt; $n]">
            <li>
               <xsl:if test="image_small!=''">
                  <a href="{url}" target="_blank">
                     <img src="{dir}{image_small}" align="middle"/>
            </a><xsl:text> </xsl:text></xsl:if>
               
         <a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="shop_group"><xsl:value-of disable-output-escaping="yes" select="name"/></a><xsl:text> </xsl:text><span class="shop_count"><xsl:value-of select="items_total_count"/></span>
            </li>
         </xsl:for-each>
      </ul>
   </xsl:template>

5. В итоге получаю ошибки:
Предупреждение: XSLTProcessor::transformToDoc() [<a href='xsltprocessor.transformtodoc'>xsltprocessor.transformtodoc</a>]: runtime error: file .../public_html/ line 25 element for-each в файле .../public_html/modules/xsl/processor/xslt.php (строка 47)
Предупреждение: XSLTProcessor::transformToDoc() [<a href='xsltprocessor.transformtodoc'>xsltprocessor.transformtodoc</a>]: Variable 'n' has not been declared. в файле .../public_html/modules/xsl/processor/xslt.php (строка 47)
Предупреждение: XSLTProcessor::transformToDoc() [<a href='xsltprocessor.transformtodoc'>xsltprocessor.transformtodoc</a>]: xmlXPathCompiledEval: 3 objects left on the stack. в файле .../public_html/modules/xsl/processor/xslt.php (строка 47)
Предупреждение: XSLTProcessor::transformToDoc() [<a href='xsltprocessor.transformtodoc'>xsltprocessor.transformtodoc</a>]: runtime error: file .../public_html/ line 25 element for-each в файле .../public_html/modules/xsl/processor/xslt.php (строка 47)
Предупреждение: XSLTProcessor::transformToDoc() [<a href='xsltprocessor.transformtodoc'>xsltprocessor.transformtodoc</a>]: Failed to evaluate the 'select' expression. в файле .../public_html/modules/xsl/processor/xslt.php (строка 47)

Подскажите, пожалуйста, что же я пропустил ?
Использую HostCms в редакции Корпорация
Модератор
#
Re: Группы Товаров На Главной с выводом картинок групп
rockmeister писал(а):
Подскажите, пожалуйста, что же я пропустил?

Как минимум то, что переменная $n, которую используете в xsl:for-each не объявлена.

Variable 'n' has not been declared.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Группы Товаров На Главной с выводом картинок групп
НЕ чего не понимаю, делаю все по пунктам на 4-ом пункте у меня начинаются проблемы,  заменяю на следующий код:

    <xsl:template match="shop_group">
       <ul>
          <xsl:for-each select=". | following-sibling::shop_group[position() &lt; $n]">
             <li>
                <xsl:if test="image_small!=''">
                   <a href="{url}" target="_blank">
                      <img src="{dir}{image_small}" align="middle"/>
             </a><xsl:text> </xsl:text></xsl:if>
                
          <a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="shop_group"><xsl:value-of disable-output-escaping="yes" select="name"/></a><xsl:text> </xsl:text><span class="shop_count"><xsl:value-of select="items_total_count"/></span>
             </li>
          </xsl:for-each>
       </ul>
    </xsl:template>


Повис вопрос так как я не силен в php куда и как прописать переменную 'n'. В техподержке на этот вопрос ответили: Выше кода. Например, <xsl:variable name="n" select="number(3)"/>  после на сайте вываливается куча ошибок кто может раскрыть эту тему до конца чтоб таким чайникам как я не приходилось ломать голову!?
Буду очень вам признателен!!!!
Модератор
#
Re: Группы Товаров На Главной с выводом картинок групп
bburago писал(а):
НЕ чего не понимаю, делаю все по пунктам на 4-ом пункте у меня начинаются проблемы, заменяю на следующий код:

Какие проблемы? Переменную нужно прописывать в XSL, а не PHP. Если Вы совсем не разбираетесь, то лучше заказать выполнение индивидуальных работ с сайтом.
#
Re: Группы Товаров На Главной с выводом картинок групп
HostCMS писал(а):
Переменную нужно прописывать в XSL, а не PHP.
да в xsl прошу прошение.HostCMS писал(а):
Если Вы совсем не разбираетесь, то лучше заказать выполнение индивидуальных работ с сайтом.

Я - не волшебник, я только учусь! И хотелось бы самому все понять и изучить!
Модератор
#
Re: Группы Товаров На Главной с выводом картинок групп
bburago,
так понимайте и учите. Начните с синтаксиса, далее если есть ошибки в XSL, в google смотрите описания и исправляете.
Авторизация