А как сделать отображение всех товаров одного производителя?

Модератор
#
Re: А как сделать отображение всех товаров одного производителя?
Добавить
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_producers_list_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = 123; // 123 замените на нужный ID
$element['sufix'] = '';
$param['select'][] = $element;
#
Re: А как сделать отображение всех товаров одного производителя?
.. что то я не понял  зачем в $element['value']  указывать конкретный ID, после этого будет жесткая привязка..
вообще я на примере производителей хотел сделать выборку по продавцам т.е. я выбираю из выпадающего списка фирму и после фильтрации должны показаться все товары, по всем категориям! Как это организовать?

#
Re: А как сделать отображение всех товаров одного производителя?
в версии 5.4.9 при внесении изменений в xsl шаблон списка товаров - ссылки на страницы не отображаются! - как пофиксить?
Делаю сайты на HostCMS! Подробнее по почте anton.yurzanov@gmail.com
Модератор
#
Re: А как сделать отображение всех товаров одного производителя?
Vaso133 писал(а):
что-то я не понял зачем в $element['value'] указывать конкретный ID, после этого будет жесткая привязка..

Учимся читать собственные вопросы, цитирую "Как вытащить товары одного производителя независимо от групп?".

Vaso133 писал(а):
вообще я на примере производителей хотел сделать выборку по продавцам т.е. я выбираю из выпадающего списка фирму и после фильтрации должны показаться все товары, по всем категориям! Как это организовать?

Абсолютно аналогичным образом, передавать во внешнее условие ID продавца.

Varkolak писал(а):
в версии 5.4.9 при внесении изменений в xsl шаблон списка товаров — ссылки на страницы не отображаются! — как пофиксить?

Поясните, о каких ссылках идет речь? Хлебные крошки в центре администрирования, отображение в клиентской части или ... ?
#
Re: А как сделать отображение всех товаров одного производителя?
ссылки на список страниц...
1  2  3  4  5  6
Делаю сайты на HostCMS! Подробнее по почте anton.yurzanov@gmail.com
Модератор
#
Re: А как сделать отображение всех товаров одного производителя?
Varkolak,
а какие изменения Вы вносили в XSL-шаблон? В типовом шаблоне 1-2-3 работает?
#
Re: А как сделать отображение всех товаров одного производителя?
Я все сделал по инструкции данные в этом топике и вот когда я вношу изменения в шаблон МагазинКаталогТоваров, то не выврдятся эти ссылки (1 2 3 4...), когда данный код (кусок кода) ставлю от того что идет по дефолту, страницы появляются, но есть сомнения, чтокогда будет происходить фильтрация по производителю, то данные ссылки не будут появляться, как то так.

Или я что то не понимаю...
Делаю сайты на HostCMS! Подробнее по почте anton.yurzanov@gmail.com
#
Re: А как сделать отображение всех товаров одного производителя?
Varkolak писал(а):
при внесении изменений в xsl шаблон списка товаров — ссылки на страницы не отображаются! — как пофиксить?

