SOFAD 0 Опубликовано 31 марта, 2008 Жалоба Share Опубликовано 31 марта, 2008 Добрый день. Возник вот небольшой вопрос, который самостоятельно решить не удалось. Каким образом можно вывести полный список производителей на всех страницах сайта? Т.е. чтобы где-нибудь в районе footer'а отображались иконки производителей. Я пытался исправлять шаблон бокса manufacturers и помещать его в нужное место (пока правда не получилось). Может быть есть какой-нибудь более логичный метод для реализации этой прихоти? ) Если нет, то как сделать чтобы в боксе "производители" список выводился не в виде drop-down меню, а в строчку? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 31 марта, 2008 Жалоба Share Опубликовано 31 марта, 2008 Нужно поправить исходный код бокса производители - /templates/шаблон/source/boxes/manufacturers.php т.е. сделать вывод производителетей в виде ссылок, а не drop-down. А затем в /templates/шаблон/index.html метку {$box_MANUFACTURERS} поставить внизу. Вот как-то так. Ссылка на сообщение Поделиться на другие сайты
SOFAD 0 Опубликовано 31 марта, 2008 Автор Жалоба Share Опубликовано 31 марта, 2008 Александр, я конечно прошу прощения за навящевость, но как ни бился, моё незнание 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]Но я к сожалению не смог добиться положительного результата. Если не затруднит, может быть вы мне укажете что именно нужно подправить для замены текста на логотипы и избавления от столбика?Буду крайне признателен Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 апреля, 2008 Жалоба Share Опубликовано 1 апреля, 2008 Что б были не в столбик, убери <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>'; Ссылка на сообщение Поделиться на другие сайты
SOFAD 0 Опубликовано 1 апреля, 2008 Автор Жалоба Share Опубликовано 1 апреля, 2008 Александр, спасибо за подсказку. Но мне почему-то кажется что во второй строчке, представленного вами кода какая-то синтаксическая ошибка. либо у меня что-то неправильно :( Изминил кусок кода в боксе 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 в центральной части сайта внизу. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 апреля, 2008 Жалоба Share Опубликовано 2 апреля, 2008 Вот так попробуй поменять код, действительно ошибка небольшая была: $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] Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 8 февраля, 2010 Жалоба Share Опубликовано 8 февраля, 2010 Ребята, подскажите запрос, чтоб сюда добавить еще и описание производителя. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 февраля, 2010 Жалоба Share Опубликовано 8 февраля, 2010 manufacturers_name - название производителя. manufacturers_description - описание производителя. Просто добавить в sql запрос колонку. Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 8 февраля, 2010 Жалоба Share Опубликовано 8 февраля, 2010 manufacturers_description вроде в другой таблице... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 февраля, 2010 Жалоба Share Опубликовано 8 февраля, 2010 Тогда нужно править запрос, добавлять таблицу TABLE_MANUFACTURERS_INFO Пример запроса можно посмотреть например в /includes/modules/default.php Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 8 февраля, 2010 Жалоба Share Опубликовано 8 февраля, 2010 Меняя запрос на вот такой $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']) . Не выводит. Где ступил, посмотрите? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 февраля, 2010 Жалоба Share Опубликовано 8 февраля, 2010 Выглядит вроде правильно, может не тот кусок кода правите или не тот запрос. Или может кэширование, попробуйте почистить папку /cache Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения