0 Пользователей и 1 Гость просматривают эту тему.
  • 20 Ответов
  • 19837 Просмотров
*

Reyno

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Нужно чтобы размер картинки товара в категории отличался от размера картинки, когда кликаешь непосредственно на товар.
А то слишком много пустого места. Важно, чтобы размер картинки в категории остался прежним.

Пояснение в приложении.

[вложение удалено Администратором]
*

Muratty

  • Захожу иногда
  • 130
  • 9 / 0
  • не стреляёте в пианиста, он играет как умеет...
в документации подробно описано как делать подобное:
"product_thumb_image" - прочитай про это и про "product_full_image"
*

Reyno

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Плз, ссылочкой заделитесь.

upd: посмотрел вот тут http://putnik.net.ua/index.php/comps/web/2006/05/29/virtuemart-klyuchevyie-mesta/

И все таки в файле shop.product_details идет речь только о двух типах картинки - full и thumb. thumb же используется и в каталоге, и на странице товара, т.е. это одно и тоже изображение.
Так реально ли тогда сделать то, что мне надо?
« Последнее редактирование: 10.04.2008, 22:32:23 от Reyno »
*

secretlive

  • Захожу иногда
  • 52
  • 0 / 0
Кто-то нашол уже ответ к этой проблемке???
*

karas

  • Осваиваюсь на форуме
  • 18
  • 1 / 1
  • Главное быть хорошим человеком
+1 мне тоже очень нужно !!!
*

fred

  • Захожу иногда
  • 135
  • 13 / 0
  • Прошлое лишено смысла
Цитировать
Биспраблем, дело в том, что ширина блока, отображающего картинку в стандартном browse_ <div style="float:left;width:20%;">, я переделал на <div style="float:left;width:92px" > теперь не наезжает ни при каком раскладе. если картинка больше 90, то поставь свою ширину.
може это поможет, мне когда то очень помогло.....
Прошлое лишено смысла
*

SolopoV

  • Давно я тут
  • 548
  • 15 / 0
  • зеленею...
shop.product_details.php
Код
// This part allows us to copy ALL properties from the product table
// into the template
$productData = $db_product->get_row();
$productArray = get_object_vars( $productData );

$productArray["product_id"] = $product_id;
$productArray["product_full_image"] = $product_full_image; // to display the full image on flypage
//$productArray["product_thumb_image"] = $product_thumb_image;
$productArray["product_thumb_image"] = $product_full_image;

flypage.tpl.php
Код
<?php
                    $product_image = str_replace("newxsize=96&amp;newysize=68","newxsize=504&amp;newysize=150",$product_image);
                    $product_image = str_replace("width","width=\"504\" idd=",$product_image);
                    $product_image = str_replace("height","height=\"150\" hidd=",$product_image);
                    echo $product_image;
         ?>
newxsize=96&amp;newysize=68 - размеры ресайза в настройках
newxsize=504&amp;newysize=150 - новые размеры

$product_image = str_replace("height","height=\"150\" hidd=",$product_image); - пока не фурычит...
*

TulipQ

  • Осваиваюсь на форуме
  • 25
  • 5 / 0
А как сделать чтобы на флаере товара отображался не product_thumb_image, а полная картинка? Вышеприведенный код работает, но он растягивает уменьшенную копию.
*

TulipQ

  • Осваиваюсь на форуме
  • 25
  • 5 / 0
Нашел изящное решение. Если кому надо - могу запостить.  ;D
*

Shendrik

  • Осваиваюсь на форуме
  • 36
  • 2 / 0
Нашел изящное решение. Если кому надо - могу запостить.  ;D

Запости конечно )
*

TulipQ

  • Осваиваюсь на форуме
  • 25
  • 5 / 0
Вобщем работает у меня на VM 1.1.4, как на других версиях не знаю. Редактируется только шаблон карточки товара: components\com_virtuemart\themes\default\templates\product_details\flypage.tpl.php

Строчка:
Код
<?php echo $product_image ?>

