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

Список производителей на всех страницах сайта


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

Добрый день.

Возник вот небольшой вопрос, который самостоятельно решить не удалось.

Каким образом можно вывести полный список производителей на всех страницах сайта?

Т.е. чтобы где-нибудь в районе footer'а отображались иконки производителей.

Я пытался исправлять шаблон бокса manufacturers и помещать его в нужное место (пока правда не получилось). Может быть есть какой-нибудь более логичный метод для реализации этой прихоти? )

Если нет, то как сделать чтобы в боксе "производители" список выводился не в виде drop-down меню, а в строчку?

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

Нужно поправить исходный код бокса производители - /templates/шаблон/source/boxes/manufacturers.php

т.е. сделать вывод производителетей в виде ссылок, а не drop-down.

А затем в /templates/шаблон/index.html метку {$box_MANUFACTURERS} поставить внизу.

Вот как-то так.

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

Александр, я конечно прошу прощения за навящевость, но как ни бился, моё незнание php даёт о себе знать :(

Сделал следующим образом: разместил бокс {$box_MANUFACTURERS} в нужном месте, в настройках магазина выставил максимальное значение в поле "Список производителей" больше чем есть производителей в магазине, соответственно все производители отобразились списком в столбик.

Но хочется чтобы этот список был не в один столбик, а по ширине бокса и вместо названий отображались логотипы.

Насколько я понял, править нужно следующий кусок кода в файле manufacturers.php:


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;
} else {
[/code]

Но я к сожалению не смог добиться положительного результата. Если не затруднит, может быть вы мне укажете что именно нужно подправить для замены текста на логотипы и избавления от столбика?

Буду крайне признателен

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

Что б были не в столбик, убери <br />

Что б была картинка, в SQL запрос добавь manufacturers_image.

т.е. вот так:


$manufacturers_query = "select distinct m.manufacturers_id, m.manufacturers_image, 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_list .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'"><img src="'.vam_image(DIR_WS_IMAGES . $manufacturers['manufacturers_image']).'">'.$manufacturers_name.'</a>';

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

Александр, спасибо за подсказку. Но мне почему-то кажется что во второй строчке, представленного вами кода какая-то синтаксическая ошибка. либо у меня что-то неправильно :(

Изминил кусок кода в боксе manufacturers, в соответствии с вашей инструкцией:

	$manufacturers_query = "select distinct m.manufacturers_id, m.manufacturers_image, 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']).'"><img src="'.vam_image(DIR_WS_IMAGES . $manufacturers['manufacturers_image']).'">'.$manufacturers_name.'</a>';[/code]

Но изображения выводятся не корректно, ссылка  на изображение имеет какой-то не совсем понятный для меня вид.

Своими силами разобраться в чем дело почему-то не получилось, поэтому в очередной раз взываю к вашей помощи :)

результат внесенных изменений со всеми косяками можно посмотреть на http://domtep.ru в центральной части сайта внизу.

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

Вот так попробуй поменять код, действительно ошибка небольшая была:


$manufacturers_list .= '<a href="'.vam_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.vam_image(DIR_WS_IMAGES . $manufacturers['manufacturers_image']).' '.$manufacturers_name.'</a>';
[/code]

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

manufacturers_name - название производителя.

manufacturers_description - описание производителя.

Просто добавить в sql запрос колонку.

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

Тогда нужно править запрос, добавлять таблицу TABLE_MANUFACTURERS_INFO

Пример запроса можно посмотреть например в /includes/modules/default.php

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

Меняя запрос на вот такой


$manufacturer_query = vamDBquery("select m.manufacturers_id, m.manufacturers_name,
m.manufacturers_image, mi.manufacturers_url, mi.manufacturers_description
from " . TABLE_MANUFACTURERS . " m left join " . TABLE_MANUFACTURERS_INFO . "
mi on (m.manufacturers_id = mi.manufacturers_id
and mi.languages_id = '" . (int)$_SESSION['languages_id'] . "'),
" . TABLE_PRODUCTS ." as p where m.manufacturers_id=p.manufacturers_id
order by m.manufacturers_name";
[/code]

Потом в $manufacturers_list добавляю $manufacturers['manufacturers_description']) . Не выводит. Где ступил, посмотрите?

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

Выглядит вроде правильно, может не тот кусок кода правите или не тот запрос.

Или может кэширование, попробуйте почистить папку /cache

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