LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 17:56:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 [3]  Все   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Несколько изображений одного товара в одном окне  (Прочитано 20151 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« : 02.11.2007, 11:31:40 »

Несколько раз поднимался вопрос - как сделать несколько изображений в описании товара, причем не убогим способом, как реализовано стандартно, но иначе. Возникла необходимость, потому выложу свою модификацию.
Основная часть хака взята с форума virtuemart.ru (к сожалению что то не работает, потому не могу привести автора)
Файл shop.product_details.php, находим строку с /** AVAILABILITY **/ и перед ней добавляем следующий код:
Код:
/* MORE IMAGES (Дополнительные изображения) */
$gavMore_Images = "";
$gavMore_Imagess = "";
 if( !empty($images->images) )
   {
    $gavMore_Images = "<hr /><div style=\"font-weight:bold;float:left;\">Дополнительные изображения&nbsp;</div> (нажмите, чтобы увеличить):<br />";
    $database->setQuery( "SELECT * FROM #__vm_product_files WHERE file_product_id='$product_id' AND file_is_image='1'" );
    $images = $database->loadObjectList();
    $i = 1;
    foreach( $images as $image )
     {
       $info = pathinfo( $image->file_name );
       $src = dirname($image->file_url) ."/resized/". basename($image->file_name, ".".$info["extension"])."_".PSHOP_IMG_WIDTH."x".PSHOP_IMG_HEIGHT.".".$info["extension"];
       $alt = $image->file_title;
       $height = empty($image->file_image_thumb_height) ? PSHOP_IMG_HEIGHT : $image->file_image_thumb_height;
       $width = empty($image->file_image_thumb_width) ? PSHOP_IMG_WIDTH : $image->file_image_thumb_width;
       $src_full = str_replace( $mosConfig_absolute_path, $mosConfig_live_site, $image->file_name );
       if( strstr( $src, $mosConfig_live_site.$image->file_name))
       $src_full = str_replace( $mosConfig_live_site.$image->file_name, $mosConfig_live_site."/".$image->file_name, $src_full );
       $alt_full = $image->file_title;
       $height_full = $image->file_image_height+29;
       $width_full = $image->file_image_width+34;
      $border = 1;
      $titlewsp = str_replace(".", "", basename($image->file_name));
      $title = $image->file_title;
      $gavMore_Images .= "<a href=\"javascript:doPic('$src');\" style=\"cursor:hand;cursor:pointer;\"><img src=\"$src\" width=\"$width\" border=0/></a>";     
      ++$i;
     }//end foreach
   }
  /* END MORE IMAGES (Дополнительные изображения) */
?>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
browserName = navigator.appName;
browserVer = parseInt(navigator.appVersion);

ns3up = (browserName == "Netscape" && browserVer >= 3);
ie4up = (browserName.indexOf("Microsoft") >= 0 && browserVer >= 4);

function doPic(imgName) {
if (ns3up || ie4up) {
imgOn = ("" + imgName);
document.mainpic.src = imgOn;
   }
}
//  End -->
</script>
<?php
$gavMore_Imagess .= "<img name=\"mainpic\" src=\"$imageurl\" width=\"$width_full\"  border=\"0\">";

Далее здесь же находим блок /** NOW LET'S BEGIN AND FILL THE TEMPLATE **/ и добавляем две строки:
Код:
$template = str_replace( "{gavMore_Images}", $gavMore_Images, $template );
$template = str_replace( "{gavMore_Imagess}", $gavMore_Imagess, $template );
Теперь можем открыть файл flypage.php и оформить вывод наших двух заглушек, у себя сделал так:
Код:
<table border="0">
<tr>
<td>{gavMore_Imagess}</td>
</tr>
<tr>
<td>{gavMore_Images}</td>
</tr>
</table>

немного комментариев:
$gavMore_Images - выведет нам из полученного массива картинки дополнительных изображений (которые управляются через добавление файлов)
$gavMore_Imagess - непосредственно изображение товара


* Untitled-2.jpg (15.68 Кб, 400x647 - просмотрено 1497 раз.)
Записан
 
Mr. Brightside
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 47



« Ответ #61 : 15.04.2011, 19:18:56 »

Вы что, подурели?

1. http://demo.joomlaxtc.com/kraftwerks/ - идем сюда, смотрим как воркает.
2. Качаем варезный шаблон.
3. Берем кусок кода, который нужен (легко кастомизируемо, кроссбраузерно, чистый CSS)
Записан
vtx
Давно я тут
****

Репутация: +16/-0
Offline Offline

Сообщений: 231



« Ответ #62 : 18.04.2011, 10:13:45 »

Вы что, подурели?

1. http://demo.joomlaxtc.com/kraftwerks/ - идем сюда, смотрим как воркает.
2. Качаем варезный шаблон.
3. Берем кусок кода, который нужен (легко кастомизируемо, кроссбраузерно, чистый CSS)
уже прилепил флайпэйдж из этой темы)))
Записан
Geks
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 40