Заменяется на:
Код
<?php
$img_big = $product_full_image;
$pieces = explode(".", $img_big);
$thumb_2 = "/components/com_virtuemart/shop_image/product/resized/" . $pieces[0] . "_250x250." . $pieces[1];
if( file_exists( $thumb_2 ) ) {
?>

<a href="/components/com_virtuemart/shop_image/product/<?php echo $product_full_image ?>" title="<?php echo $product_name; ?>" rel="lightbox[product<?php echo $product_id; ?>]">
<img src="<?php echo $thumb_2 ?>" alt="<?php echo $product_name ?>" title="<?php echo $product_name ?>" border="0" align="center" /></a>

<?php
} else {
?>

<a href="/components/com_virtuemart/shop_image/product/<?php echo $product_full_image ?>" title="<?php echo $product_name; ?>" rel="lightbox[product<?php echo $product_id; ?>]">
<img src="/components/com_virtuemart/show_image_in_imgtag.php?filename=<?php echo $product_full_image ?>&newxsize=250&newysize=250&fileout=<?php echo $fileout ?>" alt="<?php echo $product_name ?>" title="<?php echo $product_name ?>" border="0" align="center" /></a>

<?php

}
?>

Соответственно newxsize=250&newysize=250 - это желаемые размеры картинки, которая будет создаваться из полноразмерной. Со включенным автоматическим ресайзом (в настройках виртумарта) будут автоматически создаваться и сохраняться в папку /components/com_virtuemart/shop_image/product/resized/.
*

Shendrik

  • Осваиваюсь на форуме
  • 36
  • 2 / 0
Спасибо, но я решил вопрос несколько иначе.
Скажите, при вашем решении будет работать ligtbox на дополнительных фотографиях? В одном решении, у меня получилось настроить вывод большой фотографии, но он она открывалась в отдельном лайтбоксе (не было кнопки next, для остальных фотографиях)
*

TulipQ

  • Осваиваюсь на форуме
  • 25
  • 5 / 0
для дополнительных картинок не знаю. надо будет проверить.  ^-^
*

Perla

  • Новичок
  • 8
  • 1 / 0
Вобщем работает у меня на VM 1.1.4, как на других версиях не знаю. Редактируется только шаблон карточки товара: components\com_virtuemart\themes\default\templates\product_details\flypage.tpl.php

Строчка:
Код
<?php echo $product_image ?>

Заменяется на:
Код
<?php
$img_big = $product_full_image;
$pieces = explode(".", $img_big);
$thumb_2 = "/components/com_virtuemart/shop_image/product/resized/" . $pieces[0] . "_250x250." . $pieces[1];
if( file_exists( $thumb_2 ) ) {
?>

<a href="/components/com_virtuemart/shop_image/product/<?php echo $product_full_image ?>" title="<?php echo $product_name; ?>" rel="lightbox[product<?php echo $product_id; ?>]">
<img src="<?php echo $thumb_2 ?>" alt="<?php echo $product_name ?>" title="<?php echo $product_name ?>" border="0" align="center" /></a>

<?php
} else {
?>

<a href="/components/com_virtuemart/shop_image/product/<?php echo $product_full_image ?>" title="<?php echo $product_name; ?>" rel="lightbox[product<?php echo $product_id; ?>]">
<img src="/components/com_virtuemart/show_image_in_imgtag.php?filename=<?php echo $product_full_image ?>&newxsize=250&newysize=250&fileout=<?php echo $fileout ?>" alt="<?php echo $product_name ?>" title="<?php echo $product_name ?>" border="0" align="center" /></a>

<?php

}
?>

Соответственно newxsize=250&newysize=250 - это желаемые размеры картинки, которая будет создаваться из полноразмерной. Со включенным автоматическим ресайзом (в настройках виртумарта) будут автоматически создаваться и сохраняться в папку /components/com_virtuemart/shop_image/product/resized/.

