0 Пользователей и 1 Гость просматривают эту тему.
  • 97 Ответов
  • 25722 Просмотров
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Уважаемые коллеги, тем, кто использует в своей работе 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

  • Осваиваюсь на форуме
  • 49
  • 4 / 0
Отличный модуль! Спасибо. ^-^
И вопрос - когда выводится страница с просмотренным товаром (карточка товара) высвечивается для моего сайта лишнее:
1. "Задайте вопрос по этому товару"
2. На складе: .....
Подскажите, пожалуйста, как убрать?
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Отличный модуль! Спасибо. ^-^
И вопрос - когда выводится страница с просмотренным товаром (карточка товара) высвечивается для моего сайта лишнее:
1. "Задайте вопрос по этому товару"
2. На складе: .....
Подскажите, пожалуйста, как убрать?
Найдите в файле: mod_virtuemart1.1.x_recently_viewed_products.php на 55 строке фрагмент кода в ссылке:
flypage=flypage.tpl
И укажите тот флай товара, который вы используете. Предположим flypage-ask.tpl
Тогда будет так: flypage=flypage-ask.tpl
*

dim66

  • Осваиваюсь на форуме
  • 49
  • 4 / 0
Ура! Заработало как надо! aleks_yug Еще раз огромное спасибо!
*

TULLIVER

  • Осваиваюсь на форуме
  • 26
  • 6 / 0
спасибо, нужная штука )))))
*

77j7

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Огромное человеческое СПАСИБО!

Вот если бы картинки товара научить его отображать..... цены не было бы!
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Огромное человеческое СПАСИБО!

Вот если бы картинки товара научить его отображать..... цены не было бы!
К запросам в строках 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&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;product_id='.$product2_id.'&category_id='.$category2_id.'">'.$name2.'<br />'.ps_product::image_tag($name3, "title=\"".$name2."\"").'</a></div>'."\n";

Ну вот как-то так... И будут картинки ^-^
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
К запросам в строках 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&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;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

  • Давно я тут
  • 628
  • 83 / 0
Проверил еще раз изменения в коде - все работает! По всей видимости, 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&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;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

  • Давно я тут
  • 689
  • 52 / 1
спасибо, работает :D
сам шучу - сам смеюсь
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
Количество отображаемых товаров :
выставлено 3, отображает намного больше
сам шучу - сам смеюсь
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Количество отображаемых товаров :
выставлено 3, отображает намного больше
Найдите строку:
$max_numb = trim($params->get ('max_numb', 20));
Выставите сколько нужно, вместо 20
Почему не генерит, не проверял пока...
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
Найдите строку:
$max_numb = trim($params->get ('max_numb', 20));
Выставите сколько нужно, вместо 20
Почему не генерит, не проверял пока...
работает, спасибо
сам шучу - сам смеюсь
*

dim66

  • Осваиваюсь на форуме
  • 49
  • 4 / 0
работает как положено. Но есть еще один маааааленький косяк. При отладке системы, если на центральной странице отображаются просмотренные товары, выскакивает ошибка сервера:
500 - JDatabaseMySQL::query: 1054
хотя возможно это только у меня....
В любом случае, автору +
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
работает как положено. Но есть еще один маааааленький косяк. При отладке системы, если на центральной странице отображаются просмотренные товары, выскакивает ошибка сервера:
500 - JDatabaseMySQL::query: 1054
хотя возможно это только у меня....
В любом случае, автору +

Вообще-то странно... Проверил на сайте, кот. совсем недавно сдал заказчику (работает именно этот модуль с показом картинок).
Никаких ошибок на главной VM не показывает (если имеете ввиду именно это). Можете проверить: as-mobile.ru (не в качестве рекламы!)

