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

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

Ну вот попробуйте еще просто файлик подложить
 

Вложения

  • padded [2013-10-27@20-49-49].rar
    2,3 KB · Просмотры: 80
Не могу понять в чем дело. Все ведь 1 в 1.
Но заработало!:yahoo:
ddvdddd.JPG
Спасибо огромное!
 
Рад, что был полезен.
Мне кажется, я знаю в чем дело. Если визуально в текстовом редакторе файлы действительно 1-в-1, то скорее всего проблема в Для просмотра ссылки Войди или Зарегистрируйся.
Эта гадость мне много крови испортила в свое время. Очень много.
Я советую для успокоения души использовать утилиту Для просмотра ссылки Войди или Зарегистрируйся, которая рекурсивно пройдется по всем файлам в папке и уберет из них BOM метку, если она там есть.
 
Решил окончательно домучить и максимально усовершенствовать это надоедливое фреймовое всплывающее окно.
Необходимо чтобы в этом окне можно было изменять количество товара. Обновлять его и + чтоюы можно было удалить (по сути это копия страницы при оформлении заказа).
Примерно фреймовое всплывающее окно должно выглядеть так (мой рисунок) :
Безымянныйsssssssdddddddd.JPG
Для этого я перешел в файл сайт\components\com_virtuemart\views\cart\tmpl\default_pricelist.php в котором хранится весь этот неоходимый код. Скопировал его в уже налаженный файл padded.php (без BOM метки) расположенный: templates\beez_20\html\com_virtuemart\cart\padded.php.
Но при обавлении товара в корзину отображается лишь значет загрузки aaaaaa.JPG , а фреймовое всплывающее окно так и не появляется. В итоге я начал удалять многие части кода, пока не удалил практически все и лишь тогда начало появляться фреймовое всплывающее окно. Собственно вот оно:
Безымянныйsssssss.JPG
А вот мой код из файла padded.php
PHP:
<h3>Товар добавлен в корзину</h3>


<fieldset>
<table
    class="cart-summary"
    cellspacing="0"
    cellpadding="0"
    border="0"
    width="100%">
<tr>
    <th align="left"><?php echo JText::_ ('COM_VIRTUEMART_CART_NAME') ?></th>
    <th align="left"><?php echo JText::_ ('COM_VIRTUEMART_CART_SKU') ?></th>
    <th
        align="center"
        width="60px"><?php echo JText::_ ('COM_VIRTUEMART_CART_PRICE') ?></th>
    <th
        align="right"
        width="140px"><?php echo JText::_ ('COM_VIRTUEMART_CART_QUANTITY') ?>
        / <?php echo JText::_ ('COM_VIRTUEMART_CART_ACTION') ?></th>


    <?php if (VmConfig::get ('show_tax')) { ?>
    <th align="right" width="60px"><?php  echo "<span  class='priceColor2'>" . JText::_ ('COM_VIRTUEMART_CART_SUBTOTAL_TAX_AMOUNT') . '</span>' ?></th>
    <?php } ?>
    <th align="right" width="60px"><?php echo "<span  class='priceColor2'>" . JText::_ ('COM_VIRTUEMART_CART_SUBTOTAL_DISCOUNT_AMOUNT') . '</span>' ?></th>
    <th align="right" width="70px"><?php echo JText::_ ('COM_VIRTUEMART_CART_TOTAL') ?></th>
</tr>



<?php //ПРАКТИЧЕСКИ ВЕСЬ КОД, КОТОРЫЙ ИДЕТ ДАЛЬШЕ НЕ ВОСПРОИЗВОДИТСЯ((((( ?>



</table>
</fieldset>


<a class="showcart button big floatleft" href="<? echo $this->cart_link;?> ">Оформить заказ</a>
<a class="continue floatright" style="margin-top:3px;" href="<? echo $this->continue_link; ?>"><? echo JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'); ?></a>
В чем загвоздка? Почему остальная часть кода не работает, который я скопировал из default_pricelist.php в padded.php.
 
Почему остальная часть кода не работает, который я скопировал из default_pricelist.php в padded.php
Потому что для этих объектов используются разные наборы данных. Наивно полагать, что программная часть от стиральной машины сможет сварить вам кофе.

maxi2013
, вот в данном конкретном случае вы уже изобретаете велосипед.