У меня на Vm 1.4 не сработало, картинка совсем исчезла и теперь на странице только дополнительные фотографии, а основную большую картинку не показывает. Может еще где-то нужно подправить.
*

Proud

  • Осваиваюсь на форуме
  • 21
  • 1 / 0
Ребят, пока тема не загасла! Подскажите пожалуйста: перенес сайт на хост, а Виртуемаг подглючивает, динамическое изменение изображения не работает, все картинки товаров в каталогах принимают размер авто, нужно что бы все они были 90х90, как стоит в настройках вирта, а они сами по себе размеры берут, где посмотреть пофиксить и в ручном режиме задать размер картинок?
*

alexsys

  • Осваиваюсь на форуме
  • 18
  • 6 / 0
Вобщем работает у меня на VM 1.1.4, как на других версиях не знаю. Редактируется только шаблон карточки товара: components\com_virtuemart\themes\default\templates\product_details\flypage.tpl.php

Строчка:
Код
<?php echo $product_image ?>

Заменяется на:
Код
<?php
$img_big = $product_full_image;
$pieces = explode(".", $img_big);
$thumb_2 = "/components/com_virtuemart/shop_image/product/resized/" . $pieces[0] . "_250x250." . $pieces[1];
if( file_exists( $thumb_2 ) ) {
?>

<a href="/components/com_virtuemart/shop_image/product/<?php echo $product_full_image ?>" title="<?php echo $product_name; ?>" rel="lightbox[product<?php echo $product_id; ?>]">
<img src="<?php echo $thumb_2 ?>" alt="<?php echo $product_name ?>" title="<?php echo $product_name ?>" border="0" align="center" /></a>

<?php
} else {
?>

<a href="/components/com_virtuemart/shop_image/product/<?php echo $product_full_image ?>" title="<?php echo $product_name; ?>" rel="lightbox[product<?php echo $product_id; ?>]">
<img src="/components/com_virtuemart/show_image_in_imgtag.php?filename=<?php echo $product_full_image ?>&newxsize=250&newysize=250&fileout=<?php echo $fileout ?>" alt="<?php echo $product_name ?>" title="<?php echo $product_name ?>" border="0" align="center" /></a>

<?php

}
?>

Соответственно newxsize=250&newysize=250 - это желаемые размеры картинки, которая будет создаваться из полноразмерной. Со включенным автоматическим ресайзом (в настройках виртумарта) будут автоматически создаваться и сохраняться в папку /components/com_virtuemart/shop_image/product/resized/.

Спасибо.
Работает как надо, доп. фото в лайт боксе открываются кнопкой некст ! Супер.
*

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
Помогло и мне. Спасибо TulipQ. Лови +  ;)

И еще такой момент для пользователей шаблона XTC Teqmart.
В components/com_virtuemart/themes/jxtc_teqmart/templates/product_details в флайпейдже для осуществления
вышесказаного меняем не

Код
<?php echo $product_image ?>


а

Код
<img class="zoomoo" src="components/com_virtuemart/shop_image/product/<?php echo $product_full_image; ?>" style="margin-right:30px;">

полностью на код TulipQ. И удалить полностью код ZOOMOO

