|
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 - непосредственно изображение товара
|
|
|
|
|
Записан
|
|
|
|
| |
|
bulya123
Гость
|
 |
« Ответ #1 : 14.11.2007, 16:34:12 » |
|
 А Вы не в курсе я вывести только 3 дополнительное изображение или только второе, т.е. конкретная задача в том чтобы в {$gavMore_Images2} вывести дополнительные изображения с первого по второе, а {$gavMore_Images3} вывести только 3. Заранее спасибо. 
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #2 : 14.11.2007, 20:11:04 » |
|
сразу не скажу, но если поковыряться то можно и так вывести
|
|
|
|
|
Записан
|
|
|
|
|
bulya123
Гость
|
 |
« Ответ #3 : 15.11.2007, 10:48:55 » |
|
Дайте плз хотябы идею, а то ничего не получается.
|
|
|
|
|
Записан
|
|
|
|
|
Skeeter
Гость
|
 |
« Ответ #4 : 10.04.2008, 19:56:06 » |
|
Подскажите, а как данную вещь изменить для Joomla 13 и ВМРЕ 13? Очень нужно... не работает
|
|
|
|
|
Записан
|
|
|
|
ninJo
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 7
|
 |
« Ответ #5 : 14.04.2008, 19:40:33 » |
|
СУПЕР, то что надо
a это для какой джумлы?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #6 : 14.04.2008, 19:45:33 » |
|
a это для какой джумлы?
к движку хак отношения не имеет, версию компонента не помню, BMPE последняя на тот момент
|
|
|
|
|
Записан
|
|
|
|
-L-
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 38
|
 |
« Ответ #7 : 02.06.2008, 21:53:09 » |
|
а можешь выложить только ту часть кода которая отвечает за вывод маленькой картинки без ссылки на большую, а то я в php не силен
|
|
|
|
|
Записан
|
|
|
|
SolopoV
Давно я тут
  
Репутация: +7/-0
Offline
Пол: 
Сообщений: 319
зеленею...
|
 |
« Ответ #8 : 07.08.2008, 20:41:55 » |
|
Несколько раз поднимался вопрос - как сделать несколько изображений в описании товара, причем не убогим способом, как реализовано стандартно, но иначе. Возникла необходимость, потому выложу свою модификацию. Основная часть хака взята с форума 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 - непосредственно изображение товара Существует ли решение данного вопроса для VM версии 1.1.0 ??
|
|
|
|
|
Записан
|
|
|
|
laked
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 5
|
 |
« Ответ #9 : 15.08.2008, 19:23:26 » |
|
Спасибо огромное за мудрый скрипт, но у меня версия магазина : ВМРЕ 1.0.15b Стабильный [Голодный воробей] (если это имеет вообще значение) и благодаря твоему скрипту получается следующее, всё работает, но при нажатии на дополнительное изображение, оно открывается в большом формате, тупо растянув маленькое изображение, и всё дико пикселит. Подскажи плиз в чем заминка, почему не подгружается большая картинка, а растягивается маленькая?
|
|
|
|
|
Записан
|
|
|
|
laked
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 5
|
 |
« Ответ #10 : 15.08.2008, 20:09:39 » |
|
разобралась сама поставила вместо $src_full, $src.. Только вот ещё одна заминка: когда листаешь привьюшки, пропадает gavMore_Imagess, и уже вернуть её нельзя, т.к. в привьюшках она отсутствует. Как её внести в списочек привьюшек, что бы как все просматривать и перелистывать?
|
|
|
|
|
Записан
|
|
|
|
Ole888
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 46
|
 |
« Ответ #11 : 22.10.2008, 01:25:59 » |
|
а не подскажете, как сделать, что если доп. изображений нету, то чтобы выводилось, скажем, что картинок нет..
|
|
|
|
|
Записан
|
|
|
|
oleizey
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 22
|
 |
« Ответ #12 : 13.11.2008, 17:20:49 » |
|
Мучала долго, но все решила. Спасибо большое. Но текст теперь сдвинулся вниз под все фотографии, а нужно чтобы он был справа. Баловалась долго с colspan rowspan ничего не меняется. Может подскажете в чем дело?
|
|
|
|
|
Записан
|
|
|
|
|
Alex Revo
|
 |
« Ответ #13 : 19.11.2008, 14:35:14 » |
|
В Опере переключение картинок не работает, только если убрать проверку браузера: if (ns3up || ie4up) { }
|
|
|
|
« Последнее редактирование: 19.11.2008, 14:42:30 от Alex Revo »
|
Записан
|
|
|
|
Yyqq
Захожу иногда

Репутация: +2/-0
Offline
Сообщений: 8
|
 |
« Ответ #14 : 24.01.2009, 16:05:27 » |
|
Те кто долго мучились, но все решили, подскажите пожалуйста... Может можно выложить уже исправленный код? В последней версии VirtueMart не нашел в данном файле именно таких комментариев, пытался вставлял всё это куда то, но ничего так и не вышло хорошего 
|
|
|
|
|
Записан
|
|
|
|
oleizey
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 22
|
 |
« Ответ #15 : 08.02.2009, 23:05:48 » |
|
У меня Вирт 1.0.15. для новых видимо совсем иные изменения
|
|
|
|
|
Записан
|
|
|
|
Denis E
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 9
|
 |
« Ответ #16 : 12.02.2009, 00:52:25 » |
|
В Опере переключение картинок не работает, только если убрать проверку браузера: if (ns3up || ie4up) { }
Убираю проверку, перестает работать везде) кто знает как сделать чтоб в опере работало подскажите плииииз!
|
|
|
|
|
Записан
|
|
|
|
|
Alex Revo
|
 |
« Ответ #17 : 12.02.2009, 09:31:26 » |
|
Вот мой файл.
|
|
|
|
|
Записан
|
|
|
|
Denis E
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 9
|
 |
« Ответ #18 : 12.02.2009, 13:18:16 » |
|
ну с вашим файлом они у меня открываются в новом окне(картинки)... вариант переключения конечно намного интереснее, вот бы только в опере работал 
|
|
|
|
|
Записан
|
|
|
|
|
Alex Revo
|
 |
