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

Teamk

Постоялец
Регистрация
13 Ноя 2013
Сообщения
208
Реакции
100
Ребята. Помогите с выводом корзины. Нормально открывается, но не показывает картинки товаров во всплывающем окне. Хотя при нажатии на "купить" картинка показывается.
Для просмотра ссылки Войди или Зарегистрируйся
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; ?>
 
ссылка на картинку показывает тебе большую или маленькую как превью, попробуй ради эксперимента сделать картинки поменьше (разрешение или вес)
 
мне помогло это решение
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Ребята. Помогите с выводом корзины. Нормально открывается, но не показывает картинки товаров во всплывающем окне. Хотя при нажатии на "купить" картинка показывается.
Для начала покажи путь, по которому лежит изображение, а также путь, который отображается в html.
 
Проверь, есть ли у этого изображения миниатюра. Если есть, то нужно будет отладить вот этот подозрительный запрос к примеру, через 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 после запроса. А подозрительный он потому, что всё это уже написано в коре вирта и можно было бы просто заюзать стандартные методы и всё, но тот, кто писал шаблон, этим принебрег.
 
Так ничего и не получилось! Проблема не решена... Видимо нужно переписывать путь, но я в принципе не понимаю как он написан...
выложи код 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
    }
}

?>
 
выложи код 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
    }
}

?>
padded тут не при чем. У меня проблема совершенно в другом... Именно добавление хорошо работает.
pumpwhey.ru попробуйте зайти и положить товар в корзину-там все хорошо. Справа вместе со страницей катается корзинка. Вот нажмите на нее и увидите. Её код можно увидеть в первом сообщении.
 
padded тут не при чем. У меня проблема совершенно в другом... Именно добавление хорошо работает.
pumpwhey.ru попробуйте зайти и положить товар в корзину-там все хорошо. Справа вместе со страницей катается корзинка. Вот нажмите на нее и увидите. Её код можно увидеть в первом сообщении.
а я не понял там нужно делать запрос ... я использовал linelab Для просмотра ссылки Войди или Зарегистрируйся
вот через нее они плагин с запросом сделали .. ))
 
Назад
Сверху