Перейти к содержанию
Форум поддержки пользователей VamShop

Как в боксе "Производители" вывести вместо списка выве


Рекомендуемые сообщения

Нужно в боксе /templates/шаблон/source/boxes/manufacturers.php

В sql запрос после manufacturers_name добавить manufacturers_image

и ниже, где выводится manufacturers_name добавить manufacturers_image

Это будет картинка происходителя.

А также в настройках в Админке - Настройки - Основные - Максимальные

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

Ссылка на сообщение
Поделиться на другие сайты

Если не сложно, то в каком месте? В этом участке?

while ($manufacturers = vam_db_fetch_array($manufacturers_query, true)) {
$manufacturers_name = ((utf8_strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? utf8_substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
if (isset ($_GET['manufacturers_id']) && ($_GET['manufacturers_id'] == $manufacturers['manufacturers_id']))
$manufacturers_name = '<b>'.$manufacturers_name.'</b>';
$manufacturers_list .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.$manufacturers_name.'</a><br />';
}[/code]

Ссылка на сообщение
Поделиться на другие сайты


$manufacturers_list .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.$manufacturers_name.'</a><br />';
[/code] меняй примерно на:
[code]
$manufacturers_list .= '<img src="'.$manufacturers['manufacturers_image'].'"><a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.$manufacturers_name.'</a><br />';

Только в sql запрос добавь manufacturers_image

Ссылка на сообщение
Поделиться на другие сайты

Увы, не работает.

Вставил в запрос после m.manufacturers_name m.manufacturers_image и эту ссылку:

$manufacturers_list .= '<img src="'.$manufacturers['manufacturers_image'].'"><a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.$manufacturers_name.'</a><br />';

Ссылка на сообщение
Поделиться на другие сайты

Решение найдено!

Вместо:


$manufacturers_query = "select distinct m.manufacturers_id, m.manufacturers_name from ".TABLE_MANUFACTURERS." as m, ".TABLE_PRODUCTS." as p where m.manufacturers_id=p.manufacturers_id order by m.manufacturers_name";

$manufacturers_query = vamDBquery($manufacturers_query);
if (vam_db_num_rows($manufacturers_query, true) <= MAX_DISPLAY_MANUFACTURERS_IN_A_LIST) {
// Display a list
$manufacturers_list = '';
while ($manufacturers = vam_db_fetch_array($manufacturers_query, true)) {
$manufacturers_name = ((utf8_strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? utf8_substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
if (isset ($_GET['manufacturers_id']) && ($_GET['manufacturers_id'] == $manufacturers['manufacturers_id']))
$manufacturers_name = '<b>'.$manufacturers_name.'</b>';
$manufacturers_list .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.$manufacturers_name.'</a><br />';
}
$box_content = $manufacturers_list;
[/code] Вставляем:
[code]
$manufacturers_query = "select distinct m.manufacturers_id, m.manufacturers_name, m.manufacturers_image from ".TABLE_MANUFACTURERS." as m, ".TABLE_PRODUCTS." as p where m.manufacturers_id=p.manufacturers_id order by m.manufacturers_name";

$manufacturers_query = vamDBquery($manufacturers_query);
if (vam_db_num_rows($manufacturers_query, true) <= MAX_DISPLAY_MANUFACTURERS_IN_A_LIST) {
// Display a list
$manufacturers_list = '';
$image='';
while ($manufacturers = vam_db_fetch_array($manufacturers_query, true)) {
$manufacturers_name = ((utf8_strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? utf8_substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
if (isset ($_GET['manufacturers_id']) && ($_GET['manufacturers_id'] == $manufacturers['manufacturers_id']))
$manufacturers_name = '<b>'.$manufacturers_name.'</b>';
$image=DIR_WS_IMAGES . $manufacturers['manufacturers_image'];
$manufacturers_list .= '<br/><img src="'.$image.'"><br/><a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.$manufacturers_name.'</a><br />';
}
$box_content = $manufacturers_list;

И ВУАЛЯ!

Ссылка на сообщение
Поделиться на другие сайты

Мне тоже понравилось - сам бы не сделал...

А кто захочет сделать ссылкой "картинку" с альтом категории поменяйте

$manufacturers_list .= '<br/><img src="'.$image.'"><br/><a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.$manufacturers_name.'</a><br />';
на
$manufacturers_list .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'"><img src="'.$image.'" alt="'.$manufacturers_name.'"></a>'.'<br />';

Спасибо.

Ссылка на сообщение
Поделиться на другие сайты

А можно ли вместо

$manufacturers_name

вывести, например, meta title производителя?

Тогда бокс будет мультиязычным.

Ссылка на сообщение
Поделиться на другие сайты

Наверное можно, нужно только в /templates/шаблон/source/boxes/manufacturers.php править sql запрос:


$manufacturers_query = "select distinct m.manufacturers_id, m.manufacturers_name from ".TABLE_MANUFACTURERS." as m, ".TABLE_PRODUCTS." as p where m.manufacturers_id=p.manufacturers_id order by m.manufacturers_name";
[/code] на:
[code]
  $manufacturers_query = "select distinct m.manufacturers_id, mi.manufacturers_meta_title, m.manufacturers_name from ".TABLE_MANUFACTURERS." as m left join " . TABLE_MANUFACTURERS_INFO . " mi on (m.manufacturers_id=mi.manufacturers_id), ".TABLE_PRODUCTS." as p where m.manufacturers_id=p.manufacturers_id and mi.languages_id = '" . (int)$_SESSION['languages_id'] . "' order by m.manufacturers_name";

а также заменить:

$manufacturers_array[] = array ('id' => $manufacturers['manufacturers_id'], 'text' => $manufacturers_name);
[/code] на:
[code]
$manufacturers_array[] = array ('id' => $manufacturers['manufacturers_id'], 'text' => $manufacturers['manufacturers_meta_title']);

Как-то так.

Ссылка на сообщение
Поделиться на другие сайты

Спасибо за быстрый ответ...

Обнаружилась неисправность в работе "производители"

1. Не отображается метка производитель_инфо

2. "Производители" в виде развёрнутого меню (в настройки-основные-максимальные не переводится в drop-down) и только два. Третий добавился, но не отображается.

Чтобы разобраться, перешёл на нетронутый шаблон из сборки - результат тот-же.

Для эксперимента удалил всех и начал добавлять производителей - не отображаются вообще.

Ссылка на сообщение
Поделиться на другие сайты

1. Она отображается только на странице карточки товара и только у товара, у которого указан производитель.

2. Может просто 3 производитель не связан ни с одним товаром?!

Ссылка на сообщение
Поделиться на другие сайты

Если я правильно понял, то вторая замена в

http://vamshop.ru/forum/index.php?topic=2004.msg17225#msg17225

относится к коду в // Display a drop-down и это ничего у меня не изменило,

а как изменить для // Display a list?

и ещё обнаружил, что все метатеги производителя выводятся на русском на страницах другого языка (ввод в редактировании проверил)

Ссылка на сообщение
Поделиться на другие сайты

Пожалуйста, а что с метатегами?

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

Даже и не знаю, в sql запросе стоит условие, что выводить для текущего языка.

А sql кэш в Админке - Настройки - Основные - Кэш не включён случайно?!

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...