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

Модуль Сравнение товаров


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

Подскаже, пожалуйста, как в "версии для печати" карточки товара вывести тех. параметры для модуля Сравнение товаров (не для TPT).

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

CyberW

А как с php, дружите хоть немного?!

Просто я вот писал как выводить тех. параметры в версии для печати для модуля TPT - http://vamshop.ru/support/modules/smf/index.php?topic=204.msg1306#msg1306

В принципе, тоже самое, только чуть поправить.

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

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

я по аналогии http://vamshop.ru/support/modules/smf/index.php?topic=204.msg1306#msg1306 начал делать, не получилось к сожалению, поэтому решил спросить

в файле compare.php нет кода $info_smarty->assign('MODULE_tpt',$module); чтоб его заменить, там есть $info->assign('MODULE_tpt',$product_info);

поэтому не понятно что менять и на что...

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

Вобщем, принцип тот же.

Копируй /includes/modules/compare.php в /includes/modules/compare_print.php

Открывай /includes/modules/compare_print.php

Внизу исправляй:


    $info->assign('MODULE_tpt',$product_info);

[/code] на:
[code]
    $vamTemplate->assign('MODULE_tpt',$product_info);

Теперь нужно добавить подключение compare_print.php на страницу версия для печати, открывай /print_product_info.php После:

$vamTemplate->assign('PRODUCTS_PRICE', $products_price['formated']);
[/code] Добавляй:
[code]
include (DIR_WS_MODULES . 'compare_print.php');
и последнее, нужно просто добавить метку:

{$MODULE_tpt}
[/code]

в шаблон страницы версия для печати - /templates/шаблон/module/print_product_info.html

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

Большое спасибо, получилось!

Но есть одна проблема, при выводе страницы print_product_info.php, не учитывается файл шаблона ..\my_template\module\product_parameters.html который отвечает за вывод характеристик у карточки товара, можно его как то подключить ?

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

Почему, учитывает.

Посмотри в /includes/modules/compare_print.php

Поищи там по .html

т.е. метка {$MODULE_tpt} строится по шаблону /templates/шаблон/module/product_parameters.html

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

Посмотрел шаблон /templates/шаблон/module/product_parameters.html, там оказывается нет подгрузки стилей css, поэтому небыло нужного оформления.

Есть пожелание изменить сам модуль "Сравнение товаров", в частности расширить поле для хранения значений характеристик до уровня mediumtext вместо varchar(255), а то не помещаются некоторые значения характеристик товара. Для уже установленного модуля можно обновить базу этой командой:

ALTER TABLE `products_compare_parameters2products` CHANGE `products_parameters2products_value` `products_parameters2products_value` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci

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

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

CyberW

Я даже и не знаю, стоит ли на mediumtext менять.

Пусть пока останется 255 символов.

Если что, я на твой совет буду ссылку давать.

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

Так же нужно расширить размер поля products_parameters2products_order, т.к. в нем максимальное возможное значение это 127, а если характеристик больше, то сортировка не работает.

Для расширения поля products_parameters2products_order необходимо выполнить следующий код для MySql:

ALTER TABLE `products_compare_parameters2products` CHANGE `products_parameters2products_order` `products_parameters2products_order` INT( 5 ) DEFAULT '0'

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

Время от времени в логах появляются ошибки в модуле "Сравнение товаров".

Вот лог:

24/03/2008 06:03:20 | 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') and pp.products_parameters_id is not null and products_parameters_order >= 0 a' at line 1 | SELECT * FROM products_compare_parameters2products as pp2p LEFT JOIN products_compare_parameters as pp using(products_parameters_id) WHERE products_id IN () and pp.products_parameters_id is not null and products_parameters_order >= 0 and products_parameters2products_order >= 0 order by IF(products_parameters2products_order > 0, products_parameters2products_order, products_parameters_order) | /print_product_info.php/products_id/templates/my_template/db_error.html
Этот sql запрос находится в файлах: \includes\modules\product_compare.php и \includes\modules\compare.php Ошибка возникает из-за того что в sql запрос передается пустой параметр, в этом месте -
(".implode(", ", $c_id).")
Нужно добавить проверку количества элементов в массиве $c_id:
count($c_id)>0
Вот исправленный кусок кода, примерно 60строка в этих файлах:
if (count($c_id)>0) {    
$parameters_query = vamDBquery("SELECT * FROM " . TABLE_PRODUCTS_COMPARE_PARAMETERS2PRODUCTS . " as pp2p LEFT JOIN " . TABLE_PRODUCTS_COMPARE_PARAMETERS . " as pp using(products_parameters_id) WHERE products_id IN (".implode(", ", $c_id).") and pp.products_parameters_id is not null and products_parameters_order >= 0 and products_parameters2products_order >= 0 order by IF(products_parameters2products_order > 0, products_parameters2products_order, products_parameters_order)");
}[/code]

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