« Ответ #63 : 13.08.2011, 03:04:54 »

После переноса сайта на хостинг пропали мини картинки товаров, что может быть?
ссылка на сайт
Записан
vtx
Давно я тут
****

Репутация: +16/-0
Offline Offline

Сообщений: 231



« Ответ #64 : 15.08.2011, 11:09:31 »

ссылка на рабочую картинку
Код:
/components/com_virtuemart/shop_image/product/resized/_______________D_4e417643c211f_140x200.jpg
ссылка на остальные
Код:
"/components/com_virtuemart/shop_image/product/resized/_185x140.jpg4e4176863b80a_185x140.jpg"
а должна быть
Код:
/components/com_virtuemart/shop_image/product/resized/.jpg4e4176863b80a_185x140.jpg

часть скрипта, формирующая путь
Код:
if($type(images) == 'string' && !this.options.thumbnails){
var imageList = [];
$$('.'+images).each(function(el){
imageList.push(el.src);
el.injectInside(this.imagesHolder);
},this);
this.images = imageList;

}else if($type(images) == 'string' && this.options.thumbnails){
var imageList = [];
var srcList = [];
this.thumbnails = $$('.'+images);
this.thumbnails.each(function(el,i){
srcList.push(el.href);
imageList.push(el.getElement('img'));
el.href = 'javascript:;';
el.addEvent('click',function(){
this.stop();
this.play(i);
}.bind(this,el,i));
},this);
this.images = srcList;
this.thumbnailImages = imageList;
« Последнее редактирование: 15.08.2011, 11:39:51 от vtx » Записан
vtx
Давно я тут
****

Репутация: +16/-0
Offline Offline

Сообщений: 231



« Ответ #65 : 15.08.2011, 11:48:01 »

Я бы картинки заливал через csv, а не стандартными методами. плюс выключл динамическое изменение и создание картинок, и наконец-то избавился от русских букв в названии.
зы. красивый метод вывода доп изображений. думаю многим понравился бы.
Записан
Geks
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 40



« Ответ #66 : 20.08.2011, 20:46:37 »

Я бы картинки заливал через csv, а не стандартными методами. плюс выключл динамическое изменение и создание картинок, и наконец-то избавился от русских букв в названии.
зы. красивый метод вывода доп изображений. думаю многим понравился бы.
Спасибо тебе огромное! Благодаря тебе разобрался. Ошибка заключалась в том, что файлы надо было приводить к виду primer.jpg а не как у меня было!
Записан
wolf34
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 123


« Ответ #67 : 22.08.2011, 18:47:22 »

Кто то настраивал сей плагин?
Spoton Imaging

Источник:
http://extensions.joomla.org/extensions/photos-a-images/images/16474?qh=YToxNjp7aTowO3M6MTA6InZpcnR1ZW1hcnQiO2k6MTtzOjEyOiJ2aXJ0dWVtYXJ0J3MiO2k6MjtzOjExOiIndmlydHVlbWFydCI7aTozO3M6NjoiaW1hZ2VzIjtpOjQ7czo1OiJpbWFnZSI7aTo1O3M6NjoiaW1hZ2UnIjtpOjY7czo3OiJpbWFnaW5nIjtpOjc7czo4OiInaW1hZ2UnLCI7aTo4O3M6NjoiJ2ltYWdlIjtpOjk7czo3OiJpbWFnZSdzIjtpOjEwO3M6NzoiaW1hZ2VzJyI7aToxMTtzOjU6ImltYWdzIjtpOjEyO3M6NjoiaW1hZ2VkIjtpOjEzO3M6ODoiJ2ltYWdlcyciO2k6MTQ7czo3OiInaW1hZ2UnIjtpOjE1O3M6OToiaW1hZ2luZydzIjt9

Не сильно силен в английском. Там есть руководство по изменению файлов виртуамарта.
Записан
wolf34
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 123


« Ответ #68 : 26.08.2011, 21:44:13 »

Кому надо смена картинок при наведении, можете взять код из прикрепленного файла.
Там 3 строчки кода + скрипт в теле.
Подскажите куда именно вставить?
Записан
vtx
Давно я тут
****

Репутация: +16/-0
Offline Offline

Сообщений: 231



« Ответ #69 : 29.08.2011, 14:08:08 »

Подскажите куда именно вставить?
Это файл flypage...............
Записан
mio-mio
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 8



« Ответ #70 : 19.10.2011, 17:32:40 »

Помогите разобраться!
Я все сделала как написано: добавила код в shop.product_details.php и
все остальное тоже прописала и настроила... но оно не работает в IE!
Часть картинок(значительная) пропадает вообще т.е. описание открывается,
а вместо изображения - пустое место, хотя в Firefox все отлично загружается и отображается - подскажите, где проблема?

P.S. очень надо!
Записан
mio-mio
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 8



« Ответ #71 : 20.10.2011, 18:53:51 »

все... проблему решила сама, теперь отображается правильно  Smiley
если картинка одна, то она открывается в описании (сразу большая) и все.
если есть дополнительные картинки, то под большой картинкой будет подпись "Дополнительные изображения:"
и их thumbs + добавила thumb для основного изображения (чтобы можно было к нему вернуться).

если кому интересно, вот код:

shop.product_details.php
Код:

 /* MORE IMAGES (Дополнительные изображения) */
$more_images = "";
 if( !empty($images->images) )
   {
    $more_images = "<hr /><div style=\"font-weight:bold;float:left;\">Дополнительные изображения&nbsp;</div> (нажмите, чтобы увеличить):<br />";
    $more_images .= "<a href=\"javascript:doPic('$imageurl');\" style=\"cursor:hand;cursor:pointer;\">".$ps_product->image_tag($product_thumb_image, "alt=\"".$product_name."\"", 1)."</a>";
    $database->setQuery( "SELECT * FROM #__vm_product_files WHERE file_product_id='$product_id' AND file_is_image='1'" );
    $images = $database->loadObjectList();
    $i = 1;
    foreach( $images as $image )
     {
       $info = pathinfo( $image->file_name );
       $src = dirname($image->file_url)."/resized/". basename($image->file_name, ".".$info["extension"])."_".PSHOP_IMG_WIDTH."x".PSHOP_IMG_HEIGHT.".".$info["extension"];
       $alt = $image->file_title;
       $height = empty($image->file_image_thumb_height)? PSHOP_IMG_HEIGHT : $image->file_image_thumb_height;
       $width = empty($image->file_image_thumb_width)? PSHOP_IMG_WIDTH : $image->file_image_thumb_width;
       $src = str_replace( $mosConfig_absolute_path, $mosConfig_live_site, $image->file_name );
       if( strstr( $src, $mosConfig_live_site.$image->file_name))
       $src = str_replace( $mosConfig_live_site.$image->file_name, $mosConfig_live_site."/".$image->file_name, $src );
       $alt_full = $image->file_title;
       $height_full = $image->file_image_height+29;
       $width_full = $image->file_image_width+34;
      $border = 1;
      $titlewsp = str_replace(".", "", basename($image->file_name));
      $title = $image->file_title;
      $more_images .= "<a href=\"javascript:doPic('$src');\" style=\"cursor:hand;cursor:pointer;\"><img src=\"$src\" width=\"$width\" border=0/></a>";     
      ++$i;
     }//end foreach
   }

  /* END MORE IMAGES (Дополнительные изображения) */
?>

<SCRIPT LANGUAGE="JavaScript">
function doPic(imgName) {
document.mainpic.src = imgName;
}
</script>

замена для full_image
Код:
$template = str_replace( "{full_image}", "<img src=\"".IMAGEURL."product/$full_image\" width=\"".$width_full."\" name=\"mainpic\" height=\"".$height_full."\" border=\"0\"/>", $template );

выглядит примерно так:
Записан
DK-Scorp
Давно я тут
****

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 310


Всегда готов! К чему только....? ХЗ.....


« Ответ #72 : 23.11.2011, 12:09:17 »

mio-mio, а куда вставлять замену для full_image. Это для какой ветки VM? Меня интересует решение для 1.1.x Последнюю строку не нашел :-( (замену для full_image). Можете выложить Ваши исправленные файлы?
Записан
newjey
Давно я тут
****

Репутация: +2/-0
Offline Offline

Сообщений: 259


« Ответ #73 : 30.11.2011, 19:41:15 »

Кому надо смена картинок при наведении, можете взять код из прикрепленного файла.
Там 3 строчки кода + скрипт в теле.
Напишите пожалуйста код скрипта и код для изменения во флайпейдже, а то не понятно что там и где.
Записан
newjey
Давно я тут
****

Репутация: +2/-0
Offline Offline

Сообщений: 259


« Ответ #74 : 30.11.2011, 20:23:21 »

Несколько раз поднимался вопрос - как сделать несколько изображений в описании товара, причем не убогим способом, как реализовано стандартно, но иначе. Возникла необходимость, потому выложу свою модификацию.
Основная часть хака взята с форума VirtueMart.ru (к сожалению что то не работает, потому не могу привести автора)
Файл shop.product_details.php, находим строку с /** AVAILABILITY **/ и перед ней добавляем следующий код:
Код:
/* MORE IMAGES (Дополнительные изображения) */
$gavMore_Images = "";
$gavMore_Imagess = "";
 if( !empty($images->images) )
   {
    $gavMore_Images = "<hr /><div style=\"font-weight:bold;float:left;\">Дополнительные изображения&nbsp;</div> (нажмите, чтобы увеличить):<br />";
    $database->setQuery( "SELECT * FROM #__vm_product_files WHERE file_product_id='$product_id' AND file_is_image='1'" );
    $images = $database->loadObjectList();
    $i = 1;
    foreach( $images as $image )
     {
       $info = pathinfo( $image->file_name );
       $src = dirname($image->file_url)."/resized/". basename($image->file_name, ".".$info["extension"])."_".PSHOP_IMG_WIDTH."x".PSHOP_IMG_HEIGHT.".".$info["extension"];
       $alt = $image->file_title;
       $height = empty($image->file_image_thumb_height)? PSHOP_IMG_HEIGHT : $image->file_image_thumb_height;
       $width = empty($image->file_image_thumb_width)? PSHOP_IMG_WIDTH : $image->file_image_thumb_width;
       $src_full = str_replace( $mosConfig_absolute_path, $mosConfig_live_site, $image->file_name );
       if( strstr( $src, $mosConfig_live_site.$image->file_name))
       $src_full = str_replace( $mosConfig_live_site.$image->file_name, $mosConfig_live_site."/".$image->file_name, $src_full );
       $alt_full = $image->file_title;
       $height_full = $image->file_image_height+29;
       $width_full = $image->file_image_width+34;
      $border = 1;
      $titlewsp = str_replace(".", "", basename($image->file_name));
      $title = $image->file_title;
      $gavMore_Images .= "<a href=\"javascript:doPic('$src');\" style=\"cursor:hand;cursor:pointer;\"><img src=\"$src\" width=\"$width\" border=0/></a>";     
      ++$i;
     }//end foreach
   }
  /* END MORE IMAGES (Дополнительные изображения) */
?>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
browserName = navigator.appName;
browserVer = parseInt(navigator.appVersion);

ns3up = (browserName == "Netscape" && browserVer >= 3);
ie4up = (browserName.indexOf("Microsoft") >= 0 && browserVer >= 4);

function doPic(imgName) {
if (ns3up || ie4up) {
imgOn = ("" + imgName);
document.mainpic.src = imgOn;
   }
}
//  End -->
</script>
<?php
$gavMore_Imagess .= "<img name=\"mainpic\" src=\"$imageurl\" width=\"$width_full\"  border=\"0\">";

Далее здесь же находим блок /** NOW LET'S BEGIN AND FILL THE TEMPLATE **/ и добавляем две строки:
Код:
$template = str_replace( "{gavMore_Images}", $gavMore_Images, $template );
$template = str_replace( "{gavMore_Imagess}", $gavMore_Imagess, $template );
Теперь можем открыть файл flypage.php и оформить вывод наших двух заглушек, у себя сделал так:
Код:
<table border="0">
<tr>
<td>{gavMore_Imagess}</td>
</tr>
<tr>
<td>{gavMore_Images}</td>
</tr>
</table>

немного комментариев:
$gavMore_Images - выведет нам из полученного массива картинки дополнительных изображений (которые управляются через добавление файлов)
$gavMore_Imagess - непосредственно изображение товара

Подскажите пожалуйста как реализовать на VirtueMart 1.1.4 вывод доп изображений так что б при нажатии на дополнительное изображение оно не открывалось в новом окне,а заменяло большое изображение в карточке товара?
Спасибо.
Записан
zoloto
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 27


« Ответ #75 : 05.12.2011, 17:43:43 »

У меня Joomla 1.5.22 и VirtueMart 1.1.6 и все прекрасно работает. Спасибо, как раз то, что искал!

Joomla 1.5.25 + вирт 1.1.8 работает отлично.
Спасибо!
Записан
newjey
Давно я тут
****

Репутация: +2/-0
Offline Offline

Сообщений: 259


« Ответ #76 : 05.12.2011, 22:22:36 »

Кто-то разобрался как организовать под VirtueMart 1.1.4?
Записан
karnagos
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 10



« Ответ #77 : 16.02.2012, 16:16:49 »

Кто-то разобрался как организовать под VirtueMart 1.1.4?
Присоединяюсь.
Записан
Страниц: 1 2 [3]  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet