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

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

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

[Помощь] Проблемы с корзиной

Тема в разделе "Virtuemart", создана пользователем Teamk, 26 ноя 2013.

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

    Teamk

    Регистр.:
    13 ноя 2013
    Сообщения:
    173
    Симпатии:
    64
    Ребята. Помогите с выводом корзины. Нормально открывается, но не показывает картинки товаров во всплывающем окне. Хотя при нажатии на "купить" картинка показывается.
    [​IMG]
    PHP:
    <?php

    // no direct access
    defined('_JEXEC') or die('Restricted access');
    // get the tmpl variable from url
    $tmpl JRequest::getCmd('tmpl''');
    // check if it was an AJAX request
    if($tmpl == 'cart') {
        
    // if it was an AJAX request - get images
        
    if(count($data->products)) {
            
    // get the DB access
            
    $db JFactory::getDBO();
            
    // prepare an array of SKUs
            
    $skus = array();
      
            foreach(
    $data->products as $product) {
                
    array_push($skus"'".$product['product_sku']."'");
            }
            
    // prepare first query
            
    $query1 $db->getQuery(true);
            
    $query1->select('`p`.`virtuemart_product_id` AS `pid`, `p`.`product_sku` AS `sku`');
            
    $query1->from('#__virtuemart_products AS p');
            
    $query1->where('`p`.`product_sku` IN('.implode(','$skus).')');
            
    $db->setQuery((string)$query1);
      
            
    $ids $db->loadObjectList();
      
            
    $pids = array();
            
    // get the IDs
            
    if ($ids) {
                foreach(
    $ids as $id) {
                    
    array_push($pids$id->pid);
                }
            }
            
    // get the images
            
    $query2 $db->getQuery(true);
            
    $query2->select('`m`.`file_url_thumb` AS `file`, `p`.`product_sku` AS `sku`');
            
    $query2->from('#__virtuemart_products AS p');
            
    $query2->leftJoin('#__virtuemart_product_medias AS `pm` ON `pm`.`virtuemart_product_id` = `p`.`virtuemart_product_id`');
            
    $query2->leftJoin('#__virtuemart_medias AS `m` ON `m`.`virtuemart_media_id` = `pm`.`virtuemart_media_id`');
            
    $query2->where('`p`.`virtuemart_product_id` IN('.implode(','$pids).')');
            
    $query2->order('`pm`.`ordering` ASC');
            
    $db->setQuery((string)$query2);
            
    $pimages $db->loadObjectList();
      
            
    $images = array();
            
    // get the first products images
            
    if ($pimages) {
                foreach(
    $pimages as $image) {
                    if(!isset(
    $images[$image->sku])) {
                        
    $images[$image->sku] = $image->file;
                    }
                }
            }
        }
    }

    ?>

    <?php if($tmpl == 'cart') : ?>

        <div class="vmGkCartModule <?php echo $params->get('moduleclass_sfx'); ?>">
            <h3><?php echo JText::_('TPL_GK_LANG_MY_CART'); ?></h3>
      
            <?php if ($show_product_list) : ?>
                <div class="vmGkCartProducts">
                    <?php
                        $iteration 
    1;
                        foreach (
    $data->products as $product) :
                    
    ?>
                    <div class="gkContainer">
                        <img src="<?php echo $images[$product['product_sku']]; ?>" alt="" width="90" height="90" />
                  
                        <div class="gkProductContent">
                            <div class="gkProductName">
                                <span class="gkQuantity"><?php echo  $product['quantity'?>x</span>
                                <?php echo  $product['product_name'?>
                            </div>
                      
                            <?php if ( !empty($product['product_attributes']) ) : ?>
                            <div class="gkProductAttributes">
                                <?php echo str_replace('<span>''<br /><span>'$product['product_attributes']); ?>
                            </div>
                            <?php endif; ?>
                        </div>
                  
                        <?php if ($show_price) : ?>
                        <div class="gkPrice num<?php echo $iteration%3?>"><?php echo str_replace(' '''$product['prices']); ?></div>
                        <?php endif; ?>
                    </div>
                    <?php
                        $iteration
    ++;
                        endforeach;
                    
    ?>
                </div>
            <?php endif; ?>
      
            <?php if ($data->totalProduct) : ?>
            <div class="gkTotal">
                <?php echo str_replace(array(JText::_('COM_VIRTUEMART_CART_TOTAL').' : <strong>''</strong>'' '), ''$data->billTotal); ?>
            </div>
            <?php endif; ?>
      
            <div class="gkShowCart">
                <?php echo $data->cart_show?>
            </div>
      
            <noscript>
            <?php echo JText::_('MOD_VIRTUEMART_CART_AJAX_CART_PLZ_JAVASCRIPT'?>
            </noscript>
        </div>

    <?php else : ?>

        <div class="vmCartModule <?php echo $params->get('moduleclass_sfx'); ?>">
            <?php if ($show_product_list) : ?>
                <div id="hiddencontainer" style="display: none;">
                    <div class="container">
                        <?php if ($show_price) { ?>
                          <div class="prices" style="float: right;"></div>
                        <?php ?>
                        <div class="product_row">
                            <span class="quantity"></span>&nbsp;x&nbsp;<span class="product_name"></span>
                        </div>
      
                        <div class="product_attributes"></div>
                    </div>
                </div>
                <div class="vm_cart_products">
                    <div class="container">
                    <?php foreach ($data->products as $product) : ?>
                        <?php if ($show_price) : ?>
                            <div class="prices" style="float: right;"><?php echo  $product['prices'?></div>
                        <?php endif; ?>
                        <div class="product_row">
                            <span class="quantity"><?php echo  $product['quantity'?></span>&nbsp;x&nbsp;<span class="product_name"><?php echo  $product['product_name'?></span>
                        </div>
                        <?php if ( !empty($product['product_attributes']) ) : ?>
                            <div class="product_attributes"><?php echo  $product['product_attributes'?></div>
                        <?php endif; ?>
                    <?php endforeach; ?>
                    </div>
                </div>
            <?php endif; ?>
      
            <?php if ($data->totalProduct) : ?>
            <div class="total" style="float: right;">
                <?php echo $data->billTotal?>
            </div>
            <div class="total_products"><?php echo $data->totalProductTxt ?></div>
            <?php endif; ?>
      
            <div class="show_cart">
                <?php echo $data->cart_show?>
            </div>
      
            <noscript>
            <?php echo JText::_('MOD_VIRTUEMART_CART_AJAX_CART_PLZ_JAVASCRIPT'?>
            </noscript>
        </div>
    <?php endif; ?>
     
  2. D'Jack

    D'Jack

    Регистр.:
    22 сен 2012
    Сообщения:
    335
    Симпатии:
    108
    ссылка на картинку показывает тебе большую или маленькую как превью, попробуй ради эксперимента сделать картинки поменьше (разрешение или вес)
     
  3. zavrus

    zavrus

    Регистр.:
    29 май 2009
    Сообщения:
    173
    Симпатии:
    78
    мне помогло это решение
     
  4. Avi

    Avi Постоялец

    Регистр.:
    10 фев 2013
    Сообщения:
    92
    Симпатии:
    28
    Для начала покажи путь, по которому лежит изображение, а также путь, который отображается в html.
     
  5. Teamk

    Teamk

    Регистр.:
    13 ноя 2013
    Сообщения:
    173
    Симпатии:
    64
    Тут вы правы. Путь до фото в коде открытия вот такой "/" А путь к фото http://mysite.ru/images/stories/virtuemart/product/resized/221_90x90.jpg
     
  6. Avi

    Avi Постоялец

    Регистр.:
    10 фев 2013
    Сообщения:
    92
    Симпатии:
    28
    Проверь, есть ли у этого изображения миниатюра. Если есть, то нужно будет отладить вот этот подозрительный запрос к примеру, через firephp
    Код:
            $query2 = $db->getQuery(true);
            $query2->select('`m`.`file_url_thumb` AS `file`, `p`.`product_sku` AS `sku`');
            $query2->from('#__virtuemart_products AS p');
            $query2->leftJoin('#__virtuemart_product_medias AS `pm` ON `pm`.`virtuemart_product_id` = `p`.`virtuemart_product_id`');
            $query2->leftJoin('#__virtuemart_medias AS `m` ON `m`.`virtuemart_media_id` = `pm`.`virtuemart_media_id`');
            $query2->where('`p`.`virtuemart_product_id` IN('.implode(',', $pids).')');
            $query2->order('`pm`.`ordering` ASC');
            $db->setQuery((string)$query2);
            $pimages = $db->loadObjectList();
    
            $images = array();
            // get the first products images
            if ($pimages) {
                foreach($pimages as $image) {
                    if(!isset($images[$image->sku])) {
                        $images[$image->sku] = $image->file;
                    }
                }
            }
    

    Посмотреть, что лежит в $images после запроса. А подозрительный он потому, что всё это уже написано в коре вирта и можно было бы просто заюзать стандартные методы и всё, но тот, кто писал шаблон, этим принебрег.
     
  7. zavrus

    zavrus

    Регистр.:
    29 май 2009
    Сообщения:
    173
    Симпатии:
    78
    выложи код padded.php
    вот мой рабочий.. картинка и описание в комплекте
    Код:
    echo '<a class="continue" href="#" onclick="parent.jQuery.fancybox.close()" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</a>';
    echo '<a class="showcart floatright" href="' . $this->cart_link . '">' . JText::_('COM_VIRTUEMART_CART_SHOW') . '</a>';
    ?>
    
    <?php
    if (!empty($this->product->images)) {
        $image = $this->product->images[0];
        ?>
    <div class="main-image">
    
        <?php
            echo $image->displayMediaFull("",true,"rel='vm-additional-images'");
        ?>
    
        <div class="clear"></div>
    </div>
    <div class="product-description">
                <?php echo $this->product->product_desc; ?>
    </div>
        <?php
    
    }  ?>
    <div class="text">
    
    <?php if($this->product){
        echo '<h4>'.JText::sprintf('COM_VIRTUEMART_CART_PRODUCT_ADDED',$this->product->product_name,$this->product->quantity).'</h4>';
       
    }  ?>
    
    <?php if ($this->errorMsg) echo '<div>'.$this->errorMsg.'</div>';
    ?>
    </div>                       
    <?php
    if(VmConfig::get('popup_rel',1)){
        if($this->product and !empty($this->product->customfieldsRelatedProducts)){
            ?>
            <div class="product-related-products " style="width:100%;margin:10px 0px;">
                    <h5>Дополнительные товары</h5>
            <?php
            foreach ($this->product->customfieldsRelatedProducts as $field) {
                if(!empty($field->display)) {
                    ?><div class="product-field product-field-type-<?php echo $field->field_type ?> " style="width:33%; float:left;">
                    <span class="product-field-display"><?php echo $field->display ?></span>
                    </div>
                <?php }
            } ?>
            </div>
           
        <?php
        }
    }
    
    ?>
     
  8. Teamk

    Teamk

    Регистр.:
    13 ноя 2013
    Сообщения:
    173
    Симпатии:
    64
    padded тут не при чем. У меня проблема совершенно в другом... Именно добавление хорошо работает.
    pumpwhey.ru попробуйте зайти и положить товар в корзину-там все хорошо. Справа вместе со страницей катается корзинка. Вот нажмите на нее и увидите. Её код можно увидеть в первом сообщении.
     
  9. zavrus

    zavrus

    Регистр.:
    29 май 2009
    Сообщения:
    173
    Симпатии:
    78
    а я не понял там нужно делать запрос ... я использовал linelab http://www.linelab.org/download?download=37:virtuemart-2-slide-cart-module-beta&start=12
    вот через нее они плагин с запросом сделали .. ))
     
  10. Teamk

    Teamk

    Регистр.:
    13 ноя 2013
    Сообщения:
    173
    Симпатии:
    64