|
aleks_yug
|
 |
« : 16.06.2011, 20:52:37 » |
|
Уважаемые коллеги, тем, кто использует в своей работе VirtueMart, возможно этот модуль покажется функциональным. Собственно, эта функция прекрасно работает во всех версиях VM1.1.1.X, но не позволяет вывести просмотренные пользователем товары на любой странице сайта (т.е. в отдельном модуле), только на главной VM, в browse, и на карточках товара. В процессе работы на сайтом заказчика возникла необходимость вывода этих товаров в отдельном модуле - именно эта проблема тут и решается. Функционал очень простой: просмотренные продукты выводятся списком ссылок на них, в случае, если клиент не просматривал флай, выводится сообщение об отсутствии просмотренных товаров. (содержание сообщения настраивается в админке модуля - можно использовать html). Картинки товара, корзину, свойства и прочие фишки не добавлял - просто не вижу смысла, модуль явно не для этого... Но, в принципе и это возможно. Как и в функционале компонента, просмотренные товары сохраняются в браузере пользователя на время, указываемое в настройках (в админке модуля). По сути, это модуль написанный Марти Теннисоном для VM1.0.X и слегка переделанный и адаптированный для VM1.1.X (плюс переведенный). Спасибо ему!
PS, не подключал css-файл дабы не плодить еще один (их и так достаточно...) Просто к тегу <Li> подставил стили (строка 34). Естественно, не сложно сделать по своему образу и подобию... Буду рад, если кому-нибудь пригодится. И последнее - не исключенно, что такая тема уже есть на форуме, просто мне не попалась на глаза (только по VM1.0). Если это так -сильно не пинайте...
PPS, Важно! Заметил весьма своеобразный глюк - если на машине клиента установлен apache (денвер, в частности) модуль не показывает товары в IE всех версий в online-режиме (сервак, естественно выключен). На локали все работает без проблем. Если клиент не занимается веб разработкой (т.е. апача на машинке нет) IE не выступает. Как это происходит - ума не приложу, касается только этого модуля. Тем не менее все работает исправно, просто нужно иметь это ввиду. Со страхом жду появления еще одного IE от дяди Билла!
|
|
|
|
« Последнее редактирование: 22.01.2012, 15:40:59 от aleks_yug »
|
Записан
|
|
|
|
| |
dim66
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Сообщений: 48
|
 |
« Ответ #1 : 05.07.2011, 15:03:03 » |
|
Отличный модуль! Спасибо.  И вопрос - когда выводится страница с просмотренным товаром (карточка товара) высвечивается для моего сайта лишнее: 1. "Задайте вопрос по этому товару" 2. На складе: ..... Подскажите, пожалуйста, как убрать?
|
|
|
|
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #2 : 05.07.2011, 15:19:13 » |
|
Отличный модуль! Спасибо.  И вопрос - когда выводится страница с просмотренным товаром (карточка товара) высвечивается для моего сайта лишнее: 1. "Задайте вопрос по этому товару" 2. На складе: ..... Подскажите, пожалуйста, как убрать? Найдите в файле: mod_virtuemart1.1.x_recently_viewed_products.php на 55 строке фрагмент кода в ссылке: flypage=flypage.tplИ укажите тот флай товара, который вы используете. Предположим flypage-ask.tpl Тогда будет так: flypage=flypage-ask.tpl
|
|
|
|
|
Записан
|
|
|
|
dim66
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Сообщений: 48
|
 |
« Ответ #3 : 05.07.2011, 15:31:49 » |
|
Ура! Заработало как надо! aleks_yug Еще раз огромное спасибо!
|
|
|
|
|
Записан
|
|
|
|
TULLIVER
Захожу иногда

Репутация: +2/-0
Offline
Сообщений: 16
|
 |
« Ответ #4 : 26.07.2011, 08:46:14 » |
|
спасибо, нужная штука )))))
|
|
|
|
|
Записан
|
|
|
|
77j7
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 14
|
 |
