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

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

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

[Помощь] VM2 - Редактирование фреймового всплывающего окна купленного товара

Тема в разделе "Virtuemart", создана пользователем maxi2013, 20 май 2013.

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

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    497
    Симпатии:
    207
    Когда мы покупаем товар нажимая на кнопку "Добавить в корзину" появляется всплываещее окно. Наподобие такого.
    asdasdasd.JPG
    В этом окне указывается Название добавленного товара в корзину, затем кнопка "Продолжения покупок/Continue shopping" и кнопка "Оформить заказ/Show cart". И все.

    Необходимо чтобы в этом окне была Картинка добавленного товара, Количество товара, Его цена и Общая сумма и Итоговая стоимость(Итого).
    Должно примерно выглядеть так
    апвренроологл.JPG
    Помогите кто знает.
    Скорее всего надо редактировать файл Сайт\components\com_virtuemart\controllers\cart.php
    PHP:
    <?php
     
    /**
    *
    * Controller for the cart
    *
    * @package    VirtueMart
    * @subpackage Cart
    * @author RolandD
    * @author Max Milbers
    * @link http://www.virtuemart.net
    * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
    * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
    * VirtueMart is free software. This version may have been modified pursuant
    * to the GNU General Public License, and as distributed it includes or
    * is derivative of works licensed under the GNU General Public License or
    * other free or open source software licenses.
    * @version $Id: cart.php 5699 2012-03-22 08:26:48Z ondrejspilka $
    */
    // Check to ensure this file is included in Joomla!
    defined('_JEXEC') or die('Restricted access');
     
    // Load the controller framework
    jimport('joomla.application.component.controller');
     
    /**
    * Controller for the cart view
    *
    * @package VirtueMart
    * @subpackage Cart
    * @author RolandD
    * @author Max Milbers
    */
    class VirtueMartControllerCart extends JController {
     
        
    /**
        * Construct the cart
        *
        * @access public
        * @author Max Milbers
        */
        
    public function __construct() {
            
    parent::__construct();
            if (
    VmConfig::get('use_as_catalog'0)) {
                
    $app JFactory::getApplication();
                
    $app->redirect('index.php');
            } else {
                if (!
    class_exists('VirtueMartCart'))
                require(
    JPATH_VM_SITE DS 'helpers' DS 'cart.php');
                if (!
    class_exists('calculationHelper'))
                require(
    JPATH_VM_ADMINISTRATOR DS 'helpers' DS 'calculationh.php');
            }
            
    $this->useSSL VmConfig::get('useSSL'0);
            
    $this->useXHTML true;
        }
     
     
        
    /**
        * Add the product to the cart
        *
        * @author RolandD
        * @author Max Milbers
        * @access public
        */
        
    public function add() {
            
    $mainframe JFactory::getApplication();
            if (
    VmConfig::get('use_as_catalog'0)) {
                
    $msg JText::_('COM_VIRTUEMART_PRODUCT_NOT_ADDED_SUCCESSFULLY');
                
    $type 'error';
                
    $mainframe->redirect('index.php'$msg$type);
            }
            
    $cart VirtueMartCart::getCart();
            if (
    $cart) {
                
    $virtuemart_product_ids JRequest::getVar('virtuemart_product_id', array(), 'default''array');
                
    $success true;
                if (
    $cart->add($virtuemart_product_ids,$success)) {
                    
    $msg JText::_('COM_VIRTUEMART_PRODUCT_ADDED_SUCCESSFULLY');
                    
    //// OPC fix: $mainframe->enqueueMessage($msg);
                    
    $type '';
                } else {
                    
    $msg JText::_('COM_VIRTUEMART_PRODUCT_NOT_ADDED_SUCCESSFULLY');
                    
    $type 'error';
                }
                
    //            if (JRequest::getWord('format','') =='raw' ) {
                //                JRequest::setVar('layout','minicart','POST');
                //                $this->cart();
                //                //$view->display();
                //                return ;
                //            } else {
                
    $mainframe->enqueueMessage($msg$type);
                
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart'));
                
    //            }
            
    } else {
                
    $mainframe->enqueueMessage('Cart does not exist?''error');
            }
        }
     
        
    /**
        * Add the product to the cart, with JS
        *
        * @author Max Milbers
        * @access public
        */
        
    public function addJS() {
     
            
    //maybe we should use $mainframe->close(); or jexit();instead of die;
            /* Load the cart helper */
            //require_once(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
            
    $this->json null;
            
    $cart VirtueMartCart::getCart(false);
            if (
    $cart) {
                
    // Get a continue link */
                
    $virtuemart_category_id shopFunctionsF::getLastVisitedCategoryId();
                if (
    $virtuemart_category_id) {
                    
    $categoryLink '&view=category&virtuemart_category_id=' $virtuemart_category_id;
                } else
                
    $categoryLink '';
                
    $continue_link JRoute::_('index.php?option=com_virtuemart' $categoryLink);
                
    $virtuemart_product_ids JRequest::getVar('virtuemart_product_id', array(), 'default''array');
                
    $errorMsg JText::_('Товарушка добавлен суперрррррррр');
                if (
    $cart->add($virtuemart_product_ids$errorMsg )) {
     
                    
    $this->json->msg '<a class="continue" href="' $continue_link '" >' JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</a>';
                    
    $this->json->msg .= '<a class="showcart floatright" href="' JRoute::_("index.php?option=com_virtuemart&view=cart") . '">' JText::_('COM_VIRTUEMART_CART_SHOW_MODAL') . '</a>';
                    if (
    $errorMsg$this->json->msg .= '<div>'.$errorMsg.'</div>';
                    
    $this->json->stat '1';
                } else {
                    
    // $this->json->msg = '<p>' . $cart->getError() . '</p>';
                    
    $this->json->msg '<a class="continue" href="' $continue_link '" >' JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</a>';
                    
    $this->json->msg .= '<div>'.$errorMsg.'</div>';
                    
    $this->json->stat '2';
                }
            } else {
                
    $this->json->msg '<a href="' JRoute::_('index.php?option=com_virtuemart') . '" >' JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</a>';
                
    $this->json->msg .= '<p>' JText::_('COM_VIRTUEMART_MINICART_ERROR') . '</p>';
                
    $this->json->stat '0';
            }
            echo 
    json_encode($this->json);
            
    jExit();
        }
     
        
    /**
        * Add the product to the cart, with JS
        *
        * @author Max Milbers
        * @access public
        */
        
    public function viewJS() {
     
            if (!
    class_exists('VirtueMartCart'))
            require(
    JPATH_VM_SITE DS 'helpers' DS 'cart.php');
            
    $cart VirtueMartCart::getCart(false);
            
    $this->data $cart->prepareAjaxData();
            
    $lang JFactory::getLanguage();
            
    $extension 'com_virtuemart';
            
    $lang->load($extension); //  when AJAX it needs to be loaded manually here >> in case you are outside virtuemart !!!
            
    if ($this->data->totalProduct 1)
            
    $this->data->totalProductTxt JText::sprintf('COM_VIRTUEMART_CART_X_PRODUCTS'$this->data->totalProduct);
            else if (
    $this->data->totalProduct == 1)
            
    $this->data->totalProductTxt JText::_('COM_VIRTUEMART_CART_ONE_PRODUCT');
            else
            
    $this->data->totalProductTxt JText::_('COM_VIRTUEMART_EMPTY_CART');
            if (
    $this->data->dataValidated == true) {
                
    $taskRoute '&task=confirm';
                
    $linkName JText::_('COM_VIRTUEMART_CART_CONFIRM');
            } else {
                
    $taskRoute '';
                
    $linkName JText::_('COM_VIRTUEMART_CART_SHOW');
            }
            
    $this->data->cart_show '<a class="floatright" href="' JRoute::_("index.php?option=com_virtuemart&view=cart" $taskRoute$this->useXHTML$this->useSSL) . '">' $linkName '</a>';
            
    $this->data->billTotal $lang->_('COM_VIRTUEMART_CART_TOTAL') . ' : <strong>' $this->data->billTotal '</strong>';
            echo 
    json_encode($this->data);
            
    Jexit();
        }
     
        
    /**
        * For selecting couponcode to use, opens a new layout
        *
        * @author Max Milbers
        */
        
    public function edit_coupon() {
     
            
    $view $this->getView('cart''html');
            
    $view->setLayout('edit_coupon');
     
            
    // Display it all
            
    $view->display();
        }
     
        
    /**
        * Store the coupon code in the cart
        * @author Oscar van Eijk
        */
        
    public function setcoupon() {
            
    $mainframe JFactory::getApplication();
            
    /* Get the coupon_code of the cart */
            
    $coupon_code JRequest::getVar('coupon_code'''); //TODO VAR OR INT OR WORD?
            
    if ($coupon_code) {
     
                
    $cart VirtueMartCart::getCart();
                if (
    $cart) {
                    
    $msg $cart->setCouponCode($coupon_code);
                    if (!empty(
    $msg)) {
                        
    $mainframe->enqueueMessage($msg'error');
                    }
                    
    //                $cart->setDataValidation(); //Not needed already done in the getCart function
                    
    if ($cart->getInCheckOut()) {
                        
    $mainframe JFactory::getApplication();
                        
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=checkout'));
                    }
                }
            }
            
    parent::display();
            
    //    self::Cart();
        
    }
     
        
    /**
        * For selecting shipment, opens a new layout
        *
        * @author Max Milbers
        */
        
    public function edit_shipment() {
     
     
            
    $view $this->getView('cart''html');
            
    $view->setLayout('select_shipment');
     
            
    // Display it all
            
    $view->display();
        }
     
        
    /**
        * Sets a selected shipment to the cart
        *
        * @author Max Milbers
        */
        
    public function setshipment() {
     
            
    /* Get the shipment ID from the cart */
            
    $virtuemart_shipmentmethod_id JRequest::getInt('virtuemart_shipmentmethod_id''0');
            
    //vmdebug('setshipment',$virtuemart_shipmentmethod_id);
            
    $cart VirtueMartCart::getCart();
            if (
    $cart) {
                
    //Now set the shipment ID into the cart
                
    if (!class_exists('vmPSPlugin')) require(JPATH_VM_PLUGINS DS 'vmpsplugin.php');
                
    JPluginHelper::importPlugin('vmshipment');
                
    $cart->setShipment($virtuemart_shipmentmethod_id);
                
    //Add a hook here for other payment methods, checking the data of the choosed plugin
                
    $_dispatcher JDispatcher::getInstance();
                
    $_retValues $_dispatcher->trigger('plgVmOnSelectCheckShipment', array(  &$cart));
                
    $dataValid true;
                foreach (
    $_retValues as $_retVal) {
                    if (
    $_retVal === true ) {
                        
    // Plugin completed succesfull; nothing else to do
                        
    $cart->setCartIntoSession();
                        break;
                    } else if (
    $_retVal === false ) {
                        
    $mainframe JFactory::getApplication();
                        
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=editshipment',$this->useXHTML,$this->useSSL), $_retVal);
                        break;
                    }
                }
     
                if (
    $cart->getInCheckOut()) {
                    
    $mainframe JFactory::getApplication();
                    
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=checkout') );
                }
            }
            
    //    self::Cart();
            
    parent::display();
        }
     
        
    /**
        * To select a payment method
        *
        * @author Max Milbers
        */
        
    public function editpayment() {
     
            
    $view $this->getView('cart''html');
            
    $view->setLayout('select_payment');
     
            
    // Display it all
            
    $view->display();
        }
     
        
    /**
        * To set a payment method
        *
        * @author Max Milbers
        * @author Oscar van Eijk
        * @author Valerie Isaksen
        */
        
    function setpayment() {
     
            
    /* Get the payment id of the cart */
            //Now set the payment rate into the cart
            
    $cart VirtueMartCart::getCart();
            if (
    $cart) {
                if(!
    class_exists('vmPSPlugin')) require(JPATH_VM_PLUGINS.DS.'vmpsplugin.php');
                
    JPluginHelper::importPlugin('vmpayment');
                
    //Some Paymentmethods needs extra Information like
                
    $virtuemart_paymentmethod_id JRequest::getInt('virtuemart_paymentmethod_id''0');
                
    $cart->setPaymentMethod($virtuemart_paymentmethod_id);
     
                
    //Add a hook here for other payment methods, checking the data of the choosed plugin
                
    $_dispatcher JDispatcher::getInstance();
                
    $_retValues $_dispatcher->trigger('plgVmOnSelectCheckPayment', array( $cart));
                
    $dataValid true;
                foreach (
    $_retValues as $_retVal) {
                    if (
    $_retVal === true ) {
                        
    // Plugin completed succesfull; nothing else to do
                        
    $cart->setCartIntoSession();
                        break;
                    } else if (
    $_retVal === false ) {
              
    $mainframe JFactory::getApplication();
              
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=editpayment',$this->useXHTML,$this->useSSL), $_retVal);
              break;
                    }
                }
                
    //            $cart->setDataValidation();    //Not needed already done in the getCart function
     
                
    if ($cart->getInCheckOut()) {
                    
    $mainframe JFactory::getApplication();
                    
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=checkout'), $msg);
                }
            }
            
    //    self::Cart();
            
    parent::display();
        }
     
        
    /**
        * Delete a product from the cart
        *
        * @author RolandD
        * @access public
        */
        
    public function delete() {
            
    $mainframe JFactory::getApplication();
            
    /* Load the cart helper */
            
    $cart VirtueMartCart::getCart();
            if (
    $cart->removeProductCart())
            
    $mainframe->enqueueMessage(JText::_('COM_VIRTUEMART_PRODUCT_REMOVED_SUCCESSFULLY'));
            else
            
    $mainframe->enqueueMessage(JText::_('COM_VIRTUEMART_PRODUCT_NOT_REMOVED_SUCCESSFULLY'), 'error');
     
            
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart'));
        }
     
        
    /**
        * Delete a product from the cart
        *
        * @author RolandD
        * @access public
        */
        
    public function update() {
            
    $mainframe JFactory::getApplication();
            
    /* Load the cart helper */
            
    $cartModel VirtueMartCart::getCart();
            if (
    $cartModel->updateProductCart())
            
    $mainframe->enqueueMessage(JText::_('COM_VIRTUEMART_PRODUCT_UPDATED_SUCCESSFULLY'));
            else
            
    $mainframe->enqueueMessage(JText::_('COM_VIRTUEMART_PRODUCT_NOT_UPDATED_SUCCESSFULLY'), 'error');
     
            
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart'));
        }
     
        
    /**
        * Checks for the data that is needed to process the order
        *
        * @author Max Milbers
        *
        *
        */
        
    public function checkout() {
            
    //Tests step for step for the necessary data, redirects to it, when something is lacking
     
            
    $cart VirtueMartCart::getCart();
            if (
    $cart && !VmConfig::get('use_as_catalog'0)) {
                
    $cart->checkout();
            }
        }
     
        
    /**
        * Executes the confirmDone task,
        * cart object checks itself, if the data is valid
        *
        * @author Max Milbers
        *
        *
        */
        
    public function confirm() {
     
            
    //Use false to prevent valid boolean to get deleted
            
    $cart VirtueMartCart::getCart();
            if (
    $cart) {
                
    $cart->confirmDone();
                
    $view $this->getView('cart''html');
                
    $view->setLayout('order_done');
                
    // Display it all
                
    $view->display();
            } else {
                
    $mainframe JFactory::getApplication();
                
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart'), JText::_('COM_VIRTUEMART_CART_DATA_NOT_VALID'));
            }
        }
     
        function 
    cancel() {
            
    $mainframe JFactory::getApplication();
            
    $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart'), 'Cancelled');
        }
     
    }
     
    //pure php no Tag
     
  2. Lyiziana

    Lyiziana rom-kola

    Регистр.:
    17 дек 2012
    Сообщения:
    87
    Симпатии:
    14
    Попробуйте частично скопировать код (то что вам необходимо) из файла САЙТ\components\com_virtuemart\views\cart\tmpl\default_pricelist.php в файл Сайт\components\com_virtuemart\controllers\cart.php
    Там прослеживается аналогия. Товары, их количество, картинки, итоговый подсчет. Просто внимательно посмотрите и разберетесь...
     
  3. maxi2013

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    497
    Симпатии:
    207
    Там не так все просто. Но как пример всеже неплохо.
    Я так понял что все это надо сделать в файле cart.php, и именно в этой функции
    PHP:
    public function addJS() {
     
        
    //maybe we should use $mainframe->close(); or jexit();instead of die;
        /* Load the cart helper */
        //require_once(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
        
    $this->json null;
        
    $cart VirtueMartCart::getCart(false);
        if (
    $cart) {
            
    // Get a continue link */
            
    $virtuemart_category_id shopFunctionsF::getLastVisitedCategoryId();
            if (
    $virtuemart_category_id) {
            
    $categoryLink '&view=category&virtuemart_category_id=' $virtuemart_category_id;
            } else
            
    $categoryLink '';
            
    $continue_link JRoute::_('index.php?option=com_virtuemart' $categoryLink);
            
    $virtuemart_product_ids JRequest::getVar('virtuemart_product_id', array(), 'default''array');
            
    $errorMsg JText::_('COM_VIRTUEMART_CART_PRODUCT_ADDED');
            if (
    $cart->add($virtuemart_product_ids$errorMsg )) {
     
            
    $this->json->msg '<a class="continue" href="' $continue_link '" >' JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</a>';
            
    $this->json->msg .= '<a class="floatright" href="' JRoute::_("index.php?option=com_virtuemart&view=cart") . '">' JText::_('COM_VIRTUEMART_CART_SHOW_MODAL') . '</a>';
            if (
    $errorMsg$this->json->msg .= '<div>'.$errorMsg.'</div>';
            
    $this->json->stat '1';
            } else {
            
    // $this->json->msg = '<p>' . $cart->getError() . '</p>';
            
    $this->json->msg '<a class="continue" href="' $continue_link '" >' JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</a>';
            
    $this->json->msg .= '<div>'.$errorMsg.'</div>';
            
    $this->json->stat '2';
            }
        } else {
            
    $this->json->msg '<a href="' JRoute::_('index.php?option=com_virtuemart') . '" >' JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</a>';
            
    $this->json->msg .= '<p>' JText::_('COM_VIRTUEMART_MINICART_ERROR') . '</p>';
            
    $this->json->stat '0';
        }
        echo 
    json_encode($this->json);
        
    jExit();
        }
    переменная $errorMsg отвечает за вывод текста "Товар добавлен в корзину"
    теперь надо както другие переменные сделать за вывод картинка, количества товара , итогового подсчета и тд.
    класы в дивах уже индивидуально проставятся, оформление не главное. главное все это дело вывести а все остальное пустяки...
    давайте все хоть по чуть-чуть и в кучу слепим и сделаем код, с мира по нитке - голому рубашка)
     
  4. d0ublezer0

    d0ublezer0

    Регистр.:
    21 май 2009
    Сообщения:
    170
    Симпатии:
    92
    Ну вот и добрался я до этого вопроса.
    Все проще.
    В последних версиях Virtuemart присуствует файл components\com_virtuemart\views\cart\tmpl\padded.php - он содержит в себе то, что отображается во всплывающем окне при добавлениии товара в корзину.
    Скопируйте его в templates\ваш_шаблон\html\com_virtuemart\cart\padded.php и правьте наздоровье.
    А если заглянуть в этот файл - мы получаем полноценный объект $this->product, в котором хранится всё, что нам нужно - и картинка и прочее-прочее.
    Дальше сами справитесь?
    (пока правда нет времени писать готовое решение)

    Как пример - вот собранное на коленке решение
    PHP:
    <div class="popupcart" style="text-align:center; width:400px;">
        <h3>Товар добавлен в корзину</h3>
        <?
            if($this->product){
                if ($this->product->file_url_thumb){
                ?>
                <img src="/<?echo $this->product->file_url_thumb ;?>" />
                <?
                }
            ?>
            <br>
            <span style="display:block; padding:10px;"><?echo $this->product->product_name; ?></span><?
            }
        ?>
        <br style="clear:both; " />
        <div style="padding:10px 20px; overflow: hidden;">
            <a class="showcart button big floatleft" href="<? echo $this->cart_link;?> ">Оформить заказ</a>
            <a class="continue floatright" style="margin-top:7px;" href="<? echo $this->continue_link; ?>"><? echo JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'); ?></a>
        </div>
    </div>
    Простите за говнокод, торопился.
     
    Последнее редактирование модератором: 24 окт 2013
    maxi2013 нравится это.
  5. aivalab

    aivalab

    Регистр.:
    18 ноя 2012
    Сообщения:
    382
    Симпатии:
    135
    Насколько я понимаю предложенное решение выведет лишь только-что добавленный товар, а как бы выводить весь перечень товаров, отправленных на этот момент в корзину ?
     
    Последнее редактирование модератором: 25 окт 2013
  6. d0ublezer0

    d0ublezer0

    Регистр.:
    21 май 2009
    Сообщения:
    170
    Симпатии:
    92
    Для ответа на этот вопрос нужно понять, каким образом вы отправляете пачку товаров в корзину одновременно. У меня подобной задачи не возникало, потому не сталкивался с реализацией. Как?
     
  7. aivalab

    aivalab

    Регистр.:
    18 ноя 2012
    Сообщения:
    382
    Симпатии:
    135
    Никто не говорил про одновременное добавление - имелось в виду отображение содержимого корзины, включая только что добавленный товар. Насколько я понимаю и ТС спрашивал именно это и пример привел именно такой.
     
  8. maxi2013

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    497
    Симпатии:
    207
    Совершенно верно. Тоесть, например, пользователь добавил свой первый товар, появилось фреймовое всплывающее окно, где название товара, картинка, количество, цена и тд( вобщем как на рисунке выше), затем через некоторое время добавил еще один товар в корзину и уже во всплывающем окне должно быть 2 товара (тоесть по сути полное содержание корзины) и тд.
     
  9. d0ublezer0

    d0ublezer0

    Регистр.:
    21 май 2009
    Сообщения:
    170
    Симпатии:
    92
    Ну, блин, вам не угодишь. :)
    Методу, добавляющему товар в корзину, передается конкретный продукт, а не вся корзина целиком.
    Если нужно отображать некоторые ее текущие свойства, в том числе и содержимое - нужно дописывать вызов сессии корзины внутри функции добавления.
    Мы сделаем своё, с блекджеком и шлюхами со списком товаров и картинками.
    Несмотря на то, что лично я считаю отображение этой информации при добавлении избыточной (представим ситуацию, что у вас в корзине 20-30 товаров) и вызывающей дополнительную нагрузку (требуются дополнительные вычисления и обращения к базе), это можно сделать примерно так (добавьте у себя в тот самый файл) :
    PHP:
    <?
        if(!
    class_exists('VirtueMartCart')) require(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
        if (!
    class_exists('CurrencyDisplay'))
            require(
    JPATH_VM_ADMINISTRATOR DS 'helpers' DS 'currencydisplay.php');
        
    $currency CurrencyDisplay::getInstance();
        
    $cart VirtueMartCart::getCart(false);
        foreach (
    $cart->products as $product)
        {                           
        
    ?>
        <div style="overflow: hidden;">
            <div class="prices" style="float: right;"><?php echo $currency->priceDisplay($product->product_price?></div>
            <span class="quantity">
                <?
                    if ($product->image->file_url_thumb){
                    ?>
                    <img style="max-width:20px; max-height:20px; margin-bottom:-4px;" src="/<?echo $product->image->file_url_thumb ;?>" />
                    <?
                    }
                echo  $product->quantity ?></span>&nbsp;x&nbsp;<span class="product_name"><?php echo $product->product_name ?></span>
        </div>
        <?
            $billTotal+=$product->product_price * $product->quantity;
        }

        if ($billTotal>0) echo "<h4>Всего на сумму:". $currency->priceDisplay($billTotal)."</h4>";
    ?>
    Визуально оформите сами по вкусу, уже нет времени этим заниматься. Но ход мыслей, я думаю, должен быть понятен

    Сложив вместе оба куска кода должна получиться примерно такая история при добавлении:
    [​IMG]

    Вот еще наткнулся на такую особенность: если у вас в общих настройках Virtuemart на вкладке Оформление заказа не стоит галка "Показать изображения", то картинки в массиве товаров в сессии корзины (а также при добавлении товара) передаваться не будут. И выводиться во всплывающем при добавлении окне, естественно, - тоже.

    Можно сказать случайно нашел - начал делать очередной магазин, попробовал на нем предложенное мной в этой теме решение - а оно не работает. Надеюсь, кому-то сэкономил время и нервы.
     
    Последнее редактирование модератором: 26 окт 2013
    fenix-77, aivalab и maxi2013 нравится это.
  10. maxi2013

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    497
    Симпатии:
    207
    Еще раз прошу прощения за беспокойство. Просто у меня руки кривые :( Что-то не так делаю... Всяко вставляю код в файл padded.php и в итоге товар добавляетя, но всплывающее окно не появляется. Либо если появляется, то в окне картинка товара и написано null.
    Вот стандартный код файла padded.php который я правлю:
    PHP:
    <?php
    // Check to ensure this file is included in Joomla!
    defined('_JEXEC') or die('Restricted access');

    echo 
    '<a class="continue" href="' $this->continue_link '" >' JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</a>';
    echo 
    '<a class="showcart floatright" href="' $this->cart_link '">' JText::_('COM_VIRTUEMART_CART_SHOW') . '</a>';
    if(
    $this->product){
    echo 
    '<h4>'.JText::sprintf('COM_VIRTUEMART_CART_PRODUCT_ADDED',$this->product->product_name,$this->product->quantity).'</h4>';
    }

    if (
    $this->errorMsg) echo '<div>'.$this->errorMsg.'</div>';

    if(
    VmConfig::get('popup_rel',1)){
    if(
    $this->product and !empty($this->product->customfieldsRelatedProducts)){
    ?>
    <div class="product-related-products">
    <h4><?php echo JText::_('COM_VIRTUEMART_RELATED_PRODUCTS'); ?></h4>
    <?php
    foreach ($this->product->customfieldsRelatedProducts as $field) {
    if(!empty(
    $field->display)) {
    ?><div class="product-field product-field-type-<?php echo $field->field_type ?>">
    <span class="product-field-display"><?php echo $field->display ?></span>
    </div>
    <?php }
    ?>
    </div>
    <?php
    }
    }

    ?><br style="clear:both">
    Уже всяко перепробывал, но ничего :conf: