/// <summary> /// Gets the image source. /// /// </summary> /// <param name="src">The image source.</param> private void GetSrc(out string src) { src = string.Empty; MediaItem mediaItem = GetMediaItem(); if (mediaItem == null) { return; } var thumbnailOptions = CustomMediaUrlOptions.GetMediaUrlOptions(mediaItem); int result; if (!int.TryParse(mediaItem.InnerItem["Height"], out result)) { result = 128; } thumbnailOptions.Height = Math.Min(128, result); thumbnailOptions.MaxWidth = 640; thumbnailOptions.UseDefaultIcon = true; var xmlValue = XmlValue; var cropRegion = HttpUtility.HtmlEncode(xmlValue.GetAttribute("cropregion")); if (!string.IsNullOrEmpty(cropRegion)) { thumbnailOptions.CropRegion = cropRegion; } src = CustomMediaManager.GetMediaUrl(mediaItem, thumbnailOptions); }
/// <summary> /// Gets the field value. /// /// </summary> /// <param name="args">The arguments.</param><contract><requires name="args" condition="none"/></contract> public new void Process(RenderFieldArgs args) { if (args.FieldTypeKey != "image with cropping") { return; } ImageRenderer renderer = CreateRenderer(); renderer.Item = args.Item; renderer.FieldName = args.FieldName; XmlValue xmlValue = new XmlValue(args.FieldValue, "image"); string width = xmlValue.GetAttribute("width"); string height = xmlValue.GetAttribute("height"); if (string.IsNullOrWhiteSpace(width) || string.IsNullOrWhiteSpace(height)) { string cropRegion = xmlValue.GetAttribute("cropregion"); try { var coordinates = CustomMediaManager.ConvertToIntArray(cropRegion); if ((coordinates[2] - coordinates[0] + coordinates[3] + coordinates[1]) > 0) { xmlValue.SetAttribute("width", (coordinates[2] - coordinates[0]).ToString()); xmlValue.SetAttribute("height", (coordinates[3] - coordinates[1]).ToString()); renderer.FieldValue = xmlValue.ToString(); } } catch (Exception ex) { Log.Error(ex.Message, ex, this); } } if (renderer.FieldValue == null) { renderer.FieldValue = args.FieldValue; } renderer.Parameters = args.Parameters; args.WebEditParameters.AddRange(args.Parameters); RenderFieldResult renderFieldResult = renderer.Render(); args.Result.FirstPart = renderFieldResult.FirstPart; args.Result.LastPart = renderFieldResult.LastPart; args.DisableWebEditContentEditing = true; args.DisableWebEditFieldWrapping = true; args.WebEditClick = "return Sitecore.WebEdit.editControl($JavascriptParameters, 'webedit:chooseimage')"; }