Выводим логотипы вместо названий производителей в листинге товара (VAMshop)

23.08.2010 | Написал

Если у Вас несколько производителей в категории, то в сортировке над листингом отображается фильтр по производителю. Он имеет вид списка “производитель1, произодитель2, все производители”.
Название производителя можно заменить на его логотип. Делаем это следующим образом:

Открываем файл includes/modules/default.php. Во всех sql-запросах, где есть m.manufacturers_name после

 m.manufacturers_name,

добавляем

 m.manufacturers_image,

районе 400-й строки находим блок optional Product List Filter. Заменяем

    if (PRODUCT_LIST_RECURSIVE == 'true') {
    $filterlist_sql = "select distinct p.manufacturers_id, m.manufacturers_id as id, m.manufacturers_name as name from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_CATEGORIES." c,".TABLE_MANUFACTURERS." m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and (p2c.categories_id = '".$current_category_id."' AND p2c.categories_id = c.categories_id OR p2c.categories_id = c.categories_id AND c.parent_id = '".$current_category_id."') order by m.manufacturers_name";
    } else {
    $filterlist_sql = "select distinct m.manufacturers_id as id, m.manufacturers_name as name from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_MANUFACTURERS." m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '".$current_category_id."' order by m.manufacturers_name";

на

    if (PRODUCT_LIST_RECURSIVE == 'true') {
    $filterlist_sql = "select distinct p.manufacturers_id, m.manufacturers_id as id, m.manufacturers_image as name from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_CATEGORIES." c,".TABLE_MANUFACTURERS." m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and (p2c.categories_id = '".$current_category_id."' AND p2c.categories_id = c.categories_id OR p2c.categories_id = c.categories_id AND c.parent_id = '".$current_category_id."') order by m.manufacturers_image";
    } else {
    $filterlist_sql = "select distinct m.manufacturers_id as id, m.manufacturers_image as name from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_MANUFACTURERS." m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '".$current_category_id."' order by m.manufacturers_image";

чуть ниже

	if (isset($current_category_id)) {
    $manufacturer_sort .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'cat='.$current_category_id.'&filter_id='.$filterlist['id']).'">' . $filterlist['name'] . '</a> ';
    } else {
    $manufacturer_sort .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'filter_id='.$filterlist['id']).'">' . $filterlist['name'] . '</a> ';
    }

меняем на

	if (isset($current_category_id)) {
    $manufacturer_sort .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'cat='.$current_category_id.'&filter_id='.$filterlist['id']).'"><img src="images/' . $filterlist['name'] . '" ></a> ';
    } else {
    $manufacturer_sort .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'filter_id='.$filterlist['id']).'"><img src="images/' . $filterlist['name'] . '" ></a> ';
    }

Теперь в фильтре листинга вместо названий производителей будут отображаться логотипы. Чтобы такой листинг выглядел красиво, картинки нужно изначально привести к единому формату.

Метки:
12 комментариев читателей статьи "Выводим логотипы вместо названий производителей в листинге товара (VAMshop)"
  • Александр пишет:

    А как сделать, чтобы логотип названия производителей выводился возле каждого товара в листинге товаров?
    К примеру, как на tech.komus.ru/catalog.php?catID=73 (над названием товара).

  • Евгений Молодецкий пишет:

    Смотрите в факе на оффсайте вывод названия http://vamshop.ru/faq.php/faq_id/26/question/Kak-mozhno-vyvodit-naimenovanie-proizvoditelya-v-spiske-tovarov- . По тому де принципу, как manufacturers_name можно выбрать из базы manufacturers_image. Если буду делать такое, напишу в блоге, пока такая задача не стояла.

  • Александр пишет:

    Спасибо, Евгений!

  • Александр пишет:

    А каким образом сделать, чтобы странице карточки товара выводилось изображение производителя вместо тестового названия?

  • Станислав пишет:

    Спасибо, Евгений!
    То, что нужно.
    Правда немного доработал, прописал вывод алт и тайтл к картинкам.

  • Владимир пишет:

    Подскажите, плз, можно ли в коде ограничить размер картинки для страницы листинга товара (на других страницах нужно, чтобы картинка была больше) и, желатнльно, как это сднлать?

  • Евгений Молодецкий пишет:

    Добавьте один из размеров – ширину или высоту в тег IMG. Должно сработать.

  • Владимир пишет:

    Спасибо!

  • Владимир пишет:

    Еще вопрос! Как сделать, чтобы ссылка “Все произвоители” отображалась на новой строке (под списком произвоителей), а не справа от них!

  • Евгений Молодецкий пишет:

    Ищите ссылку в коде includes/modules/default.php, добавляйте как минимум перевод строки.

  • Владимир пишет:

    Благодарю!

  • Владимир пишет:

    А можно пример посмотреть?
    Интересно как быть с если на некоторые бренды не установлены логотипы(например если он не существует или его не успели загрузить)?

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.