« Ответ #5 : 18.08.2011, 05:14:27 » |
|
Огромное человеческое СПАСИБО!
Вот если бы картинки товара научить его отображать..... цены не было бы!
|
|
|
|
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #6 : 18.08.2011, 09:37:50 » |
|
Огромное человеческое СПАСИБО!
Вот если бы картинки товара научить его отображать..... цены не было бы!
К запросам в строках 40 и 76 (если не ошибаюсь) добавляем product_thumb_imageбудет выглядеть так: $q = "select product_name, product_thumb_image FROM #__{vm}_product "; После: $name2 = $row1->product_name; (кажется 46 строка в коде) Добавить: $name3 = $row1->product_thumb_image;И в эхо сделать небольшое дополнение: echo '<div><a href="'.$mosConfig_live_site.'/index.php?option=com_virtuemart&page=shop.product_details&flypage=flypage.tpl&product_id='.$product2_id.'&category_id='.$category2_id.'">'.$name2.'<br />'.ps_product::image_tag($name3, "title=\"".$name2."\"").'</a></div>'."\n";Ну вот как-то так... И будут картинки 
|
|
|
|
|
Записан
|
|
|
|
|
jurassik
|
 |
« Ответ #7 : 28.08.2011, 02:29:30 » |
|
К запросам в строках 40 и 76 (если не ошибаюсь) добавляем product_thumb_imageбудет выглядеть так: $q = "select product_name, product_thumb_image FROM #__{vm}_product "; После: $name2 = $row1->product_name; (кажется 46 строка в коде) Добавить: $name3 = $row1->product_thumb_image;И в эхо сделать небольшое дополнение: echo '<div><a href="'.$mosConfig_live_site.'/index.php?option=com_virtuemart&page=shop.product_details&flypage=flypage.tpl&product_id='.$product2_id.'&category_id='.$category2_id.'">'.$name2.'<br />'.ps_product::image_tag($name3, "title=\"".$name2."\"").'</a></div>'."\n";Ну вот как-то так... И будут картинки  можно выложить версию 1.2, с цитируемыми изменениями. \\внес как сказано выше, в результате картинка и название ссылки одинаковые у всех выводимых товаров (причем данный товар вообще не был выбран), но сама ссылка рабочая как надо.
|
|
|
|
« Последнее редактирование: 28.08.2011, 02:33:48 от jurassik »
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #8 : 28.08.2011, 10:52:15 » |
|
Проверил еще раз изменения в коде - все работает! По всей видимости, jurassik, где-то при вставке сделал ошибку... Вот полный код файла с изменениями для картинок: <?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
global $mosConfig_absolute_path, $product_id, $dd_list; // Load the VirtueMart main parse code if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) { require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' ); } else { require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' ); }
require_once(CLASSPATH.'ps_product.php'); $ps_product = new ps_product;
require_once(CLASSPATH.'ps_product_category.php'); $ps_product_category = new ps_product_category;
$db=new ps_DB;
$cookie_expire = trim($params->get ('cookie_expire', 3600)); $max_numb = trim($params->get ('max_numb', 20));//maximum number of links $pre_content_template = trim($params->get ('pre_content_template', " "));
$rvp_bmb_list = vmGet( $_COOKIE, "rvp_bmb", '' ); if($rvp_bmb_list) { $rvp_bmb_list2 = explode("|", $rvp_bmb_list); $n = count($rvp_bmb_list2); if($n >$max_numb) $n = $max_numb; //echo "<ul>\n"; $t =1; for($i = 0; $i < $n; $i++) {
$product2_id = $rvp_bmb_list2[$i]; echo "<li style='margin-left:15px; font-size:11px; border-bottom:1px dashed #999999;'>\n"; if($i == 0) { $rvp_bmb_list3 = $product2_id; } else { $rvp_bmb_list3 .='|'.$product2_id; } $q = "select product_name, product_thumb_image FROM #__{vm}_product "; $q .= "WHERE product_id = '".$product2_id."' "; $q .= "and product_publish = 'Y'"; $db->setQuery( $q ); $rows = $db->loadObjectList(); foreach ($rows as $row1) { $name2 = $row1->product_name; $name3 = $row1->product_thumb_image; }
$q = "select category_id FROM #__{vm}_product_category_xref "; $q .= "WHERE product_id = '".$product2_id."' "; $q .= "and product_publish = 'Y'"; $db->setQuery( $q ); $rows = $db->loadObjectList();
echo '<div><a href="'.$mosConfig_live_site.'/index.php?option=com_virtuemart&page=shop.product_details&flypage=flypage.tpl&product_id='.$product2_id.'&category_id='.$category2_id.'">'.$name2.'<br />'.ps_product::image_tag($name3, "title=\"".$name2."\"").'</a></div>'."\n"; if($product2_id == $product_id) { $t = 2; } } echo '</li>'."\n"; //echo '</ul>'."\n"; if($product_id != 0){ $rvp_bmb_list = $product_id.'|'; } else { $rvp_bmb_list = ''; } $rvp_bmb_list .= $rvp_bmb_list3; // echo $rvp_bmb_list; if ($t == 1) setcookie('rvp_bmb', $rvp_bmb_list, time()+$cookie_expire,'/'); } else { $rvp_bmb_list =$product_id ; setcookie('rvp_bmb', $rvp_bmb_list, time()+$cookie_expire,'/');
if ($product_id != 0 ) { $q = "select product_name, product_thumb_image FROM #__{vm}_product "; $q .= "WHERE product_id = '".$product_id."' "; $q .= "and product_publish = 'Y'"; $db->setQuery( $q ); $rows = $db->loadObjectList(); foreach ($rows as $row1) { $name = $row1->product_name; }
$q = "select category_id FROM #__{vm}_product_category_xref "; $q .= "WHERE product_id = '".$product_id."' "; $q .= "and product_publish = 'Y'"; $db->setQuery( $q ); $rows = $db->loadObjectList(); } else{ echo $pre_content_template; } } ?> <br>
|
|
|
|
|
Записан
|
|
|
|
|
jurassik
|
 |
