Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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')";
        }