Virtuemart: вывод списка уменьшенных фото на странице товара


идем вот сюда \components\com_virtuemart\themes\default\templates\product_details\flypage.tpl.php и ищем вот такой код:

echo $this->vmlistAdditionalImages( $product_id, $images );

комментируем или заменяем на следующий:

foreach( $images as $image )
{          
$thumb = str_replace ('/product', '/product/resized', $image->file_url);
$thumb = str_replace ('.jpg', '_'.$image->file_image_thumb_height.'x'.$image->file_image_thumb_width.'.jpg', $thumb);
echo "<a href='".$image->file_url."' title='".$image->file_title."' rel='lightbox[product".$product_id."]'><img src='".$thumb."' height='".$image->file_image_thumb_height."' width='".$image->file_image_thumb_width."'/></a>";
}

в результате на странице с товаром будут выводится уменьшенные копии (привью) дополнительных изображений!

на одном из сайтов выявилось, что к именам уменьшенных фото не всегда добавляются данные размеров. в итоге код flypage.tpl.php выглядит вот так:

foreach( $images as $image )
{
$thumb = str_replace ('/product', '/product/resized', $image->file_name);
if (!file_exists($_SERVER['DOCUMENT_ROOT'].$thumb)) { $thumb = str_replace ('.jpg', '_'.$image->file_image_thumb_height.'x'.$image->file_image_thumb_width.'.jpg', $thumb); }
if (!file_exists($_SERVER['DOCUMENT_ROOT'].$thumb)) { $thumb = $image->file_name; }
echo "<a href='/' title='".$image->file_title."' rel='lightbox[product".$product_id."]'><img src='".$thumb."' alt='".$image->file_title."' class='browseProductImage'/></a>";
}

но возникла другая проблема - с плагином \plugins\system\RDZoomer_VM.php - не правильно обрабатывались данные для уменьшенных и в итоге выдавало битую ссылку. в переборе

ПОЛЕЗНО  Breezingforms - FROM email

if (subdir == "resized"){

находим (image = image.split('_')[0];) и меняем, добавляя условия:

if (image.search(/_[0-9]+x[0-9]+/)>=0) { image = image.substring(0, image.lastIndexOf("_"));

и такие же правки вносим в /components/com_virtuemart/themes/default/theme.php иначе при выборе цвета из выпадающего списка картинки будут битые. итоговый кусок кода выглядит вот так:

		$headtag.= '		var subdir = dir.split(/[/]+/).pop();								'."\n\r";		#ultima subdir thumb
		$headtag.= '		if (subdir == "resized"){											'."\n\r";		#se ultima subdir "resized"....
		$headtag.= '			dir = dir.substr(0,len-9);										'."\n\r";		#....elimino ultima subdir
		$headtag.= '			ext = image.split(\'.\')[1];									'."\n\r";		#tolgo suffix nome thumb
		$headtag.= '			image = image.split(\'.\')[0];		/*console.log(image);	ddd = image.search(/_[0-9]+x[0-9]+/); console.log(ddd);*/						'."\n\r";	
		$headtag.= '			if (image.search(/_[0-9]+x[0-9]+/)>=0) { image = image.substring(0, image.lastIndexOf("_")); /*console.log(image);*/ }								'."\n\r";	
		$headtag.= '			image = image+\'.\'+ext;										'."\n\r";	
		$headtag.= '		}																	'."\n\r";