« Ответ #9 : 28.08.2011, 11:31:48 » |
|
спасибо, работает 
|
|
|
|
|
Записан
|
|
|
|
|
jurassik
|
 |
« Ответ #10 : 31.08.2011, 15:41:34 » |
|
Количество отображаемых товаров : выставлено 3, отображает намного больше
|
|
|
|
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #11 : 31.08.2011, 16:22:34 » |
|
Количество отображаемых товаров : выставлено 3, отображает намного больше
Найдите строку: $max_numb = trim($params->get ('max_numb', 20)); Выставите сколько нужно, вместо 20 Почему не генерит, не проверял пока...
|
|
|
|
|
Записан
|
|
|
|
|
jurassik
|
 |
« Ответ #12 : 31.08.2011, 18:00:45 » |
|
Найдите строку: $max_numb = trim($params->get ('max_numb', 20)); Выставите сколько нужно, вместо 20 Почему не генерит, не проверял пока...
работает, спасибо
|
|
|
|
|
Записан
|
|
|
|
dim66
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Сообщений: 48
|
 |
« Ответ #13 : 13.09.2011, 12:08:31 » |
|
работает как положено. Но есть еще один маааааленький косяк. При отладке системы, если на центральной странице отображаются просмотренные товары, выскакивает ошибка сервера: 500 - JDatabaseMySQL::query: 1054 хотя возможно это только у меня.... В любом случае, автору +
|
|
|
|
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #14 : 13.09.2011, 20:58:52 » |
|
работает как положено. Но есть еще один маааааленький косяк. При отладке системы, если на центральной странице отображаются просмотренные товары, выскакивает ошибка сервера: 500 - JDatabaseMySQL::query: 1054 хотя возможно это только у меня.... В любом случае, автору +
Вообще-то странно... Проверил на сайте, кот. совсем недавно сдал заказчику (работает именно этот модуль с показом картинок). Никаких ошибок на главной VM не показывает (если имеете ввиду именно это). Можете проверить: as-mobile.ru (не в качестве рекламы!) PS, ВРУ! В режиме отладки есть такая фишка - причину пока не искал, но на работе модуля (как и всего сайта) без режима отладки никак не сказывается. Думаю можно смело ставить...
|
|
|
|
« Последнее редактирование: 13.09.2011, 21:06:23 от aleks_yug »
|
Записан
|
|
|
|
orexov_m
Давно я тут
  
Репутация: +5/-0
Offline
Пол: 
Сообщений: 213
|
 |
« Ответ #15 : 16.09.2011, 13:19:00 » |
|
странно, но модуль работает только в ие. а в фф 6 не показывает  может подскажите как поправить? сайт http://prof-66.ru
|
|
|
|
|
Записан
|
|
|
|
|
jurassik
|
 |
« Ответ #16 : 16.09.2011, 13:28:25 » |
|
у меня версия фф 6.0.2 - модуль работает, как и во всех других браузерах
|
|
|
|
|
Записан
|
|
|
|
|
|
Tokyo
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 92
|
 |
« Ответ #18 : 22.09.2011, 12:57:12 » |
|
А можно сделать переобразования модуля в популярные за неделю товары? вывести например 10 самых "просматреваемых" ? я знаю есть подобный но он выводит популярные с заказов но это немног оне то, человек может без корзины по телефону купить, а просмотры лучше
|
|
|
|
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #19 : 22.09.2011, 14:58:15 » |
|
А можно сделать переобразования модуля в популярные за неделю товары? вывести например 10 самых "просматреваемых" ? я знаю есть подобный но он выводит популярные с заказов но это немног оне то, человек может без корзины по телефону купить, а просмотры лучше
Думаю, не имеет смысл переделывать этот модуль. Есть варианты, заточенные под такую задачу в значительно большей степени. Например, модуль от beliyadm, с добавлением функционала (публикация товаров по ID - проставляется в админке модуля, ajax-корзина и пр...) Лишние украшения из него убрать не сложно и довести в результате до такого состояния (смотреть модуль Самые популярные). Кстати, здесь же можно глянуть и на последние изменения в модуле недавно просмотренных товаров (не в качестве рекламы - это все равно тестовый субдомен). Сама тема тут: http://joomlaforum.ru/index.php/topic,71309.msg794257.html#msg794257
|
|
|
|
|
Записан
|
|
|
|
mandrik
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 106
|
 |
« Ответ #20 : 18.10.2011, 19:43:28 » |
|
Спасибо! Отличный модуль!
|
|
|
|
|
Записан
|
|
|
|
Serhio
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 40
|
 |
« Ответ #21 : 04.12.2011, 01:39:43 » |
|
У меня в модуле перед каждым просмотренным товаром вылезают ошибки следующего плана: No valid database connection Unknown column 'product_publish' in 'where clause' SQL=select category_id FROM jos_vm_product_category_xref WHERE product_id = '146' and product_publish = 'Y' Подскажите как с этим бороццо.
|
|
|
|
|
Записан
|
|
|
|
xaocbozzz
Осваиваюсь на форуме
 
Репутация: +7/-0
Offline
Сообщений: 198
Котэ просит! Не обижайте котэ!
|
 |
