Производители (manufacturers)

sergiykhd

Prestashop Expert
Регистрация
17 Апр 2013
Сообщения
1.230
Реакции
1.150
Ищу готовое решение для отображения производителей в алфавитном порядке. Примерно как на фото...
 

Вложения

  • manufacturer-or-supplier-alphabetical-search.jpg
    manufacturer-or-supplier-alphabetical-search.jpg
    102,9 KB · Просмотры: 68
Вот тут: skinline.ru Для просмотра ссылки Войди или Зарегистрируйся делал на js.
Довольно просто мне кажется придумал (script.js), но давно это было:
То есть пробегал по списку просто и к впервые встречающейся букве делал подпись
Код:
var letters = [];
    $('#showman li').each(function(){

        var letter = $(this).find('a').text()[0];

        if($.inArray(letter,letters) == -1)
        {
            letters.push(letter);
            $(this).find('span').html(letter);
        }
    });
 
как реализовал
1. В файле настраиваем количество отображаемых производителей
controllers/front/ManufacturerController.php

меняем
$this->n = abs((int)Tools::getValue('n', Configuration::get('PS_PRODUCTS_PER_PAGE')));
на
$this->n = abs((int)(Tools::getValue('n', 99)));

2. В файле themes/....../manufacturer-list.tpl меняем следующий кусок:

<ul id="manufacturers_list" class="clearfix">
{foreach from=$manufacturers item=manufacturer name=manufacturers}
{if !isset($currentLetter)}
{$currentLetter = $manufacturer.name|substr:0:1}
<li class="alphabetical"><h3>{if in_array($currentLetter, array(0,1,2,3,4,5,6,7,8,9))}0-9{else}{$manufacturer.name|substr:0:1}{/if}</h3></li>
{else if isset($currentLetter) && $currentLetter != $manufacturer.name|substr:0:1 && (string)($manufacturer.name|substr:0:1) != (string)((int)($manufacturer.name|substr:0:1))}
{$currentLetter = $manufacturer.name|substr:0:1}
<li class="alphabetical"><h3>{$manufacturer.name|substr:0:1}</h3></li>
{/if}
<li class="clearfix {if $smarty.foreach.manufacturers.first}first_item{elseif $smarty.foreach.manufacturers.last}last_item{else}item{/if}">
<div class="left_side">
<!-- name -->
<h5>
{if $manufacturer.nb_products > 0}<a href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)|escape:'html'}">{/if}
{$manufacturer.name|truncate:60:'...'|escape:'html'}
{if $manufacturer.nb_products > 0}</a>{/if}
</h5>
</div>
</li>
{/foreach}
</ul>

3. меняем под себя стили в файле themes/...../css/global.css поля manufacturer_list
 
Последнее редактирование:
Я реализовал это таким образом (не без помощи интернета конечно)
В файле manufacturer-list.tpl по такому принципу
Код:
<h4><a href="http://site.ru/index.php?controller=manufacturer&filter=A">A</a> - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z</h4>

В файле контроллера добавил
Код:
    $filter = $_GET["filter"];          //get url parameter
               $indic = 0;
               if ($filter<>""){
                foreach ($data as &$item){
                 if ( (substr($item['name'],0,1))<>$filter){ //compare initial with filter option
                 unset($data[$indic]); //delete item
                 }
                $indic = $indic + 1;
                }
               }
               $data = array_values($data); //reindex array

Между этими строками
Код:
$this->pagination($nbProducts);       
......
.....
....
foreach ($data as &$item)
                $item['image'] =
 
Блин, написал код, и он срабатывает только на первую букву А, а на остальные буквы выдает 0. Не подскажете в чем проблема?
 
делали по какому способу?
Вот ссылка на инструкцию, но вместо filtro я заменял filter иначе ничего бы не работало вообще
Для просмотра ссылки Войди или Зарегистрируйся

У меня на сайте 26000 Производителей:) Поэтому хочу добиться именно вывод по буквам, а еще лучше сначала по одной букве, а затем по двум (Пример А -> Ab)

Нашел сайт с выводом по примерно такому же способу, но у них работает у меня нет:(
Для просмотра ссылки Войди или Зарегистрируйся

В идеале конечно хотелось бы вот такой вывод:
Для просмотра ссылки Войди или Зарегистрируйся
 
Доброго времени суток.
Не могли бы подсказать как вывести список названий производителей товаров в текущей категории этих товаров в произвольном поле?
(есть категория товаров с разными производителями, хочу вывести список производителей этих товаров этой категории)

За ранее благодарен.
 
Доброго времени суток.
Не могли бы подсказать как вывести список названий производителей товаров в текущей категории этих товаров в произвольном поле?
(есть категория товаров с разными производителями, хочу вывести список производителей этих товаров этой категории)

За ранее благодарен.

Самый простой способ через блок фильтров. Создать отдельный фильтр, выводить только производителией и вставить в нужное место. Это если быстро.
 
Самый простой способ через блок фильтров. Создать отдельный фильтр, выводить только производителией и вставить в нужное место. Это если быстро.
есть пример реализации?
 
Назад
Сверху