« Ответ #19 : 12.02.2009, 13:24:40 » |
|
Да, я забыл просто что там с просмотром. Я делал так чтобы они менялись в ожном окне, но там возникла сложность с возвратом основной картинки, поэтому решил оставить так.
|
|
|
|
|
Записан
|
|
|
|
Denis E
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 9
|
 |
« Ответ #20 : 12.02.2009, 13:31:08 » |
|
а я основную картинку тоже в файлы прикрепил и отлично!
Не в тему: может вы случайно знаете ещё ответ на этот вопрос http://joomlaforum.ru/index.php/topic,40768.new.html ))))
|
|
|
|
|
Записан
|
|
|
|
Denis E
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 9
|
 |
« Ответ #21 : 12.02.2009, 23:51:19 » |
|
Alex Revo а может вы знаете как хотябы сделать проверку браузера, и в случае если опера чтоб открывались в окошках а не переключались?
|
|
|
|
|
Записан
|
|
|
|
|
Alex Revo
|
 |
« Ответ #22 : 13.02.2009, 09:52:44 » |
|
Покажите свой текущий код
|
|
|
|
|
Записан
|
|
|
|
Denis E
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 9
|
 |
« Ответ #23 : 14.02.2009, 23:44:14 » |
|
НУ собстно вот он <?php defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' ); /** * * @version $Id: shop.product_details.php 1188 2008-01-25 19:39:58Z soeren_nb $ * @package VirtueMart * @subpackage html * @copyright Copyright (C) 2004-2005 Soeren Eberhardt. 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. * See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details. * * http://virtuemart.net */ mm_showMyFileName( __FILE__ );
require_once(CLASSPATH . 'ps_product_files.php' ); require_once(CLASSPATH . 'ps_product.php' ); $ps_product = new ps_product;
require_once(CLASSPATH . 'ps_product_category.php' ); $ps_product_category = new ps_product_category;
require_once(CLASSPATH . 'ps_product_attribute.php' ); $ps_product_attribute = new ps_product_attribute;
require_once(CLASSPATH . 'ps_product_type.php' ); $ps_product_type = new ps_product_type; require_once(CLASSPATH . 'ps_reviews.php' );
/* Flypage Parameter has old page syntax: shop.flypage * so let's get the second part - flypage */ $flypage = mosGetParam($_REQUEST, "flypage", FLYPAGE);
$flypage = str_replace( 'shop.', '', $flypage);
$product_id = intval( mosgetparam($_REQUEST, "product_id", null) ); $product_sku = $db->getEscaped( mosgetparam($_REQUEST, "sku", '' ) ); $category_id = mosgetparam($_REQUEST, "category_id", null); $manufacturer_id = mosgetparam($_REQUEST, "manufacturer_id", null); $Itemid = $sess->getShopItemid(); $db_product = new ps_DB;
// Get the product info from the database $q = "SELECT * FROM `#__{vm}_product` WHERE "; if( !empty($product_id)) { $q .= "`product_id`=$product_id"; } elseif( !empty($product_sku )) { $q .= "`product_sku`='$product_sku'"; } else { mosRedirect( $_SERVER['PHP_SELF']."?option=com_virtuemart&keyword=".urlencode($_SESSION['keyword'])."&category_id={$_SESSION['category_id']}&limitstart={$_SESSION['limitstart']}", $VM_LANG->_PHPSHOP_PRODUCT_NOT_FOUND ); }
if( !$perm->check("admin,storeadmin") ) { $q .= " AND `product_publish`='Y'"; if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") { $q .= " AND `product_in_stock` > 0 "; } } $db_product->query( $q );
// Redirect back to Product Browse Page on Error if( !$db_product->next_record() ) { $vmLogger->err( $VM_LANG->_PHPSHOP_PRODUCT_NOT_FOUND ); return; } if( empty($product_id)) { $product_id = $db_product->f('product_id'); } $product_parent_id = $db_product->f("product_parent_id"); if ($product_parent_id != 0) { $dbp= new ps_DB; $dbp->query("SELECT * FROM #__{vm}_product WHERE product_id='$product_parent_id'" ); $dbp->next_record(); }
// Let's have a look wether the product has images. if( $product_parent_id != 0 ) { $db->query( "SELECT COUNT(file_id) AS images FROM #__{vm}_product_files WHERE file_product_id=$product_parent_id AND file_is_image=1" ); } else { $db->query( "SELECT COUNT(file_id) AS images FROM #__{vm}_product_files WHERE file_product_id=$product_id AND file_is_image=1" ); } $db->next_record(); $images = new stdClass(); $images->images = $db->f("images");
// Let's have a look wether the product has related products. $q = "SELECT product_sku, related_products FROM #__{vm}_product,#__{vm}_product_relations "; $q .= "WHERE #__{vm}_product_relations.product_id='$product_id' AND product_publish='Y' "; $q .= "AND FIND_IN_SET(#__{vm}_product.product_id, REPLACE(related_products, '|', ',' )) LIMIT 0, 4"; $db->query( $q ); /*// This shows randomly selected products from the products table // if you don't like to set up related products for each product $q = "SELECT product_sku FROM #__{vm}_product "; $q .= "WHERE product_publish='Y' AND product_id != $product_id "; $q .= "ORDER BY RAND() LIMIT 0, 4"; $db->query( $q );*/ $related_product_html = ""; if( $db->num_rows() > 0 ) { $related_product_html .= "<hr/>\n"; $related_product_html .= "<h3>".$VM_LANG->_PHPSHOP_RELATED_PRODUCTS_HEADING.":</h3>\n"; $related_product_html .= "<table width=\"100%\" align=\"center\"><tr>\n"; while( $db->next_record() ) { $related_product_html .= "<td valign=\"top\">".$ps_product->product_snapshot( $db->f('product_sku') )."</td>\n"; } $related_product_html .= "</tr></table>\n"; } /** GET THE PRODUCT NAME **/ $product_name = shopMakeHtmlSafe( $db_product->f("product_name") ); if( $db_product->f("product_publish") == "N" ) $product_name .= " (".$VM_LANG->_CMN_UNPUBLISHED.")"; $product_description = $db_product->f("product_desc"); if( (str_replace("<br />", "" , $product_description)=='') && ($product_parent_id!=0) ) { $product_description = $dbp->f("product_desc"); // Use product_desc from Parent Product } /** Get the CATEGORY NAVIGATION **/ $navigation_pathway = ""; $navigation_childlist = ""; $pathway_appended = false; if (empty($category_id)) { $q = "SELECT category_id FROM #__{vm}_product_category_xref WHERE product_id = '$product_id' LIMIT 0,1"; $db->query( $q ); $db->next_record(); if( !$db->f("category_id") ) { // The Product Has no category entry and must be a Child Product // So let's get the Parent Product $q = "SELECT product_id FROM #__{vm}_product WHERE product_id = '".$db_product->f("product_parent_id")."' LIMIT 0,1"; $db->query( $q ); $db->next_record(); $q = "SELECT category_id FROM #__{vm}_product_category_xref WHERE product_id = '".$db->f("product_id")."' LIMIT 0,1"; $db->query( $q ); $db->next_record(); } $_GET['category_id'] = $category_id = $db->f("category_id"); } $navigation_pathway .= $ps_product_category->get_navigation_list($category_id); $navigation_pathway .= " ".$ps_product_category->pathway_separator()." ". $product_name;
if ($ps_product_category->has_childs($category_id) ) { $navigation_childlist .= $ps_product_category->get_child_list($category_id); } /* Set Dynamic Pathway */ $mainframe->appendPathWay( $navigation_pathway ); /* Set Dynamic Page Title */ $mainframe->setPageTitle( html_entity_decode( substr($product_name, 0, 60 ), ENT_QUOTES ));
/* Prepend Product Short Description Meta Tag "description" */ $mainframe->prependMetaTag( "description", strip_tags( $db_product->f("product_s_desc")) );
/** Show an "Edit PRODUCT"-Link ***/ if ($perm->check("admin,storeadmin")) { $edit_link = "<a href=\"". sefRelToAbs($mosConfig_live_site."/index2.php?page=product.product_form&next_page=shop.product_details&product_id=$product_id&option=com_virtuemart&Itemid=$Itemid")."\"> <img src=\"images/M_images/edit.png\" width=\"16\" height=\"16\" alt=\"". $VM_LANG->_PHPSHOP_PRODUCT_FORM_EDIT_PRODUCT ."\" border=\"0\" /></a>"; } else { $edit_link = ""; } /** LINK TO MANUFACTURER POP-UP **/ $manufacturer_id = $ps_product->get_manufacturer_id($product_id); $manufacturer_name = $ps_product->get_mf_name($product_id); $manufacturer_link = ""; if( $manufacturer_id && !empty($manufacturer_name) ) { $link = "$mosConfig_live_site/index2.php?page=shop.manufacturer_page&manufacturer_id=$manufacturer_id&output=lite&option=com_virtuemart&Itemid=".$Itemid; $text = '( '.$manufacturer_name.' )'; $manufacturer_link .= vmPopupLink( $link, $text ); // Avoid JavaScript on PDF Output if( @$_REQUEST['output'] == "pdf" ) $manufacturer_link = "<a href=\"$link\" target=\"_blank\" title=\"$text\">$text</a>"; } /** PRODUCT PRICE **/ if (_SHOW_PRICES == '1') { /** Change - Begin */ if( $db_product->f("product_unit") && VM_PRICE_SHOW_PACKAGING_PRICELABEL) $product_price = "<strong>". $VM_LANG->_PHPSHOP_CART_PRICE_PER_UNIT.' ('.$db_product->f("product_unit")."):</strong>"; else /** Change - End */ $product_price = "<strong>". $VM_LANG->_PHPSHOP_CART_PRICE. ": </strong>"; $product_price .= $ps_product->show_price( $product_id ); } else $product_price = ""; /** Change Packaging - Begin */ /** PRODUCT PACKAGING **/ if ( $db_product->f("product_packaging") ) { $packaging = $db_product->f("product_packaging") & 0xFFFF; $box = ($db_product->f("product_packaging") >> 16) & 0xFFFF; $product_packaging = ""; if ( $packaging ) { $product_packaging .= $VM_LANG->_PHPSHOP_PRODUCT_PACKAGING1.$packaging; if( $box ) $product_packaging .= "<br/>"; } if ( $box ) $product_packaging .= $VM_LANG->_PHPSHOP_PRODUCT_PACKAGING2.$box; $product_packaging = str_replace("{unit}",$db_product->f("product_unit")?$db_product->f("product_unit") : $VM_LANG->_PHPSHOP_PRODUCT_FORM_UNIT_DEFAULT,$product_packaging); } else $product_packaging = ""; /** Change Packaging - End */
/** PRODUCT IMAGE **/ $product_image = ""; $full_image = $db_product->f("product_full_image"); $full_image = $product_parent_id!=0 && !$db_product->f("product_full_image") ? $dbp->f("product_full_image") : $db_product->f("product_full_image"); // Change $product_thumb_image = $product_parent_id!=0 && !$db_product->f("product_thumb_image") ? $dbp->f("product_thumb_image") : $db_product->f("product_thumb_image"); // Change
/* Wrap the Image into an URL when applicable */ if ( $db_product->f("product_url") ) { $product_image = "<a href=\"". $db_product->f("product_url")."\" title=\"".$product_name."\" target=\"_blank\">"; $product_image .= $ps_product->image_tag($full_image, "alt=\"".$product_name."\"", 0); $product_image .= "</a>"; } /* Show the Thumbnail with a Link to the full IMAGE */ elseif( !$db_product->f("product_url") ) { if( empty($full_image ) ) { $product_image = "<img src=\"".IMAGEURL.NO_IMAGE."\" alt=\"".$product_name."\" border=\"0\" />"; } else { // file_exists doesn't work on remote files, // so returns false on remote files // This should fix the "Long Page generation bug" if( file_exists( IMAGEPATH."product/$full_image" )) { /* Get image width and height */ if( $image_info = @getimagesize(IMAGEPATH."product/$full_image") ) { $width = $image_info[0] + 20; $height = $image_info[1] + 20; } } else { $width = 640; $height= 480; } if( stristr( $full_image, "http" ) ) { $imageurl = $full_image; } else { $imageurl = IMAGEURL."product/$full_image"; } /* Build the "See Bigger Image" Link */ if( @$_REQUEST['output'] != "pdf" ) { $link = $imageurl; $text = $ps_product->image_tag($product_thumb_image, "alt=\"".$product_name."\"", 1)."<br/>".$VM_LANG->_PHPSHOP_FLYPAGE_ENLARGE_IMAGE; // vmPopupLink can be found in: htmlTools.class.php $product_image = vmPopupLink( $link, $text, $width, $height ); } else { $product_image = "<a href=\"$imageurl\" target=\"_blank\">".$ps_product->image_tag($product_thumb_image, "alt=\"".$product_name."\"", 1)."</a>"; } } }
/* MORE IMAGES ??? */ $more_images = ""; if( !empty($images->images) ) { /* Build the JavaScript Link */ $more_images = "<a href=\"$mosConfig_live_site/index.php?option=com_virtuemart&page=shop.view_images&flypage=".mosGetParam($_REQUEST, 'flypage')."&product_id=$product_id&category_id=$category_id&Itemid=$Itemid\">"; $more_images .= "<img src=\"".IMAGEURL."ps_image/more_images.png\" width=\"16\" height=\"16\" border=\"0\" alt=\"".$VM_LANG->_PHPSHOP_MORE_IMAGES ." (".$images->images.")\" />"; $more_images .= "<br />".$VM_LANG->_PHPSHOP_MORE_IMAGES." (".$images->images.")</a>"; } /* Files? */ $file_list = ps_product_files::get_file_list( $product_id ); /* MORE IMAGES (?????????????? ???????????) */ $gavMore_Images = ""; $gavMore_Imagess = ""; if( !empty($images->images) ) { $gavMore_Images = "<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 = 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;padding:5px\"><img src=\"$src\" height=\"70px\" border=1/></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\" height=\"300px\" border=\"0\">"; /** AVAILABILITY **/ // This is the place where it shows: // Availability: 24h, In Stock: 5 etc. // You can make changes to this functionality in the file: classes/ps_product.php if( @$_REQUEST['output'] != "pdf" ) $product_availability = $ps_product->get_availability($product_id); /* SHOW RATING */ $product_rating = ""; if (PSHOP_ALLOW_REVIEWS == '1') { $product_rating = "<span class=\"contentheading\">".$VM_LANG->_PHPSHOP_CUSTOMER_RATING.":</span><br />"; $product_rating .= ps_reviews::allvotes( $product_id ); }
/* ADD-TO-CART */ $addtocart = "<div> <form action=\"". $mm_action_url."index.php\" method=\"post\" name=\"addtocart\" id=\"addtocart\">" .$ps_product_attribute->list_attribute($product_id) // added for the advanced attribute modification .$ps_product_attribute->list_advanced_attribute($product_id) // end added for advanced attribute modification .$ps_product_attribute->list_custom_attribute($product_id); // end added for custom attribute modification if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_PHPSHOP_PRODUCT_CALL ) && $auth['show_prices']) { $quantity = mosGetParam( $_REQUEST, 'quantity', 1 ); $addtocart .= " <p><label for=\"quantity\" style=\"vertical-align: middle;\">".$VM_LANG->_PHPSHOP_CART_QUANTITY.":</label> <input type=\"text\" class=\"inputbox\" size=\"4\" id=\"quantity\" name=\"quantity\" value=\"$quantity\" style=\"vertical-align: middle;\" /> <input type=\"submit\" "; $addtocart .= "style=\"text-align:center;background-position:bottom left;width:160px;height:35px;cursor:pointer;border:none;font-weight:bold;font-family:inherit;background: url('". IMAGEURL ."ps_image/".PSHOP_ADD_TO_CART_STYLE ."') no-repeat left center transparent;vertical-align: middle;\" "; $addtocart .= "value=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO ."\" title=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO."\" /> </p> <input type=\"hidden\" name=\"flypage\" value=\"shop.$flypage\" /> <input type=\"hidden\" name=\"page\" value=\"shop.cart\" /> <input type=\"hidden\" name=\"manufacturer_id\" value=\"$manufacturer_id\" /> <input type=\"hidden\" name=\"category_id\" value=\"$category_id\" /> <input type=\"hidden\" name=\"func\" value=\"cartAdd\" /> <input type=\"hidden\" name=\"option\" value=\"$option\" /> <input type=\"hidden\" name=\"Itemid\" value=\"$Itemid\" />"; } $addtocart .= "</form> </div>";
/* LIST ALL REVIEWS **/ if (PSHOP_ALLOW_REVIEWS == '1') { /*** Show all reviews available ***/ $product_reviews = ps_reviews::product_reviews( $product_id ); /*** Show a form for writing a review ***/ $product_reviewform = ps_reviews::reviewform( $product_id ); } else { $product_reviews = $product_reviewform = ""; } /* LINK TO VENDOR-INFO POP-UP **/ $vend_id = $ps_product->get_vendor_id($product_id); $vend_name = $ps_product->get_vendorname($product_id); $link = "$mosConfig_live_site/index2.php?page=shop.infopage&vendor_id=$vend_id&output=lite&option=com_virtuemart&Itemid=".$Itemid; $text = $VM_LANG->_PHPSHOP_VENDOR_FORM_INFO_LBL; $vendor_link = vmPopupLink( $link, $text ); // Avoid JavaScript on PDF Output if( @$_REQUEST['output'] == "pdf" ) $vendor_link = "<a href=\"$link\" target=\"_blank\" title=\"$text\">$text</a>"; if ($product_parent_id!=0 && !$ps_product_type->product_in_product_type($product_id)) { $product_type = $ps_product_type->list_product_type($product_parent_id); } else { $product_type = $ps_product_type->list_product_type($product_id); }
/** * Read the template file into a String variable. * Then replace the placeholders with HTML formatted product details * * function read_file( $file, $defaultfile='') ***/ $template = read_file( PAGEPATH.'templates/product_details/'.basename($flypage).'.php', PAGEPATH.'templates/product_details/flypage.php');
/** NOW LET'S BEGIN AND FILL THE TEMPLATE **/ $template = str_replace( "{gavMore_Images}", $gavMore_Images, $template ); $template = str_replace( "{gavMore_Imagess}", $gavMore_Imagess, $template ); $template = str_replace( "{navigation_pathway}", $navigation_pathway, $template ); $template = str_replace( "{navigation_childlist}", $navigation_childlist, $template ); $template = str_replace( "{product_name}", $product_name, $template ); $template = str_replace( "{product_image}", $product_image, $template ); $template = str_replace( "{full_image}", $full_image, $template ); // to display the full image on flypage $template = str_replace( "{more_images}", $more_images, $template ); $template = str_replace( "{file_list}", $file_list, $template ); $template = str_replace( "{edit_link}", $edit_link, $template ); $template = str_replace( "{manufacturer_link}", $manufacturer_link, $template ); $template = str_replace( "{product_price}", $product_price, $template ); $template = str_replace( "{product_s_desc}", $db_product->f("product_s_desc"), $template ); $template = str_replace( "{product_description}", $product_description, $template ); $template = str_replace( "{product_weight}", $db_product->f("product_weight"), $template ); $template = str_replace( "{product_sku}", $db_product->f("product_sku"), $template ); $template = str_replace( "{addtocart}", $addtocart, $template ); $template = str_replace( "{product_reviews}", $product_reviews, $template ); $template = str_replace( "{product_reviewform}", $product_reviewform, $template ); $template = str_replace( "{product_availability}", $product_availability, $template ); $template = str_replace( "{vendor_link}", $vendor_link, $template ); $template = str_replace( "{mosConfig_live_site}", $mosConfig_live_site, $template ); $template = str_replace( "{related_products}", $related_product_html, $template ); $template = str_replace( "{product_type}", $product_type, $template ); // Changed Product Type $template = str_replace( "{product_packaging}", $product_packaging, $template ); // Changed Packaging $template = str_replace( "{product_width}", $db_product->f("product_width"), $template ); // ?????? $template = str_replace( "{product_height}", $db_product->f("product_height"), $template ); // ?????? $template = str_replace( "{product_length}", $db_product->f("product_length"), $template ); // ?????
/* Really cool regular expression that let's you easily translate the flypage Usage: {vm_lang:_PHPSHOP__PHPSHOP_ACCOUNT_TITLE} will print the content of $VM_LANG->_PHPSHOP_ACCOUNT_TITLE from the current language */ $template = preg_replace("/{vm_lang:([^}]*)}/ie", "\$VM_LANG->\\1", $template);
/* Finish and Print out the Page */ echo $template;
?>
|
|
|
|
|
Записан
|
|
|
|
|
Alex Revo
|
 |
« Ответ #24 : 16.02.2009, 11:21:21 » |
|
Попробуй вставить скрипт в таком варианте: <SCRIPT LANGUAGE="JavaScript"> browserName = navigator.appName; browserVer = parseInt(navigator.appVersion); ns3up = (browserName == "Netscape" && browserVer >= 3); ie4up = (browserName.indexOf("Microsoft") >= 0 && browserVer >= 4);
function doPic(imgName) { imgOn = ("" + imgName); document.mainpic.src = imgOn; } </script>
|
|
|
|
|
Записан
|
|
|
|
|
bankir
Гость
|
 |
« Ответ #25 : 18.02.2009, 18:14:14 » |
|
Всем привет! Все сделал так как описано в этом топике. Немного переделал под свои нужды. Все классно. Но!!! Но качество большого изображения стало хуже. Это хорошо видно на картинках с изгибами, особенно в ИЕ (они как будто надорваны). Помогите решить эту проблему.
|
|
|
|
|
Записан
|
|
|
|
unchowam
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 8
|
 |
« Ответ #26 : 23.02.2009, 15:25:50 » |
|
Если я правильно понимаю то для joomla 1.5.9 и VM 1.13 ваш код нужно вставить в файл theme.php. Не подскажите как правильно это реализовать?Я не силен в РНР ,но мне кажется что в theme.php описывается class, и там есть уже две крутых функции: function vmlistAdditionalImages и function vmMoreImagesLink , ваш код нужно добавить как новую функцию?Или функцию vmlistAdditionalImages преоброзовать как нибудь?Или я не прав? Помогите разобраться разобраться с этим очень прошу?
|
|
|
|
|
Записан
|
|
|
|
kewlman
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 68
|
 |
« Ответ #27 : 23.02.2009, 15:31:39 » |
|
Нашел сам , кому понадобится пользуйтесь
http://forum.virtuemart.net/index.php?action=dlattach;topic=39569.0;attach=6843 просто заменить все файлы.
|
|
|
|
|
Записан
|
|
|
|
unchowam
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 8
|
 |
« Ответ #28 : 23.02.2009, 15:43:15 » |
|
Нашел сам , кому понадобится пользуйтесь
http://forum.virtuemart.net/index.php?action=dlattach;topic=39569.0;attach=6843 просто заменить все файлы.
Не подскажешь где можно посмотреть как все это работает?
|
|
|
|
|
Записан
|
|
|
|
unchowam
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 8
|
 |
« Ответ #29 : 23.02.2009, 16:24:58 » |
|
После просмотра сайта, и просмотра файлов темы так я и не понял в чем отличие от темы default.Может я туплю? Мне нужно вывести дополнительные изображения товара на одну страницу с основным как описано в этой теме выше. Может подскажешь как это сделать?
|
|
|
|
|
Записан
|
|
|
|
urodoff
Осваиваюсь на форуме
 
Репутация: +14/-0
Offline
Пол: 
Сообщений: 77
|
 |
« Ответ #30 : 11.05.2009, 02:07:05 » |
|
Люди помогите кто - то реализовывал данное в 1.1.3....
|
|
|
|
|
Записан
|
|
|
|
maxlili
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
Учение - мучение!!!! И всякое такое!
|
 |
« Ответ #31 : 21.02.2010, 20:04:08 » |
|
|
|
|
|
|
Записан
|
|
|
|
BMerlin
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 8
|
 |
« Ответ #32 : 24.04.2010, 14:05:24 » |
|
Срочно нужна реализация этого в VirtueMart 1.1.4. Кто сделал подобное,прошу вас поделиться решением вывода большой большой картники не всплывающем окне, а как в первом сообщении темы после нажатия на любую из маленьких дополнительных картинок внизу. С уважением,
|
|
|
|
« Последнее редактирование: 24.04.2010, 15:13:23 от BMerlin »
|
Записан
|
|
|
|
maxlili
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
Учение - мучение!!!! И всякое такое!
|
 |
« Ответ #33 : 24.04.2010, 14:10:48 » |
|
решение было найдено, просто надо переименовать картинки чтоб были на латинском и подходили для MySQL, то есть все картинки там прописываются и заносятся в базу, от туда и происходит загрузка 
|
|
|
|
|
Записан
|
|
|
|
gDenisk
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 83
|
 |
« Ответ #34 : 30.04.2010, 12:29:24 » |
|
поддерживаю вопрос - как это реализовать на VM 1.1 ?
|
|
|
|
|
Записан
|
|
|
|
tomclancys
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 82
|
 |
« Ответ #35 : 12.05.2010, 09:47:53 » |
|
Тоже поддерживаю вопрос - как это реализовать на VM 1.1 ?
|
|
|
|
|
Записан
|
|
|
|
|
Ecspert
|
 |
« Ответ #36 : 12.05.2010, 14:32:23 » |
|
есть скрипт flypage - http://demo.yagendoo.com/joomla/?view=virtuemart_themes стоит 150$, кому надо беЗплатно - пишите в личку
|
|
|
|
|
Записан
|
|
|
|
LDP
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 9
|
 |
« Ответ #37 : 22.08.2010, 14:00:08 » |
|
Ecspert, Спасибо, получил скрипт, сегодня буду проверять.
|
|
|
|
|
Записан
|
|
|
|
Aviva
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 83
|
 |
« Ответ #38 : 26.08.2010, 19:48:52 » |
|
А кто-нибудь знает, как сделать скроллер? Чтобы под главным горизонтально прокручивались дополнительные изображения?
|
|
|
|
|
Записан
|
|
|
|
Eholov
Осваиваюсь на форуме
 
Репутация: +6/-0
Offline
Сообщений: 58
|
 |
« Ответ #39 : 27.01.2011, 14:49:06 » |
|
Нужно было, чтоб на странице с детальной информацией о товаре были дополнительные фото этого товара и при нажатии на миниатюры этих фото их увеличенное изображение появлялось не в новом окне как лайтбокс и не в новом обычном окне с миниатюрами, а на той же странице вместо большого фото товара как тут http://www.sagegreenstyle.com/wall-art?page=shop.product_details&flypage=flypage_sgs.tpl&product_id=9&category_id=4 Решение нашел тут http://forum.virtuemart.net/index.php?topic=41796.0 Переведу  Качаем плагин Phatfusion http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,4136/Itemid,35/ Включаем плагин в Расширения - Плагины. Смотрим, чтоб в VirtueMart было разрешено использование плагинов (Virtuemart - Настройка - Общие настройки - Разрешить использование мамботов / плагинов в описании товара и категории) Редактируем файл administrator\components\com_virtuemart\html\shop.product_details.php - Найти код $product_image = $tpl->vmBuildFullImageLink( $productArray ); // Custom code for phatfusion slideshow $path = 'components/com_virtuemart/shop_image/product/'; $db_k= new ps_DB(); $db_k->query( "SELECT * FROM `#__{vm}_product` WHERE `product_id`=".intval($product_id)); $full = $path . $db_k->f('product_full_image'); $thumb = $path . $db_k->f('product_thumb_image'); $db_jk = new ps_DB(); $more=''; $db_jk->query( "SELECT * FROM `#__{vm}_product_files` WHERE `file_product_id`=".intval($product_id). " AND `file_is_image`=1 AND `file_published`=1 ORDER BY file_id ASC"); while( $db_jk->next_record() ) { $mfull = ltrim($db_jk->f('file_name'),'/'); $mthumb = ereg_replace('product','product/resized',ltrim($db_jk->f('file_name'),'/')); $mext = '_'. $db_jk->f('file_image_thumb_height'). 'x'. $db_jk->f('file_image_thumb_width'). '.'.$db_jk->f('file_extension'); $ereg = '.'. $db_jk->f('file_extension'); $mthumb = ereg_replace($ereg, $mext, $mthumb); $more .= ';'. $mfull . ',' . $mthumb; } $product_image = '{phatfusionslideshow '. $full .','. $thumb . $more .'}'; $product_image = vmCommonHTML::ParseContentByPlugins( $product_image ); выводится и большое и маленькие изображение в шаблоне товара кодом <?php echo $product_image ?> Скажу сразу, что с VirtueMart 1.1.6 НЕ РАБОТАЕТ Работает точно с 1.1.4 Но 1.1.4 не ставится на Joomla 1.5.22 а ставится на 1.5.20
|
|
|
|
« Последнее редактирование: 27.01.2011, 17:42:38 от Eholov »
|
Записан
|
|
|
|
Werwolf
Захожу иногда

Репутация: +2/-0
Offline
Сообщений: 19
|
 |
« Ответ #40 : 27.01.2011, 17:01:25 » |
|
Скажу сразу, что с VirtueMart 1.1.6 НЕ РАБОТАЕТ Работает точно с 1.1.4 Но 1.1.4 не ставится на Joomla 1.5.22 а ставится на 1.5.20
У меня Joomla 1.5.22 и VirtueMart 1.1.6 и все прекрасно работает. Спасибо, как раз то, что искал!
|
|
|
|
|
Записан
|
|
|
|
Chifu
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 63
|
 |
« Ответ #41 : 30.01.2011, 08:40:56 » |
|
Eholov, очень интересная фишка, думаю пригодится, но вот вопрос возник. Можно ли сделать так, чтобы всё работало как описано, но при нажатии на большое изображение в flypage открывалось в лайтбоксе, или без него, исходное изображение, или в этом случаи исходное изображение и должно быть именно такого размера как здесь? Надеюсь я правильно объяснил 
|
|
|
|
|
Записан
|
|
|
|
koshsh
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #42 : 30.01.2011, 15:40:47 » |
|
(http://rutaobao.com/pages/item_detail.aspx?ItemId=7420558237&Nick=cocoywen#1) А кто нить знает как реализовать вот такое отображение картинок на flypage? Чтоб при наведении на картинку справа появлялся увеличенный вариант просматриваемой части картинки... Пните хотя б в каком направлении думать, или может даже купить где?
|
|
|
|
« Последнее редактирование: 30.01.2011, 15:50:34 от koshsh »
|
Записан
|
|
|
|
koshsh
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #43 : 31.01.2011, 07:10:00 » |
|
Бороздя просторы инета нашел вот ЭТО и вот ЭТО, стоит это 13 баксов и £29 соответственно. Идея как я понял называется Image Magnification zoom. Может быть у кого-то уже есть такой flypage?
|
|
|
|
|
Записан
|
|
|
|
koshsh
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #44 : 31.01.2011, 15:52:01 » |
|
предлагаю скинуться на покупку флайпейджа, вношу 200WMR 
|
|
|
|
|
Записан
|
|
|
|
Governor
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 32
|
 |
« Ответ #45 : 02.02.2011, 18:14:44 » |
|
предлагаю скинуться на покупку флайпейджа, вношу 200WMR  £29 это лицензия на 1 сайт, может кто из умеющих сварганит нам такое и ему дадим +100 р. Яндекс
|
|
|
|
|
Записан
|
|
|
|
|
|
|
adjuster
|
 |
« Ответ #47 : 03.02.2011, 16:14:47 » |
|
(http://rutaobao.com/pages/item_detail.aspx?ItemId=7420558237&Nick=cocoywen#1) А кто нить знает как реализовать вот такое отображение картинок на flypage? Чтоб при наведении на картинку справа появлялся увеличенный вариант просматриваемой части картинки... Пните хотя б в каком направлении думать, или может даже купить где?
Вот описание, как это сделать http://www.websovet.com/jquery-dlya-chajnikov-effekt-linzy-plagin-jqzoom
|
|
|
|
|
Записан
|
|
|
|
Вованище
Осваиваюсь на форуме
 
Репутация: +19/-0
Offline
Пол: 
Сообщений: 136
<target = blank>
|
 |
« Ответ #48 : 03.02.2011, 17:08:17 » |
|
Вот описание, как это сделать
Таких описаний в сети много, но не каждый сможет прикрутить это к VirtueMart. Могу сделать, если предложения о вознаграждении в силе.
|
|
|
|
|
Записан
|
|
|
|
koshsh
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #49 : 04.02.2011, 17:16:47 » |
|
Таких описаний в сети много, но не каждый сможет прикрутить это к VirtueMart. Могу сделать, если предложения о вознаграждении в силе.
Даю 200WMR за то чтоб прикрутил к моему флайпейджику, идет? 
|
|
|
|
|
Записан
|
|
|
|
Вованище
Осваиваюсь на форуме
 
Репутация: +19/-0
Offline
Пол: 
Сообщений: 136
<target = blank>
|
 |
« Ответ #50 : 04.02.2011, 18:48:27 » |
|
Даю 200WMR за то чтоб прикрутил к моему флайпейджику, идет?  Идет. Давай свой шаблон Вирта.
|
|
|
|
« Последнее редактирование: 04.02.2011, 21:05:47 от Вованище »
|
Записан
|
|
|
|
koshsh
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #51 : 04.02.2011, 21:42:21 » |
|
Качай здесь архив(юзаю eny_fly_default.tpl)
|
|
|
|
« Последнее редактирование: 04.02.2011, 22:15:14 от koshsh »
|
Записан
|
|
|
|
Вованище
Осваиваюсь на форуме
 
Репутация: +19/-0
Offline
Пол: 
Сообщений: 136
<target = blank>
|
 |
« Ответ #52 : 04.02.2011, 22:34:18 » |
|
Еще пара вопросов Товары загружаешь через CSV или админку? Нужны ли доп. картинки? К какому флайпейджу прикручивать?
|
|
|
|
« Последнее редактирование: 04.02.2011, 22:37:46 от Вованище »
|
Записан
|
|
|
|
koshsh
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #53 : 05.02.2011, 06:27:51 » |
|
Еще пара вопросов Товары загружаешь через CSV или админку? Нужны ли доп. картинки? К какому флайпейджу прикручивать?
Доп картинки конечно нужны, там как раз стоят внизу уменьшенные под большой. Товары планирую через offlinevm импортировать, пока еще не использовал =) Флайпейдж юзаю eny_fly_default.tpl Слушай, а давай я тебе еще 200 WMR накину если на флайпедж выведешь кнопочку одну 
|
|
|
|
|
Записан
|
|
|
|
koshsh
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #54 : 06.02.2011, 12:21:34 » |
|
Про быструю загрузку дополнительных картинок ЗДЕСЬ доходчиво расписано
|
|
|
|
|
Записан
|
|
|
|
Вованище
Осваиваюсь на форуме
 
Репутация: +19/-0
Offline
Пол: 
Сообщений: 136
<target = blank>
|
 |
« Ответ #55 : 06.02.2011, 18:21:59 » |
|
Про быструю загрузку дополнительных картинок ЗДЕСЬ доходчиво расписано Так вот, что-бы сделать быструю загрузку дополнительных картинок нужно поправить всего два файла и потом загружать катринки по FTP для каждого товара в отдельную папку. ИМХО делать отдельные папки для каждого товара - геморно. Загружать через CSV удобней.
|
|
|
|
|
Записан
|
|
|
|
Governor
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 32
|
 |
« Ответ #56 : 07.02.2011, 12:50:49 » |
|
а мне поможешь тоже? http://www.zdoor.ru/online.html?page=shop.product_details&flypage=garden_flypage.tpl&product_id=22&category_id=10
100 ядов
|
|
|
|
|
Записан
|
|
|
|
koshsh
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #57 : 18.02.2011, 09:22:50 » |
|
Спасибо бо-о-ольшое Вованище за то что помог сделать так как я хотел, воткнул на флайпейдж лупу к фоткам и подсказал как добавить дополнительные картинки товара вот что получилось (еще пока в разработке)
|
|
|
|
|
Записан
|
|
|
|
Eholov
Осваиваюсь на форуме
 
Репутация: +6/-0
Offline
Сообщений: 58
|
 |
« Ответ #58 : 11.03.2011, 08:06:55 » |
|
(http://rutaobao.com/pages/item_detail.aspx?ItemId=7420558237&Nick=cocoywen#1) А кто нить знает как реализовать вот такое отображение картинок на flypage? Чтоб при наведении на картинку справа появлялся увеличенный вариант просматриваемой части картинки... Пните хотя б в каком направлении думать, или может даже купить где?
Я прописывал размер большой картинки в стиле img в template.css шаблона сайта. На этом сайте http://waygps.com.ua пример работы. Только недостаток в том, что всем картинкам на сайте придется прописывать размеры. иначе они станут такого размера, как большое фото.
|
|
|
|
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #59 : 15.03.2011, 13:34:07 » |
|
Кому надо смена картинок при наведении, можете взять код из прикрепленного файла. Там 3 строчки кода + скрипт в теле.
|
|
|
|
|
Записан
|
|
|
|
Mr. Brightside
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 47
|
 |
« Ответ #60 : 15.04.2011, 19:18:56 » |
|
Вы что, подурели?
1. http://demo.joomlaxtc.com/kraftwerks/ - идем сюда, смотрим как воркает. 2. Качаем варезный шаблон. 3. Берем кусок кода, который нужен (легко кастомизируемо, кроссбраузерно, чистый CSS)
|
|
|
|
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #61 : 18.04.2011, 10:13:45 » |
|
Вы что, подурели?
1. http://demo.joomlaxtc.com/kraftwerks/ - идем сюда, смотрим как воркает. 2. Качаем варезный шаблон. 3. Берем кусок кода, который нужен (легко кастомизируемо, кроссбраузерно, чистый CSS)
уже прилепил флайпэйдж из этой темы)))
|
|
|
|
|
Записан
|
|
|
|
Geks
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 40
|
 |
« Ответ #62 : 13.08.2011, 03:04:54 » |
|
После переноса сайта на хостинг пропали мини картинки товаров, что может быть? ссылка на сайт
|
|
|
|
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #63 : 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
|
 |
« Ответ #64 : 15.08.2011, 11:48:01 » |
|
Я бы картинки заливал через csv, а не стандартными методами. плюс выключл динамическое изменение и создание картинок, и наконец-то избавился от русских букв в названии. зы. красивый метод вывода доп изображений. думаю многим понравился бы.
|
|
|
|
|
Записан
|
|
|
|
Geks
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 40
|
 |
« Ответ #65 : 20.08.2011, 20:46:37 » |
|
Я бы картинки заливал через csv, а не стандартными методами. плюс выключл динамическое изменение и создание картинок, и наконец-то избавился от русских букв в названии. зы. красивый метод вывода доп изображений. думаю многим понравился бы.
Спасибо тебе огромное! Благодаря тебе разобрался. Ошибка заключалась в том, что файлы надо было приводить к виду primer.jpg а не как у меня было!
|
|
|
|
|
Записан
|
|
|
|
wolf34
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 123
|
 |
« Ответ #66 : 22.08.2011, 18:47:22 » |
|
|
|
|
|
|
Записан
|
|
|
|
wolf34
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 123
|
 |
« Ответ #67 : 26.08.2011, 21:44:13 » |
|
Кому надо смена картинок при наведении, можете взять код из прикрепленного файла. Там 3 строчки кода + скрипт в теле.
Подскажите куда именно вставить?
|
|
|
|
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #68 : 29.08.2011, 14:08:08 » |
|
Подскажите куда именно вставить?
Это файл flypage...............
|
|
|
|
|
Записан
|
|
|
|
mio-mio
Захожу иногда

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

Репутация: +0/-0
Offline
Пол: 
Сообщений: 8
|
 |
« Ответ #70 : 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
Всегда готов! К чему только....? ХЗ.....
|
 |
« Ответ #71 : 23.11.2011, 12:09:17 » |
|
mio-mio, а куда вставлять замену для full_image. Это для какой ветки VM? Меня интересует решение для 1.1.x Последнюю строку не нашел :-( (замену для full_image). Можете выложить Ваши исправленные файлы?
|
|
|
|
|
Записан
|
|
|
|
|
newjey
|
 |
« Ответ #72 : 30.11.2011, 19:41:15 » |
|
Кому надо смена картинок при наведении, можете взять код из прикрепленного файла. Там 3 строчки кода + скрипт в теле.
Напишите пожалуйста код скрипта и код для изменения во флайпейдже, а то не понятно что там и где.
|
|
|
|
|
Записан
|
|
|
|
|
newjey
|
 |
« Ответ #73 : 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
|
 |
« Ответ #74 : 05.12.2011, 17:43:43 » |
|
У меня Joomla 1.5.22 и VirtueMart 1.1.6 и все прекрасно работает. Спасибо, как раз то, что искал!
Joomla 1.5.25 + вирт 1.1.8 работает отлично. Спасибо!
|
|
|
|
|
Записан
|
|
|
|
|
newjey
|
 |
« Ответ #75 : 05.12.2011, 22:22:36 » |
|
Кто-то разобрался как организовать под VirtueMart 1.1.4?
|
|
|
|
|
Записан
|
|
|
|
karnagos
Захожу иногда

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