×
Внимание, мошенник-работодатель (10 авг 2017)

Вниманию программистов Санкт-Петербурга, на SuperJob-е вновь активизировался Семен Григорьевич Шумейко..

Вопрос Модуль вывода просмотренных товаров для VirtueMart

Больше
4 года 6 мес. назад - 4 года 6 мес. назад #1 от Aleksej
Aleksej создал эту тему: Модуль вывода просмотренных товаров для VirtueMart
Вашему вниманию - модуль вывода недавно просмотренных товаров для VirtueMart (тесты - Joomla 2.5.9, VirtueMart 2.0.18a).

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

Использовать на своем сайте очень несложно: создаем mod_custom с кодом вызова, который публикуем в любой позиции модуля; там, где считаем нужным:

<?php
//echo getcwd(); 
include('test.php');
?>

А сам файл test.php (ну, переименуйте как вам захочется) - расположен в корне сайта и выглядит вот эдаким монстром ( можно скачать по ссылке ):

<?php
//exit('qaz1');

error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('display_startup_errors', true);

//phpinfo();
//echo '<pre><xmp>';
//var_dump(get_defined_vars());
//echo '</xmp></pre>';
//return;
//file_put_contents('ttt', print_r(get_defined_vars(), true));

//var_dump($src_backup_REQUEST['virtuemart_product_id']);
include_once('./components/com_virtuemart/helpers/shopfunctionsf.php');

//var_dump();
//@shopFunctionsF::addProductToRecent($this->product->virtuemart_product_id);
    if (@$src_backup_REQUEST['virtuemart_product_id']){// Hack for sourcer mod
	shopFunctionsF::addProductToRecent($src_backup_REQUEST['virtuemart_product_id']);
    }
$this->product->recent = shopFunctionsF::getRecentProductIds();
//var_dump(shopFunctionsF::getRecentProductIds());
$this->product->recent = array_filter($this->product->recent);
if (!$this->product->recent) return;
$ritems = '';
foreach($this->product->recent AS $key=>$recentitem) $ritems .= $recentitem.',';
$ritems = preg_replace('/,$/is','',$ritems);
//var_dump($ritems);
$db =& JFactory::getDBO();

$query = '
SELECT a.*,b.*,c.product_name as title, c.virtuemart_product_id FROM #__virtuemart_product_medias AS a
    RIGHT JOIN #__virtuemart_medias AS b ON a.virtuemart_media_id = b.virtuemart_media_id
    RIGHT JOIN #__virtuemart_products_' . ( @$this->product->_langTag ?: 'ru_ru' ) . ' AS c ON a.virtuemart_product_id = c.virtuemart_product_id
WHERE (c.virtuemart_product_id IN('.mysql_escape_string($ritems).'))';

//var_dump($query);
$db->setQuery($query);
//var_dump($db->getErrorMsg());
$recent = $db->loadObjectList();
//var_dump($recent);

if(!empty($recent)): ?>
<?php foreach($recent AS $key=>$item): ?>
<div class="width25 floatleft">
    <a title="<?=$item->title?>" href="<?=JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$item->virtuemart_product_id.'&virtuemart_category_id=0')?>">
	<?php if($item->file_url_thumb){ ?>
	    <img src="/<?=$item->file_url_thumb?>" alt="<?=$item->title?>">
	<?php }else { ?>
	    <img src="/components/com_virtuemart/assets/images/vmgeneral/noimage.gif" alt="<?=$item->title?>">
	<?php }?>
        <br /><?=$item->title?>
    </a>
</div>
<?php endforeach; ?>
</ul>
<?php endif; ?>


Количество выводимых единиц товара настраивается, при желании, в

components/com_virtuemart/helpers/shopfunctionsf.php

строка 123

Это все. Пробуйте; буду благодарен за дельные замечания, рекомендации и моды.
Последнее редактирование: 4 года 6 мес. назад от Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 6 мес. назад #2 от Drax
Drax ответил в теме Модуль вывода просмотренных товаров для VirtueMart
Можно поподробнее описать процесс создания mod_custom а то на практике далеко не все понятно...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 6 мес. назад #3 от Aleksej
Aleksej ответил в теме Модуль вывода просмотренных товаров для VirtueMart
Все несложно. Вы ведь на Joomla? - разумеется, на Joomla, коли уж интересует VirtueMart. Попросту в "модулях" создаете новый - HTML-модуль. Стандартным джумловским способом. Затем (либо до) установите бесплатную версию sourcerer-a от Nonumber, и при посредстве этого плагина (с ним никаких проблем, весчь нужная и для джумлавода в хозяйстве обязательная) разместите указанный вызов в этом вновь созданном модуле, затем опубликуйте модуль в той позиции, какая требуется. Test.php в корень не забудьте бросить.

Собственно, можно попробовать даже обойтись без вызова; весь код, прописанный в test.php, вставить в модуль (тогда вызов, разумеется, уже не нужен). Непринципиально.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 года 2 нед. назад #4 от tekumze
tekumze ответил в теме Модуль вывода просмотренных товаров для VirtueMart

Aleksej пишет: Вашему вниманию - модуль вывода недавно просмотренных товаров для VirtueMart (тесты - Joomla 2.5.9, VirtueMart 2.0.18a).



вот плохо что демки нет. или все-таки где то есть?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 года 2 нед. назад #5 от Aleksej
Aleksej ответил в теме Модуль вывода просмотренных товаров для VirtueMart

tekumze пишет: вот плохо что демки нет. или все-таки где то есть?



Есть демка, есть. Прямую ссылку не даю, т.к. адрес может со временем поменяться, но вы можете перейти на страничку демки с этой страницы блога; линк в строчке взгляните на демку (клик по ссылке).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 год 2 мес. назад #6 от nikazz
nikazz ответил в теме Модуль вывода просмотренных товаров для VirtueMart
а на virtual mart 1.1.x как заставить работать этот код

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 год 2 мес. назад #7 от nikazz
nikazz ответил в теме Модуль вывода просмотренных товаров для VirtueMart
нужно тоже самое но для virtuemart 1.1.x

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 год 2 мес. назад #8 от Aleksej
Aleksej ответил в теме Модуль вывода просмотренных товаров для VirtueMart

nikazz пишет: нужно тоже самое но для virtuemart 1.1.x


ну коли нужно, закажите кому-нибудь, nikazz. Лучше не здесь. Сделают.
Честно, я без понятия, что там было в далеком 2008 в VirtueMart 1.1.x.
Спасибо сказали: nikazz

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.