Выводим логотипы вместо названий производителей в листинге товара (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, добавляйте как минимум перевод строки.

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

    Благодарю!

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

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

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

Ваш e-mail не будет опубликован.