1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

[Помощь] Недавно просмотренные товары в отдельном модуле

Тема в разделе "Virtuemart", создана пользователем otdushina, 1 фев 2013.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
  1. otdushina

    otdushina Постоялец

    Регистр.:
    10 янв 2013
    Сообщения:
    117
    Симпатии:
    1
    Темы подходящей не нашла, пишу здесь.
    Надо недавно просмотренные товары в отдельном модуле чтобы отображать его на на тех страницах, на которых я хочу.
    С фото и кнопкой купить желательно.
    Вот здесь реализовал чел,

    у меня тоже получилось, но выдается списком только 3 товара, а хотелось бы штук 10. Может кто знает как сделать.
     
  2. bodrilo

    bodrilo Создатель

    Регистр.:
    23 янв 2013
    Сообщения:
    42
    Симпатии:
    11
    можно сделать через настройки магазина, настройки - шаблоны, Показать рекомендуемые товары - и там ниже поля: Количество рекомендуемых товаров, товаров в строке

    либо прямо в функции указать эти значения, вот здесь

    Код:
    $recent_products_rows = VmConfig::get('recent_products_rows'); // set in VM admin panel
    $products_per_row = VmConfig::get('homepage_products_per_row'); // set in VM admin panel
    $recent_products_count = $products_per_row * $recent_products_rows; // get max recent products count
     
  3. otdushina

    otdushina Постоялец

    Регистр.:
    10 янв 2013
    Сообщения:
    117
    Симпатии:
    1
    Меня интересует модуль недавно просмотренные товары, который по умолчанию только на главной странице.
    В админке такие настройки
    настройки последние товары.jpg последние товары.jpg

    На втором рисунке то что получилось, но изображается только 3 товара как и на главной, никакие настройки не действуют.
    Не знаю как убрать промежуток между списком и началом блока (Вы смотрели).
    Использованный код:

    Код:
    <?php
     
     
    function getRecentProducts($currentId){
    $actualIds=false;
    $rProducts=false;
     
    $rSession = JFactory::getSession();
    $rIds = $rSession->get('vmlastvisitedproductids', array(), 'vm'); // get recent viewed from browser session
    if (is_array($rIds)){
    foreach($rIds as $rId){
    if ($rId!=$currentId) $actualIds[]=$rId; // cut out from array currently viewed product
    }
    }
     
    if (is_array($actualIds)){
    if (!class_exists('VirtueMartModelProducts')) // check possible if VM products class exists
    JModel::addIncludePath(JPATH_VM_ADMINISTRATOR . DS . 'models'); // if not exists, add them
    $rModel = JModel::getInstance('Product', 'VirtueMartModel');
     
    $recent_products_rows = VmConfig::get('recent_products_rows'); // set in VM admin panel
    $products_per_row = VmConfig::get('homepage_products_per_row'); // set in VM admin panel
    $recent_products_count = $products_per_row * $recent_products_rows; // get max recent products count
     
    $rProducts = $rModel->getProducts($actualIds, false, false); // no front, no calc, only published
    }
    if (is_array($rProducts)) $rProducts=array_slice($rProducts,0,$recent_products_count); // return only allowed num of products
     
    return $rProducts;
    }
     
    $recentProducts=getRecentProducts($this->product->virtuemart_product_id);
    if ($recentProducts){ // if we get recent products, display them
    ?>
    <div class="product-recent-products">
    <h2>Recently viewed products:</h2>
    <ul class="recent-list">
    <?php
    foreach ($recentProducts as $rProduct) {
    ?>
    <li>
    <a href="<?php echo JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$rProduct->virtuemart_product_id.'&virtuemart_category_id='.$rProduct->virtuemart_category_id); ?>">
    <?php echo $rProduct->product_name; ?>
    </a>
    </li>
    <?php } ?>
    </ul>
    </div>
    <?php }?>
     
  4. Snake 60

    Snake 60 Создатель

    Регистр.:
    17 июл 2012
    Сообщения:
    12
    Симпатии:
    1
    otdushina а можно ссылку на Ваш сайт, попробую помочь с промежутком между блоком и списком
     
  5. otdushina

    otdushina Постоялец

    Регистр.:
    10 янв 2013
    Сообщения:
    117
    Симпатии:
    1
    При переносе на рабочий проект нашла свой косяк, промежуток убрала. Вопрос как изменить количество товаров остается актуальным (очень), еще где-то на просторах интернета видела магазин, где при наведении на список просмотренных товаров показывается миниатюра во всплывающем окне.
    Такая вещь нужна любому магазину, может кто решит.
    Код вставляла через компонент jumi, потому что плагин sourcer потребовал PHP 5.3.
     
  6. Visual_Serg

    Visual_Serg Писатель

    Регистр.:
    17 янв 2013
    Сообщения:
    4
    Симпатии:
    3
    В файле components\com_virtuemart\helpers\shopfunctionsf.php найти строку и поставить нужное вам значение вместо 3х
    Код:
    $maxSize = VmConfig::get('max_recent_products',3);
     
    Andersol, otdushina и Snake 60 нравится это.
  7. herch

    herch Создатель

    Регистр.:
    17 ноя 2012
    Сообщения:
    11
    Симпатии:
    0
    не могу создать отдельную тему, поэтому спрошу тут.
    Допилил стандартный плагин недавно просмотренных товаров, теперь выводится: картинка, название товара, цена и кнопка купить. Выглядит вот так (joomla 1.5 virtuemart 1.1.9)
    [​IMG]

    Количество недавно просмотренных товаров устанавливается в настройках вирта
    Кто подскажет, как сделать скроллинг строки, что бы весь список не выводился,
    были например видны только три товара и стрелки вправо-влево?
     
  8. Genk0

    Genk0

    Регистр.:
    2 июн 2010
    Сообщения:
    10
    Симпатии:
    11
    Поскольку ответов может быть не менее десятка, отвечу проще - гуглим самый обыкновенный скроллер на том же JS и вписываем его в этот модуль.
    Других ответов быть не может.
     
  9. maxi2013

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    498
    Симпатии:
    207
    Попробуйте это добавить во фронтпэйдж (joomla 2.5 virtuemart 2 )
    PHP:
    <?php
    shopFunctionsF
    ::addProductToRecent($this->product->virtuemart_product_id);
    $this->product->recent =  shopFunctionsF::getRecentProductIds();
    foreach(
    $this->product->recent AS $key=>$recentitem$ritems .= $recentitem.',';
    $ritems preg_replace('/,$/is','',$ritems);
    $db =& JFactory::getDBO();
    $query '
    SELECT a.*,b.*,c.product_name AS title FROM #__virtuemart_product_medias AS a
    LEFT JOIN #__virtuemart_medias AS b ON a.virtuemart_media_id = b.virtuemart_media_id
    LEFT JOIN #__virtuemart_products_'
    .$this->product->_langTag.' AS c ON a.virtuemart_product_id = c.virtuemart_product_id
    WHERE (a.virtuemart_product_id IN('
    .mysql_escape_string($ritems).'))';
    $db->setQuery($query);
    $recent $db->loadObjectList();
    $recent_no_double = array();
    foreach (
    $recent as &$item) {
    if (isset(
    $recent_no_double[$item->virtuemart_product_id])) {
    continue;
    } elseif (
    $item->virtuemart_product_id $product->virtuemart_product_id) {
    continue;
    } else {
    $recent_no_double[$item->virtuemart_product_id] = $item;
    }
    }
    $recent $recent_no_double;
    ?>
    <?php 
    if(!empty($recent)): ?>
    <h3>Недавно просмотренные товары</h3>
    <ul>
    <?php foreach($recent AS $key=>$item): ?>
    <li><a title="<?=$item->title?>" href="/<?=JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$item->virtuemart_product_id.'&virtuemart_category_id=0')?>"><img src="/<?=$item->file_url_thumb?>" alt="<?=$item->title?>"></a></li>
    <?php endforeach; ?>
    </ul>
    <?php endif; ?>
    Либо вот еще
     
  10. herch

    herch Создатель

    Регистр.:
    17 ноя 2012
    Сообщения:
    11
    Симпатии:
    0
    Для второго вимарта использую универсальный модуль вывода товара (свободный)
    http://joomlaforum.ru/index.php?topic=263102.0