×
Покер бот на Ruby on Rails (12 сен 2018)

Третья ипостась покера на ruby. Искреннее спасибо всем, кто прислал замечания по предыдущим релизам.

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

Больше
5 года 8 мес. назад - 5 года 8 мес. назад #1 от Aleksej
Вашему вниманию - модуль вывода недавно просмотренных товаров для 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

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

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

Больше
5 года 8 мес. назад #2 от Drax
Можно поподробнее описать процесс создания mod_custom а то на практике далеко не все понятно...

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

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

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

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

Больше
4 года 2 мес. назад #4 от tekumze

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



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

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

Больше
4 года 2 мес. назад #5 от Aleksej

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



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

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

Больше
2 года 4 мес. назад #6 от nikazz
а на virtual mart 1.1.x как заставить работать этот код

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

Больше
2 года 4 мес. назад #7 от nikazz
нужно тоже самое но для virtuemart 1.1.x

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

Больше
2 года 4 мес. назад #8 от Aleksej

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


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

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