Код
<script type="text/javascript">
window.addEvent('load', function(){

  var ww = window.getWidth();
  var wh = window.getHeight();
  var wst = window.getScrollTop();
var zoomit = null;

  while(zoomit == null){
  zoomit = document.getElement('img[class=zoomoo]');
}

  var zoomit_width = zoomit.getStyle('width').toInt();
  var zoomit_height = zoomit.getStyle('height').toInt(); 

  var zoomtainer = zoomit.getParent();
zoomtainer.setStyle('width', '220px');

//alert(zoomit_width + ' - ' + zoomit_height);

  var box = new Element('div',{
'styles': {
      'display': 'block',
'overflow': 'hidden',
'position': 'relative',
'top': '0px',
'left': '0px',
'margin-bottom': '10px',
      'cursor': 'pointer'
}
  });
 
  var aux = new Element('img',{
      'styles': {
      'display': 'none',
      'position': 'absolute',
      'width': zoomit_width + 'px',
      'height': zoomit_height + 'px',
      'left': Math.abs((ww - zoomit_width)/2) + 'px',
      'top':  Math.abs((wh - zoomit_height)/2) + wst + 'px',
      'background': '#FFF',
      'padding': '5px',
      'margin': 'auto',
      'border': '3px solid #808080',
      'opacity': 0,
      'cursor': 'pointer'
      }
  });

 
  var area = new Element('div',{
'styles': {
      'display': 'block',
'float': 'left',
      'width': '220px',
'margin-left': '10px',
'margin-right': '10px',
'height': '18px',
'border': '0px solid #C0C0C0',
      'background-image': 'url(components/com_virtuemart/shop_image/bar.jpg)'
}
  });
  area.setProperty('id', 'area');
 
  var knob = new Element('div',{
'styles': {
      'display': 'block',
      'width': '12px',
'height':'18px',
      'background': '#C0C0C0',
'cursor': 'pointer',
'border': '0px solid',
      'background-image': 'url(components/com_virtuemart/shop_image/scroll.jpg)'
}
  });
  knob.setProperty('id', 'knob');
if (navigator.appName == "Microsoft Internet Explorer"){
knob.setStyle('margin-left', '-210px');
}

  var minus = new Element('div',{
'styles': {
      'display': 'block',
'float': 'left',
      'width': '18px',
'height':'18px',
      'border': '0px solid #C0C0C0',
'border': '0px solid',
'cursor': 'pointer',
      'background-image': 'url(components/com_virtuemart/shop_image/minus.jpg)'
}
  });
  minus.setProperty('id', 'minus');

  var plus = new Element('div',{
'styles': {
      'display': 'block',
'float': 'left',
      'width': '18px',
'height':'18px',
      'border': '0px solid #C0C0C0',
'border': '0px solid',
'cursor': 'pointer',
      'background-image': 'url(components/com_virtuemart/shop_image/plus.jpg)'
}
  });
  plus.setProperty('id', 'plus');
 

  aux.src = zoomit.src;
  aux.injectInside(document.body);
  box.injectInside(zoomtainer);
  zoomit.injectInside(box);
  knob.injectInside(area);

minus.injectInside(zoomtainer);
  area.injectInside(zoomtainer);   
plus.injectInside(zoomtainer);

  zoomit.makeDraggable();

  box.setStyle('width', zoomit_width);
  box.setStyle('height', zoomit_height);
  zoomit.setStyle('position', 'absolute');


  var fx = new Fx.Styles(aux, {duration:350, wait:false});
 
  zoomit.addEvent('dblclick', function(){
  wst = window.getScrollTop();
aux.setStyle('top', Math.abs((wh - zoomit_height)/2) + wst + 'px')
      aux.setStyle('display', 'block');
      fx.start({'opacity':1});
  }); 

  aux.addEvent('click', function(){
      fx.start({'opacity':0});
  });


  var mySlide = new Slider(area, $('knob'), {
    steps: 100,
    onChange: function(step){
      zoomit.setStyles({width: zoomit_width * (1 + step/100),
                        left: -zoomit_width * (step/100)/2,
                        height: zoomit_height * (1 + step/100),
                        top: -zoomit_height * (step/100)/2 });
    }
  }).set(0);

var repeat;
var zoomxp = function(){
//alert(mySlide.step);
mySlide.set(mySlide.step + 5);
};
var zoomxm = function(){
mySlide.set(mySlide.step - 5);
};

  minus.addEvent('mousedown', function(){
zoomxm();
repeat = zoomxm.periodical(0.1);
  });
  minus.addEvent('mouseup', function(){
$clear(repeat);
  });

  plus.addEvent('mousedown', function(){
zoomxp();
repeat = zoomxp.periodical(0.1);
  });
  plus.addEvent('mouseup', function(){
$clear(repeat);
  });
 


//$$('.sliderwrapper').setStyle('border','1px solid');
//$$('.sliderwrapper').setStyle('height','auto');
 

});

