Joomla 4. Компонент K2 и форк K2ForJ4 (18 янв 2024)

Если вас, как и меня, достало выслушивать (вычитывать) бесконечные обещания разработчика K2 опубликовать версию компонента K2 под Joomla 4 (без чего невозможно реализовать апгрейд from Joomla 3 to Joomla 4) - воспользуйтесь форком K2ForJ4. Который в данный момент установлен и без каких-либо проблем работает на этом веб-сайте.

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

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

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

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

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

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

Code:
<?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; ?>


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

Code:
components/com_virtuemart/helpers/shopfunctionsf.php

строка 123

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

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

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

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

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

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

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

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

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



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

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

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

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



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

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

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

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

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

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

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

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


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

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

Работает на Kunena форум