PS, ВРУ! В режиме отладки есть такая фишка - причину пока не искал, но на работе модуля (как и всего сайта) без режима отладки никак не сказывается. Думаю можно смело ставить...
« Последнее редактирование: 13.09.2011, 21:06:23 от aleks_yug »
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
странно, но модуль работает только в ие.
а в фф 6 не показывает :(
может подскажите как поправить?
сайт http://prof-66.ru
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
у меня версия фф 6.0.2 - модуль работает, как и во всех других браузерах
сам шучу - сам смеюсь
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
та же версия но не работает отображение :(
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Tokyo

  • Захожу иногда
  • 87
  • 5 / 0
А можно сделать переобразования модуля в популярные за неделю товары? вывести например 10 самых "просматреваемых" ? я знаю есть подобный но он выводит популярные с заказов но это немног оне то, человек может без корзины по телефону купить, а просмотры лучше
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
А можно сделать переобразования модуля в популярные за неделю товары? вывести например 10 самых "просматреваемых" ? я знаю есть подобный но он выводит популярные с заказов но это немног оне то, человек может без корзины по телефону купить, а просмотры лучше
Думаю, не имеет смысл переделывать этот модуль. Есть варианты, заточенные под такую задачу в значительно большей степени.
Например, модуль от beliyadm, с добавлением функционала (публикация товаров по ID - проставляется в админке модуля, ajax-корзина и пр...) Лишние украшения из него убрать не сложно и довести в результате до такого состояния (смотреть модуль Самые популярные). Кстати, здесь же можно глянуть и на последние изменения в модуле недавно просмотренных товаров (не в качестве рекламы - это все равно тестовый субдомен).
Сама тема тут:
http://joomlaforum.ru/index.php/topic,71309.msg794257.html#msg794257
*

mandrik

  • Захожу иногда
  • 78
  • 0 / 0
Спасибо! Отличный модуль!
*

Serhio

  • Захожу иногда
  • 67
  • 0 / 0
У меня в модуле перед каждым просмотренным товаром вылезают ошибки следующего плана:
Цитировать
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

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
А как бы автоматически укорачивать наименование товаров?
Хочу вывести в позицию LEFT - но ширина колонки слишком мала. Наименование товара переносится вниз на следующую строку. Выглядит не красиво. Что и где прописать?
Например: Автохолодильник Takoy-to 33412-b со встроенным стаканодержателем
Нужно: Автохолодильник Takoy-to 33412-b
Или: Автохолодильник Takoy-to 334...
Или какие-либо другие варианты.
*

dreamod

  • Захожу иногда
  • 82
  • 2 / 0
Товарищи! Ни как не могу заставить работать этот модуль!( Модуль включаю, а на странице выводится только его название и все... Joomla 1.1.15 вирт 1.1.14
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Товарищи! Ни как не могу заставить работать этот модуль!( Модуль включаю, а на странице выводится только его название и все... Joomla 1.1.15 вирт 1.1.14
Во-первых - какая-то странная сборочка у Вас! А во-вторых не спешите пока модуль использовать на рабочем сайте. Не пойму пока, в чем дело, но в IE проблемы (в отличие от firefox). Просто сейчас не времени им заняться вплотную.
*

xaocbozzz

  • Захожу иногда
  • 205
  • 8 / 0
  • Котэ просит! Не обижайте котэ!
Во-первых - какая-то странная сборочка у Вас!
Чего странного? У меня: Joomla 1.5.12 vm 1.1.3 и есть весомые причины, чтобы не менять версии.
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Чего странного? У меня: 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

  • Захожу иногда
  • 426
  • 12 / 0
Проверил еще раз изменения в коде - все работает! По всей видимости, 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&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;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

  • Давно я тут
  • 628
  • 83 / 0
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

  • Давно я тут
  • 628
  • 83 / 0
Проверил сейчас на сайте - все работает! Только вывод подкорректировать...
Я смотрю, тоже highslide используешь. к модулю тоже можно привентить...

PS, проверил и в IE8 - тоже работает, что меня очень радует (значит проблемы с IE были только на моем хосте - я писал об этом)
Но в IE есть проблемы при загруке страниц, хотя и работает. Но тут все проверять нужно - это не вопрос конкретно этого модуля.

Удалил адрес
« Последнее редактирование: 22.01.2012, 13:29:41 от aleks_yug »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 22223
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 10000
Последний ответ 14.01.2021, 00:09:53
от gartes
Как реализовать: товары, которых нет в наличии в конец списка категории?

Автор Girevik

Ответов: 1
Просмотров: 1290
Последний ответ 02.11.2017, 10:52:04
от P_B
[Решено] Чебокс "Показывать только товары, которые есть в наличии"

Автор artMelnikov

Ответов: 20
Просмотров: 7273
Последний ответ 28.06.2017, 11:19:51
от OutLaw1
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 52172
Последний ответ 05.02.2017, 11:44:02
от Super_Panda