Updatedt tinyMCEImageHelper to use IFileSystem when creating scaled images

This commit is contained in:
Matt@MBP13-PC
2012-08-20 11:56:16 -01:00
parent 085f4a4fcf
commit 91acf40b3b

View File

@@ -5,6 +5,7 @@ using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Text.RegularExpressions;
using System.Web;
using Umbraco.Core.IO;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic.Files;
using umbraco.IO;
@@ -135,6 +136,8 @@ namespace umbraco.editorControls.tinymce
private static string doResize(Hashtable attributes, out int finalWidth, out int finalHeight)
{
var fs = FileSystemProviderManager.Current.GetFileSystemProvider<IMediaFileSystem>();
string resizeDim = helper.FindAttribute(attributes, "width") + "," +
helper.FindAttribute(attributes, "height");
string[] resizeDimSplit = resizeDim.Split(',');
@@ -159,18 +162,22 @@ namespace umbraco.editorControls.tinymce
}
// update orgSrc to remove umbraco reference
string resolvedMedia = IOHelper.ResolveUrl(SystemDirectories.Media);
if (IOHelper.ResolveUrl(orgSrc).IndexOf(resolvedMedia) > -1)
//string resolvedMedia = IOHelper.ResolveUrl(SystemDirectories.Media);
//if (IOHelper.ResolveUrl(orgSrc).IndexOf(resolvedMedia) > -1)
//{
// orgSrc = SystemDirectories.Media + orgSrc.Substring(orgSrc.IndexOf(resolvedMedia) + resolvedMedia.Length); //, orgSrc.Length - orgSrc.IndexOf(String.Format("/media/", SystemDirectories.Media)));
//}
//string fullSrc = IOHelper.MapPath(orgSrc);
var orgPath = fs.GetRelativePath(orgSrc);
if (fs.FileExists(orgPath))
{
orgSrc = SystemDirectories.Media + orgSrc.Substring(orgSrc.IndexOf(resolvedMedia) + resolvedMedia.Length); //, orgSrc.Length - orgSrc.IndexOf(String.Format("/media/", SystemDirectories.Media)));
var uf = new UmbracoFile(orgPath);
newSrc = uf.Resize(newWidth, newHeight);
}
string fullSrc = IOHelper.MapPath(orgSrc);
UmbracoFile uf = new UmbracoFile(fullSrc);
newSrc = uf.Resize(newWidth, newHeight);
/*
// Load original image
Image image = Image.FromFile(fullSrc);
@@ -214,8 +221,9 @@ namespace umbraco.editorControls.tinymce
//the admin editor successfully displays the image because the HTML is rewritten, but when you get the RTE content in the template
//it hasn't been replaced
//2011-08-12 added a IOHelper.ResolveUrl call around newSrc
//2012-08-20 IFileSystem now takes care of URL resolution, so should be safe to assume newSrc is a full/absolute URL
return
" src=\"" + IOHelper.ResolveUrl(newSrc) + "\" width=\"" + newWidth.ToString() + "\" height=\"" + newHeight.ToString() +
" src=\"" + newSrc + "\" width=\"" + newWidth.ToString() + "\" height=\"" + newHeight.ToString() +
"\"";
}
}