|
beliyadm
|
 |
« : 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;\">Дополнительные изображения </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 - непосредственно изображение товара
|
|
|
|
|
Записан
|
|
|
|
| |
Mr. Brightside
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 47
|
 |
« Ответ #61 : 15.04.2011, 19:18:56 » |
|
Вы что, подурели?
1. http://demo.joomlaxtc.com/kraftwerks/ - идем сюда, смотрим как воркает. 2. Качаем варезный шаблон. 3. Берем кусок кода, который нужен (легко кастомизируемо, кроссбраузерно, чистый CSS)
|
|
|
|
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #62 : 18.04.2011, 10:13:45 » |
|
Вы что, подурели?
1. http://demo.joomlaxtc.com/kraftwerks/ - идем сюда, смотрим как воркает. 2. Качаем варезный шаблон. 3. Берем кусок кода, который нужен (легко кастомизируемо, кроссбраузерно, чистый CSS)
уже прилепил флайпэйдж из этой темы)))
|
|
|
|
|
Записан
|
|
|
|
Geks
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 40
|
 |
« Ответ #63 : 13.08.2011, 03:04:54 » |
|
После переноса сайта на хостинг пропали мини картинки товаров, что может быть? ссылка на сайт
|
|
|
|
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #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
|
 |
« Ответ #65 : 15.08.2011, 11:48:01 » |
|
Я бы картинки заливал через csv, а не стандартными методами. плюс выключл динамическое изменение и создание картинок, и наконец-то избавился от русских букв в названии. зы. красивый метод вывода доп изображений. думаю многим понравился бы.
|
|
|
|
|
Записан
|
|
|
|
Geks
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 40
|
 |
« Ответ #66 : 20.08.2011, 20:46:37 » |
|
Я бы картинки заливал через csv, а не стандартными методами. плюс выключл динамическое изменение и создание картинок, и наконец-то избавился от русских букв в названии. зы. красивый метод вывода доп изображений. думаю многим понравился бы.
Спасибо тебе огромное! Благодаря тебе разобрался. Ошибка заключалась в том, что файлы надо было приводить к виду primer.jpg а не как у меня было!
|
|
|
|
|
Записан
|
|
|
|
wolf34
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 123
|
 |
« Ответ #67 : 22.08.2011, 18:47:22 » |
|
|
|
|
|
|
Записан
|
|
|
|
wolf34
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 123
|
 |
« Ответ #68 : 26.08.2011, 21:44:13 » |
|
Кому надо смена картинок при наведении, можете взять код из прикрепленного файла. Там 3 строчки кода + скрипт в теле.
Подскажите куда именно вставить?
|
|
|
|
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #69 : 29.08.2011, 14:08:08 » |
|
Подскажите куда именно вставить?
Это файл flypage...............
|
|
|
|
|
Записан
|
|
|
|
mio-mio
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 8
|
 |
« Ответ #70 : 19.10.2011, 17:32:40 » |
|
Помогите разобраться! Я все сделала как написано: добавила код в shop.product_details.php и все остальное тоже прописала и настроила... но оно не работает в IE! Часть картинок(значительная) пропадает вообще т.е. описание открывается, а вместо изображения - пустое место, хотя в Firefox все отлично загружается и отображается - подскажите, где проблема?
P.S. очень надо!
|
|
|
|
|
Записан
|
|
|
|
mio-mio
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 8
|
 |
« Ответ #71 : 20.10.2011, 18:53:51 » |
|
все... проблему решила сама, теперь отображается правильно  если картинка одна, то она открывается в описании (сразу большая) и все. если есть дополнительные картинки, то под большой картинкой будет подпись "Дополнительные изображения:" и их thumbs + добавила thumb для основного изображения (чтобы можно было к нему вернуться). если кому интересно, вот код: shop.product_details.php /* MORE IMAGES (Дополнительные изображения) */ $more_images = ""; if( !empty($images->images) ) { $more_images = "<hr /><div style=\"font-weight:bold;float:left;\">Дополнительные изображения </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
Пол: 
Сообщений: 310
Всегда готов! К чему только....? ХЗ.....
|
 |
« Ответ #72 : 23.11.2011, 12:09:17 » |
|
mio-mio, а куда вставлять замену для full_image. Это для какой ветки VM? Меня интересует решение для 1.1.x Последнюю строку не нашел :-( (замену для full_image). Можете выложить Ваши исправленные файлы?
|
|
|
|
|
Записан
|
|
|
|
|
newjey
|
 |
« Ответ #73 : 30.11.2011, 19:41:15 » |
|
Кому надо смена картинок при наведении, можете взять код из прикрепленного файла. Там 3 строчки кода + скрипт в теле.
Напишите пожалуйста код скрипта и код для изменения во флайпейдже, а то не понятно что там и где.
|
|
|
|
|
Записан
|
|
|
|
|
newjey
|
 |
« Ответ #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;\">Дополнительные изображения </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
Сообщений: 27
|
 |
« Ответ #75 : 05.12.2011, 17:43:43 » |
|
У меня Joomla 1.5.22 и VirtueMart 1.1.6 и все прекрасно работает. Спасибо, как раз то, что искал!
Joomla 1.5.25 + вирт 1.1.8 работает отлично. Спасибо!
|
|
|
|
|
Записан
|
|
|
|
|
newjey
|
 |
« Ответ #76 : 05.12.2011, 22:22:36 » |
|
Кто-то разобрался как организовать под VirtueMart 1.1.4?
|
|
|
|
|
Записан
|
|
|
|
karnagos
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 10
|
 |
« Ответ #77 : 16.02.2012, 16:16:49 » |
|
Кто-то разобрался как организовать под VirtueMart 1.1.4?
Присоединяюсь.
|
|
|
|
|
Записан
|
|
|
|
|