Во! такая же фигня!
Всё делал по инструкции, всё получилось, но ссылки на следующие страницы пропали (даже если заходить в магазин не через фильтр по производителям)
Модератор
#
Re: А как сделать отображение всех товаров одного производителя?
Varkolak,
Absolut,
Пример был для 4-й версии, в 5-й версии блок for пробуйте использовать от родного шаблона пятерки. Если будет что-то не работать - сообщайте, будем смотреть.
#
Re: А как сделать отображение всех товаров одного производителя?
Ага. попробовал кусок кода
<!-- Цикл для вывода строк ссылок -->
   <xsl:template name="for">
      <xsl:param name="i" select="0"/>
      <xsl:param name="items_on_page"/>
      <xsl:param name="current_page"/>
      <xsl:param name="count_items"/>
      <xsl:param name="visible_pages"/>
      
      <xsl:variable name="n" select="$count_items div $items_on_page"/>
      
      <!-- Считаем количество выводимых ссылок перед текущим элементом -->
      <xsl:variable name="pre_count_page">
         <xsl:choose>
            <xsl:when test="$current_page &gt; ($n - (round($visible_pages div 2) - 1))">
               <xsl:value-of select="$visible_pages - ($n - $current_page)"/>
            </xsl:when>
            <xsl:otherwise>
               <xsl:value-of select="round($visible_pages div 2) - 1"/>
            </xsl:otherwise>
         </xsl:choose>
      </xsl:variable>
      
      <!-- Считаем количество выводимых ссылок после текущего элемента -->
      <xsl:variable name="post_count_page">
         <xsl:choose>
            <xsl:when test="0 &gt; $current_page - (round($visible_pages div 2) - 1)">
               <xsl:value-of select="$visible_pages - $current_page - 1"/>
            </xsl:when>
            <xsl:otherwise>
               <xsl:choose>
                  <xsl:when test="round($visible_pages div 2) = ($visible_pages div 2)">
                     <xsl:value-of select="$visible_pages div 2"/>
                  </xsl:when>
                  <xsl:otherwise>
                     <xsl:value-of select="round($visible_pages div 2) - 1"/>
                  </xsl:otherwise>
               </xsl:choose>
            </xsl:otherwise>
         </xsl:choose>
      </xsl:variable>
      
      <xsl:if test="$i = 0 and $current_page != 0">
         <span class="ctrl">
            &#8592; Ctrl
         </span>
      </xsl:if>
      
      <xsl:if test="$i >= $n and ($n - 1) > $current_page">
         <span class="ctrl">
            Ctrl &#8594;
         </span>
      </xsl:if>
      
      <xsl:if test="$count_items &gt; $items_on_page and $n &gt; $i">
         
         <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
         <xsl:variable name="parent_group_id" select="/shop/@current_group_id"/>
         
         <!-- Путь для тэга -->
         <xsl:variable name="tag_path">
            <xsl:if test="count(/shop/selected_tags/tag) = 1">tag/<xsl:value-of select="/shop/selected_tags/tag/tag_path_name"/>/</xsl:if>
         </xsl:variable>
         
         <!-- Определяем группу для формирования адреса ссылки -->
         <xsl:variable name="group_link">
            <xsl:choose>
               <!-- Если группа не корневая (!=0) -->
               <xsl:when test="$parent_group_id != 0">
                  <xsl:value-of select="/shop//group[@id=$parent_group_id]/fullpath"/>
               </xsl:when>
               <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
               <xsl:otherwise></xsl:otherwise>
            </xsl:choose>
         </xsl:variable>
         
         <!-- Определяем адрес ссылки -->
         <xsl:variable name="number_link">
            <xsl:choose>
               <!-- Если не нулевой уровень -->
               <xsl:when test="$i != 0">page-<xsl:value-of select="$i+1"/>/</xsl:when>
               <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
               <xsl:otherwise></xsl:otherwise>
            </xsl:choose>
         </xsl:variable>
         
         <!-- Передаем фильтр -->
         <xsl:variable name="filter">
            <xsl:choose>
               <xsl:when test="/shop/apply_filter/node()">?action=apply_filter&amp;producer_id=<xsl:value-of select="/shop/producer_id"/>&amp;saller_id=<xsl:value-of select="/shop/saller_id"/>&amp;price_from=<xsl:value-of select="/shop/price_from"/>&amp;price_to=<xsl:value-of select="/shop/price_to"/>&amp;on_page=<xsl:value-of select="/shop/on_page"/>
                  <xsl:if test="/shop/property_xml/node()">
                     <!-- GET для доп. свойств -->
                     <xsl:value-of select="/shop/property_xml"/>
                  </xsl:if>
               </xsl:when>
               <xsl:otherwise></xsl:otherwise>
            </xsl:choose>
         </xsl:variable>
         
         <!-- Определяем первый символ вопрос или амперсанд -->
         <xsl:variable name="first_symbol">
            <xsl:choose>
               <xsl:when test="$filter != ''">&amp;</xsl:when>
               <xsl:otherwise>?</xsl:otherwise>
            </xsl:choose>
         </xsl:variable>
         
         <!-- Данные для стрелок сортировки -->
         <xsl:variable name="arrows">
            <xsl:choose>
               <xsl:when test="(/shop/sort_by_field = 1) or (/shop/sort_by_field = 2)">
                  <xsl:choose>
                     <!-- Стрелка вверх -->
                     <xsl:when test="/shop/order_direction = 'ASC'">
                        <xsl:value-of select="$first_symbol"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&amp;order_direction=1</xsl:when>
                     <!-- Стрелка вниз -->
                     <xsl:otherwise>
                        <xsl:value-of select="$first_symbol"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&amp;order_direction=2</xsl:otherwise>
                  </xsl:choose>
               </xsl:when>
               <xsl:otherwise></xsl:otherwise>
            </xsl:choose>
         </xsl:variable>
         
         <!-- Ставим ссылку на страницу-->
         <xsl:if test="$i != $current_page">
            
            <!-- Выводим ссылку на первую страницу -->
            <xsl:if test="$current_page - $pre_count_page &gt; 0 and $i = 0">
               <a href="{/shop/path}{$group_link}{$tag_path}{$number_link}{$filter}{$arrows}" class="page_link" style="text-decoration: none;">&#x2190;</a>
            </xsl:if>
            
            <xsl:if test="$i &gt;= ($current_page - $pre_count_page) and ($current_page + $post_count_page) &gt;= $i">
               <!-- Выводим ссылки на видимые страницы -->
               <a href="{/shop/path}{$group_link}{$tag_path}{$number_link}{$filter}{$arrows}" class="page_link">
                  <xsl:value-of select="$i + 1"/>
               </a>
            </xsl:if>
            
            <!-- Выводим ссылку на последнюю страницу -->
            <xsl:if test="$i+1 &gt;= $n and $n &gt; ($current_page + 1 + $post_count_page)">
               <xsl:choose>
                  <xsl:when test="$n &gt; round($n)">
                     <!-- Выводим ссылку на последнюю страницу -->
                     <a href="{/shop/path}{$group_link}{$tag_path}{$number_link}{$filter}{$arrows}page-{round($n+1)}/" class="page_link" style="text-decoration: none;">&#x2192;</a>
                  </xsl:when>
                  <xsl:otherwise>
                     <a href="{/shop/path}{$group_link}{$tag_path}{$number_link}{$filter}{$arrows}" class="page_link" style="text-decoration: none;">&#x2192;</a>
                  </xsl:otherwise>
               </xsl:choose>
            </xsl:if>
         </xsl:if>
         
         <!-- Ссылка на предыдущую страницу для Ctrl + влево -->
         <xsl:if test="$current_page != 0 and $i = $current_page">
            <xsl:variable name="prev_number_link">
               <xsl:choose>
                  <!-- Если не нулевой уровень -->
                  <xsl:when test="($current_page - 1) != 0">page-<xsl:value-of select="$i"/>/</xsl:when>
                  <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
                  <xsl:otherwise></xsl:otherwise>
               </xsl:choose>
            </xsl:variable>
            
            <a href="{/shop/path}{$group_link}{$tag_path}{$prev_number_link}{$filter}{$arrows}" id="id_prev"></a>
         </xsl:if>
         
         <!-- Ссылка на следующую страницу для Ctrl + вправо -->
         <xsl:if test="($n - 1) > $current_page and $i = $current_page">
            <a href="{/shop/path}{$group_link}{$tag_path}page-{$current_page+2}/{$filter}{$arrows}" id="id_next"></a>
         </xsl:if>
         
         <!-- Не ставим ссылку на страницу-->
         <xsl:if test="$i = $current_page">
            <span class="current">
               <xsl:value-of select="$i+1"/>
            </span>
         </xsl:if>
         
         <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
         <xsl:call-template name="for">
            <xsl:with-param name="i" select="$i + 1"/>
            <xsl:with-param name="items_on_page" select="$items_on_page"/>
            <xsl:with-param name="current_page" select="$current_page"/>
            <xsl:with-param name="count_items" select="$count_items"/>
            <xsl:with-param name="visible_pages" select="$visible_pages"/>
         </xsl:call-template>
      </xsl:if>
   </xsl:template>
   

из дефолтного шаблона.
Что имеем:
При выборе по производителю, ссылки на следующие страницы отображаются, но переход по ним не получается.
Примерно так:
http://www.kondor-auto.ru/auto/?action=all&producer_id=76 - страница с выбором всех моделей одного производителя
http://www.kondor-auto.ru/auto/page-2/ - при попытке перехода на следующую страницу
Авторизация