« Ответ #22 : 20.12.2011, 11:25:59 » |
|
А как бы автоматически укорачивать наименование товаров? Хочу вывести в позицию LEFT - но ширина колонки слишком мала. Наименование товара переносится вниз на следующую строку. Выглядит не красиво. Что и где прописать? Например: Автохолодильник Takoy-to 33412-b со встроенным стаканодержателем Нужно: Автохолодильник Takoy-to 33412-b Или: Автохолодильник Takoy-to 334... Или какие-либо другие варианты.
|
|
|
|
|
Записан
|
|
|
|
dreamod
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 22
|
 |
« Ответ #23 : 25.12.2011, 20:15:00 » |
|
Товарищи! Ни как не могу заставить работать этот модуль!( Модуль включаю, а на странице выводится только его название и все... Joomla 1.1.15 вирт 1.1.14
|
|
|
|
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #24 : 25.12.2011, 20:37:01 » |
|
Товарищи! Ни как не могу заставить работать этот модуль!( Модуль включаю, а на странице выводится только его название и все... Joomla 1.1.15 вирт 1.1.14
Во-первых - какая-то странная сборочка у Вас! А во-вторых не спешите пока модуль использовать на рабочем сайте. Не пойму пока, в чем дело, но в IE проблемы (в отличие от firefox). Просто сейчас не времени им заняться вплотную.
|
|
|
|
|
Записан
|
|
|
|
xaocbozzz
Осваиваюсь на форуме
 
Репутация: +7/-0
Offline
Сообщений: 198
Котэ просит! Не обижайте котэ!
|
 |
« Ответ #25 : 03.01.2012, 05:27:17 » |
|
Во-первых - какая-то странная сборочка у Вас!
Чего странного? У меня: Joomla 1.5.12 vm 1.1.3 и есть весомые причины, чтобы не менять версии.
|
|
|
|
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #26 : 03.01.2012, 10:36:10 » |
|
Чего странного? У меня: Joomla 1.5.12 vm 1.1.3 и есть весомые причины, чтобы не менять версии.
dreamod указал: Joomla 1.1.15 вирт 1.1.14 А против 1.5.12 и vm 1.1.3 - никаких возражений и быть не может! Что касается некорректной работы в IE - ориентировался на то, что получается в результате у меня (на локалке никаких проблем, а на рабочих, на нескольких сайтах один и тот же результат - в выдаче пусто, но только в IE). Не исключенно, что проблемы с настройками на хосте. Проверьте у себя - если все в порядке, значит глюки только у меня. Тогда можно смело использовать...
|
|
|
|
|
Записан
|
|
|
|
|
Ecspert
|
 |
« Ответ #27 : 22.01.2012, 12:56:53 » |
|
Проверил еще раз изменения в коде - все работает! По всей видимости, jurassik, где-то при вставке сделал ошибку... Вот полный код файла с изменениями для картинок: <?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
global $mosConfig_absolute_path, $product_id, $dd_list; // Load the VirtueMart main parse code if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) { require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' ); } else { require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' ); }
require_once(CLASSPATH.'ps_product.php'); $ps_product = new ps_product;
require_once(CLASSPATH.'ps_product_category.php'); $ps_product_category = new ps_product_category;
$db=new ps_DB;
$cookie_expire = trim($params->get ('cookie_expire', 3600)); $max_numb = trim($params->get ('max_numb', 20));//maximum number of links $pre_content_template = trim($params->get ('pre_content_template', " "));
$rvp_bmb_list = vmGet( $_COOKIE, "rvp_bmb", '' ); if($rvp_bmb_list) { $rvp_bmb_list2 = explode("|", $rvp_bmb_list); $n = count($rvp_bmb_list2); if($n >$max_numb) $n = $max_numb; //echo "<ul>\n"; $t =1; for($i = 0; $i < $n; $i++) {
$product2_id = $rvp_bmb_list2[$i]; echo "<li style='margin-left:15px; font-size:11px; border-bottom:1px dashed #999999;'>\n"; if($i == 0) { $rvp_bmb_list3 = $product2_id; } else { $rvp_bmb_list3 .='|'.$product2_id; } $q = "select product_name, product_thumb_image FROM #__{vm}_product "; $q .= "WHERE product_id = '".$product2_id."' "; $q .= "and product_publish = 'Y'"; $db->setQuery( $q ); $rows = $db->loadObjectList(); foreach ($rows as $row1) { $name2 = $row1->product_name; $name3 = $row1->product_thumb_image; }
$q = "select category_id FROM #__{vm}_product_category_xref "; $q .= "WHERE product_id = '".$product2_id."' "; $q .= "and product_publish = 'Y'"; $db->setQuery( $q ); $rows = $db->loadObjectList();
echo '<div><a href="'.$mosConfig_live_site.'/index.php?option=com_virtuemart&page=shop.product_details&flypage=flypage.tpl&product_id='.$product2_id.'&category_id='.$category2_id.'">'.$name2.'<br />'.ps_product::image_tag($name3, "title=\"".$name2."\"").'</a></div>'."\n"; if($product2_id == $product_id) { $t = 2; } } echo '</li>'."\n"; //echo '</ul>'."\n"; if($product_id != 0){ $rvp_bmb_list = $product_id.'|'; } else { $rvp_bmb_list = ''; } $rvp_bmb_list .= $rvp_bmb_list3; // echo $rvp_bmb_list; if ($t == 1) setcookie('rvp_bmb', $rvp_bmb_list, time()+$cookie_expire,'/'); } else { $rvp_bmb_list =$product_id ; setcookie('rvp_bmb', $rvp_bmb_list, time()+$cookie_expire,'/');
if ($product_id != 0 ) { $q = "select product_name, product_thumb_image FROM #__{vm}_product "; $q .= "WHERE product_id = '".$product_id."' "; $q .= "and product_publish = 'Y'"; $db->setQuery( $q ); $rows = $db->loadObjectList(); foreach ($rows as $row1) { $name = $row1->product_name; }
$q = "select category_id FROM #__{vm}_product_category_xref "; $q .= "WHERE product_id = '".$product_id."' "; $q .= "and product_publish = 'Y'"; $db->setQuery( $q ); $rows = $db->loadObjectList(); } else{ echo $pre_content_template; } } ?> <br>
Virtuemart 1.1.8, скопировал этот код, заменил tpl на свой, но отображается такая ошибка: No valid database connection Unknown column 'product_publish' in 'where clause' SQL=select category_id FROM jos_vm_product_category_xref WHERE product_id = '1728' and product_publish = 'Y' удалил product_publish в файле в четырёх местах, ошибка пропала, что эта функция означает?
|
|
|
|
« Последнее редактирование: 22.01.2012, 13:38:01 от Ecspert »
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #28 : 22.01.2012, 13:03:08 » |
|
Virtuemart 1.1.4, скопировал этот код, заменил tpl на свой, но отображается такая ошибка: No valid database connection Unknown column 'product_publish' in 'where clause' SQL=select category_id FROM jos_vm_product_category_xref WHERE product_id = '1728' and product_publish = 'Y' удалил product_publish в файле в четырёх местах, ошибка пропала, что эта функция означает? product_publish - опубликованные товары.проверять нужно здесь. Смотрел на какой версии VM?
|
|
|
|
|
Записан
|
|
|
|
|
aleks_yug
|
 |
« Ответ #29 : 22.01.2012, 13:13:14 » |
|
Проверил сейчас на сайте - все работает! Только вывод подкорректировать... Я смотрю, тоже highslide используешь. к модулю тоже можно привентить...
PS, проверил и в IE8 - тоже работает, что меня очень радует (значит проблемы с IE были только на моем хосте - я писал об этом) Но в IE есть проблемы при загруке страниц, хотя и работает. Но тут все проверять нужно - это не вопрос конкретно этого модуля.
Удалил адрес
|
|
|
|
« Последнее редактирование: 22.01.2012, 13:29:41 от aleks_yug »
|
Записан
|
|
|
|
|