http://www.professorcloud.com/mainsite/cloud-zoom.htm
for nopCommerce v2.00
In Models>Media>PictureModel.cs add following line:
public string CloudPictureUrl { get; set; }
In Controllers>CatalogController.cs find:
foreach (var picture in pictures)
{
model.PictureModels.Add(new PictureModel()
{
ImageUrl = _pictureService.GetPictureUrl(picture, 70),
CloudPictureUrl = _pictureService.GetPictureUrl(picture, 300), //cloud zoom//
FullSizeImageUrl = _pictureService.GetPictureUrl(picture),
Title = string.Format(_localizationService.GetResource("Media.Product.ImageLinkTitleFormat"), model.Name),
AlternateText = string.Format(_localizationService.GetResource("Media.Product.ImageAlternateTextFormat"), model.Name),
});
}
add line marked in bold.
Open Views/Catalog/Product.cshtml and replace this bit of code after <!--product pictures--> comment
<div class="picture">
<script type="text/javascript" src="@Url.Content("~/Scripts/cloud-zoom.1.0.2.min.js")"></script>
<script type="text/javascript">
function UpdateMainImage(url, bigurl) {
var imgMain = document.getElementById('zoom1');
imgMain.href = url;
}
</script>
@if (Model.DefaultPictureZoomEnabled)
{
<a href="@Model.DefaultPictureModel.FullSizeImageUrl" rel="lightbox-pd" title="@Model.Name">
<img alt="@Model.DefaultPictureModel.AlternateText" src="@Model.DefaultPictureModel.ImageUrl" title="@Model.DefaultPictureModel.Title"/>
</a>
}
else
{
<div>
<a href="@Model.DefaultPictureModel.FullSizeImageUrl" id="zoom1" class="cloud-zoom" rel="useZoom: 'zoom1', showTitle: false, adjustX:-4, adjustY:-4, smallImage: '@Model.DefaultPictureModel.ImageUrl' ">
<img alt="@Model.DefaultPictureModel.AlternateText" title="@Model.DefaultPictureModel.Title" src="@Model.DefaultPictureModel.ImageUrl">
</a>
</div>
}
@if (Model.PictureModels.Count > 1)
{
<div class="cloudPicture">
@foreach (var picture in Model.PictureModels)
{
<a id="" class="cloud-zoom-gallery" href="@picture.FullSizeImageUrl" rel="useZoom: 'zoom1', smallImage: '@picture.CloudPictureUrl' " title="@Model.Name">
<img alt="@picture.AlternateText" src="@picture.ImageUrl"/>
</a>
}
</div>
}
<script type="text/javascript">
var i = 1;
$(".cloudPicture a").each(function () {
$(this).attr('id', '' + i + ''); i++;
});
$(document).ready(function () {
$('#1').click();
});
</script>
</div>
This code works with
One Image
http://db.tt/jHe6W7B
and
More than one image
http://db.tt/dsLcMiM