protected string GenerateProxyUrl(ProxyRenderContext proxyRenderContext, string url, bool isForm) { if (string.IsNullOrEmpty(url)) { return(""); } if (Uri.IsWellFormedUriString(url, UriKind.Absolute)) { var destinationURI = new Uri(url); var host = proxyRenderContext.ProxyPosition.HostUri; if (destinationURI.Host.ToLower() == host.Host.ToLower()) { url = destinationURI.PathAndQuery; } } if (!url.StartsWith("#") && !url.StartsWith("javascript:") && !Uri.IsWellFormedUriString(url, UriKind.Absolute)) { var encodedModuleUrl = ModuleUrlHelper.Encode(url); var routeValues = proxyRenderContext.PageRequestContext.ModuleUrlContext.GetRouteValuesWithModuleUrl(proxyRenderContext.ProxyPosition.PagePositionId, encodedModuleUrl, false); var urlHelper = new UrlHelper(proxyRenderContext.ControllerContext.RequestContext); var pageUrl = urlHelper.FrontUrl(proxyRenderContext.PageRequestContext.Site, proxyRenderContext.PageRequestContext.RequestChannel).PageUrl(proxyRenderContext.PageRequestContext.Page.FullName, routeValues).ToString(); if (isForm) { pageUrl = Kooboo.Web.Url.UrlUtility.AddQueryParam(pageUrl, Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter, proxyRenderContext.ProxyPosition.PagePositionId); } return(pageUrl); } else { return(url); } }
public string GetModuleUrl(string modulePositionId) { string moduleUrlSplitter = string.Format(ModuleUrlSplitterFormat, modulePositionId); if (ModuleRouteValues[moduleUrlSplitter] != null) { //Decode the module url before using. Because the other module urls will be used when next page url generating. return("~" + ModuleUrlHelper.Decode(ModuleRouteValues[moduleUrlSplitter].ToString())); } return(string.Empty); }
public string GetModuleUrl(string modulePositionId) { string moduleUrlSplitter = string.Format(ModuleUrlSplitterFormat, modulePositionId); if (ModuleRouteValues[moduleUrlSplitter] != null) { //Decode the module url before using. Because the other module urls will be used when next page url generating. return("~" + ModuleUrlHelper.Decode(ModuleRouteValues[moduleUrlSplitter].ToString())); } else { if (!string.IsNullOrEmpty(ModuleUrl) && this.ModuleCountInPage == 1) { return("~/" + ModuleUrlHelper.Decode(this.ModuleUrl).TrimStart('/')); } } return(string.Empty); }
protected string GenerateProxyUrl(Page_Context pageContext, string positionId, string url, bool isForm) { if (string.IsNullOrEmpty(url)) { return(""); } if (!url.StartsWith("#") && !url.StartsWith("javascript:") && !Uri.IsWellFormedUriString(url, UriKind.Absolute)) { var encodedModuleUrl = ModuleUrlHelper.Encode(url); var routeValues = pageContext.PageRequestContext.ModuleUrlContext.GetRouteValuesWithModuleUrl(positionId, encodedModuleUrl, false); var pageUrl = pageContext.FrontUrl.PageUrl(pageContext.PageRequestContext.Page.FullName, routeValues).ToString(); if (isForm) { pageUrl = Kooboo.Web.Url.UrlUtility.AddQueryParam(pageUrl, Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter, positionId); } return(pageUrl); } else { return(url); } }