Renames canvas editor into grid again

This commit is contained in:
per ploug
2014-10-07 13:39:18 +02:00
parent bba4db46d2
commit b6fd0489e2
32 changed files with 78 additions and 220 deletions

View File

@@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Umbraco.Core.Models;
using System.Web.Mvc;
using Umbraco.Web.Templates;
using System.IO;
using System.Web.Routing;
using Umbraco.Web.Mvc;
namespace Umbraco.Web
{
public static class GridTemplateExtensions
{
public static MvcHtmlString GetGridHtml(this IPublishedProperty property, string framework = "bootstrap3")
{
var view = "Grid/" + framework;
return new MvcHtmlString(renderPartialViewToString(view, property.Value));
}
public static MvcHtmlString GetGridHtml(this IPublishedContent contentItem)
{
return GetGridHtml(contentItem, "bodyText", "bootstrap3");
}
public static MvcHtmlString GetGridHtml(this IPublishedContent contentItem, string propertyAlias)
{
return GetGridHtml(contentItem, propertyAlias, "bootstrap3");
}
public static MvcHtmlString GetGridHtml(this IPublishedContent contentItem, string propertyAlias, string framework)
{
var view = "Grid/" + framework;
var model = contentItem.GetProperty(propertyAlias).Value;
return new MvcHtmlString(renderPartialViewToString(view, model));
}
private static string renderPartialViewToString(string viewName, object model)
{
using (var sw = new StringWriter())
{
var cc = new ControllerContext();
cc.RequestContext = new RequestContext(UmbracoContext.Current.HttpContext, new RouteData()
{
Route = RouteTable.Routes["Umbraco_default"]
});
var routeHandler = new RenderRouteHandler(ControllerBuilder.Current.GetControllerFactory(), UmbracoContext.Current);
var routeDef = routeHandler.GetUmbracoRouteDefinition(cc.RequestContext, UmbracoContext.Current.PublishedContentRequest);
cc.RequestContext.RouteData.Values.Add("action", routeDef.ActionName);
cc.RequestContext.RouteData.Values.Add("controller", routeDef.ControllerName);
var partialView = ViewEngines.Engines.FindPartialView(cc, viewName);
var viewData = new ViewDataDictionary();
var tempData = new TempDataDictionary();
viewData.Model = model;
var viewContext = new ViewContext(cc, partialView.View, viewData, tempData, sw);
partialView.View.Render(viewContext, sw);
partialView.ViewEngine.ReleaseView(cc, partialView.View);
return sw.GetStringBuilder().ToString();
}
}
}
}