Для того, чтобы корзина во всплывающем "окне" обновлялась без перезагрузки страницы вам придется еще прикручивать ajax обновление, например его можно взять из Для просмотра ссылки Войди или Зарегистрируйся, но код там запутанный и бредовый, намешано из MooTools и jQuery (сейчас как раз разбираюсь с ним, жуть). И также будут глюки и не появляющиеся окна.

Помните, как там про старуху с разбитым корытом в итоге?

Если уж так хочется после добавления товара в заказ позволить менять корзину - уберите вообще "всплывашку". По крайней мере, всё будет работать и разрыва шаблона у посетителя не возникнет.
 
Впринципе да. Вы правы. Лучше синица в руках, чем "трансформер нерабочий")
Единственно что досихпор не получилось, так это вывести картинку товара. Зашел в настройки вирта->оформление заказа->и поставил галку напротив "Показать изображения ". Но картинка так и не отoбражается в окошке при добавлении товара в корзину(
Правильнее будет сказать, что эта "галочка Показать изображения" влияет только на показ картинок на самой странице оформления заказа. А вот как у вас появляется картинка товара во всплывающем окне, не пойму. Уже всё переклацал в настройках)
 
Да что ж у вас за заколодованный сайт-то такой?
Я этот код уже на 5 сайтах использую, везде работает.
сделайте что ли var_dump($this->product); посмотрим хоть, что приходит туда.
 
С ума сойти)))
Разобрался...
У вас был код на отображение картинок:
PHP:
<img style="max-width:20px; max-height:20px; margin-bottom:-4px;" src="/<?echo $product->image->file_url_thumb ;?>" />
У меня сайт на локалке называется "Atom21". В итоге добавил название в соурс. Получилось:
PHP:
<img style="max-width:20px; max-height:20px; margin-bottom:-4px;" src="/atom21/<?echo $product->image->file_url_thumb ;?>" />
А картинку товара, который на данный момент был добавлен, можно еще вывести вот так (может комуто пригодится:(
PHP:
<?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>

    <?php

}  ?>
И все заработало)
Безымянныйdedfeefdef.JPG
 
А картинку товара, который на данный момент был добавлен, можно еще вывести вот так (может комуто пригодится)
Можно, но не нужно. А если ну очень уж нужно, то не MediaFull а хотя бы MediaThumb. И не true, а false. И без "rel".
Учите Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
вот мой метод вывода картинки в padded.php:
Код:
JHTML::image($this->product->images[0]->file_url, $file_alt, 'width="120px"', $imageArgs).

и еще много чего (цены, дополнительных полей товара:(
Код:
<?php
/**
*
* Layout for the add to cart popup
*
* @package    VirtueMart
* @subpackage Cart
* @author Max Milbers
*
* @[USER=262168]Link[/USER] http://www.virtuemart.net
* @[USER=294783]CopyRight[/USER] Copyright (c) 2013 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 2551 2010-09-30 18:52:40Z milbo $
*/

// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');

echo '<div><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></div>';
if($this->product){
    $temp;
    foreach($this->product->customfields as $key=>$customf)
    if($customf->virtuemart_custom_id==41){       
        $temp = $customf->custom_value;
    }
    echo '<div style="float:left;">'.JHTML::image($this->product->images[0]->file_url, $file_alt, 'width="120px"', $imageArgs).'</div>';
    echo '<h4>'.JText::sprintf('COM_VIRTUEMART_CART_PRODUCT_ADDED',$this->product->product_name,$this->product->quantity,$temp,round($this->product->product_width * 100) / 100,round($this->product->product_length * 100) / 100,round($this->product->product_height * 100) / 100).'</h4>';
    echo '<pre>';
    print_r($this->product->product_price);
    echo '</pre>';
    echo '<div id="pro421c"></div>';
    echo '<div class="price>'.$this->product->product_price.'</div>';
?>

<?php }

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">
    <script>
        jQuery(document).ready(function ()
        {
            var proc = jQuery('#customPrice053 option:selected').text();
            var proc_replace = proc.replace('не предоставляется +', '');
            var replace = proc_replace.replace('руб', '');
            var price = jQuery('.price').html();
            var sum_proc = parseInt(price) - parseInt(replace);
           
            jQuery('#pro421c').text('Скидка -' + replace + 'руб.');
            jQuery('.price').text('Цена - ' + price);
        });
    </script>
 
Назад
Сверху