</script>

Возможно его можно и оставить но я не пробовал.
*

Nick IntegraLL

  • Захожу иногда
  • 71
  • 2 / 0
  • Сто вагин, а я один
у меня та же проблема. Ошибка крылась в том, что сайт был в подпапке.
посмотри на какую картинку ссылается код и найди её на хосте. Если имена отличаются, поправь путь. Удачи!
*

yeti

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
shop.product_details.php
Код
// This part allows us to copy ALL properties from the product table
// into the template
$productData = $db_product->get_row();
$productArray = get_object_vars( $productData );

$productArray["product_id"] = $product_id;
$productArray["product_full_image"] = $product_full_image; // to display the full image on flypage
//$productArray["product_thumb_image"] = $product_thumb_image;
$productArray["product_thumb_image"] = $product_full_image;

flypage.tpl.php
Код
<?php
                    $product_image = str_replace("newxsize=96&amp;newysize=68","newxsize=504&amp;newysize=150",$product_image);
                    $product_image = str_replace("width","width=\"504\" idd=",$product_image);
                    $product_image = str_replace("height","height=\"150\" hidd=",$product_image);
                    echo $product_image;
         ?>
newxsize=96&amp;newysize=68 - размеры ресайза в настройках
newxsize=504&amp;newysize=150 - новые размеры

$product_image = str_replace("height","height=\"150\" hidd=",$product_image); - пока не фурычит...
у меня заработало! Спасибо большое.
в flypage прописал перед строкой
Код
echo urldecode( $product_image ) 

следующее:
Код
$product_image = str_replace("height","height=\"150\" hidd=",$product_image);
            $product_image = str_replace("width","width=\"\" hidd=",$product_image);
*

Malysch

  • Новичок
  • 2
  • 0 / 0
Добрый день.
VirtueMart 1.1.9

Кто может помочь,
как в этой функции вывести изображение в указанном размере px?  это модуль сравнение.

if( $param['snapshot'] == 0 ) {   
               // THUMB IMAGE
               if($param['show_thumb_image'] == 1){
                  $product['product_image'] = ps_product::image_tag( $product['product_thumb_image'], "alt=\"".$product['product_name']."\" title=\"".$product['product_name']."\"");
                  $product_image1 = '<div>'.$product['product_image'].'</div>';
               }
               else {
                  $product['product_image'] = '';
                  $product_image1 = '';
               }
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Добрый день.
VirtueMart 1.1.9

Кто может помочь,
как в этой функции вывести изображение в указанном размере px?  это модуль сравнение.

                  $product['product_image'] = ps_product::image_tag( $product['product_thumb_image'], "alt=\"".$product['product_name']."\" title=\"".$product['product_name']."\"");
Попробуйте так:
Код
$product['product_image'] = ps_product::image_tag( $product['product_thumb_image'], "alt=\"".$product['product_name']."\" title=\"".$product['product_name']."\"",,, нужная_ширина, нужная_высота);
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Настройки отображения товара

Автор wectra

Ответов: 2
Просмотров: 963
Последний ответ 12.07.2017, 22:12:27
от wectra
Несколько изображений для товара/ Лупа для изображения/ Magic Zoom

Автор antoha333

Ответов: 41
Просмотров: 23818
Последний ответ 13.11.2015, 16:08:16
от sonics
Как реализовать на VirtueMart такую карточку товара?

Автор AdmbVlad

Ответов: 0
Просмотров: 957
Последний ответ 14.10.2015, 17:01:55
от AdmbVlad
Вставить картинку в карточку товара через URL и создать его миниатюру

Автор sashgera

Ответов: 8
Просмотров: 1327
Последний ответ 14.02.2015, 21:12:46
от sashgera
Как изменить сортировку товара ?

Автор Timer

Ответов: 0
Просмотров: 913
Последний ответ 21.01.2015, 23:49:28
от Timer