コード例 #1
0
ファイル: IWebProxy.cs プロジェクト: nguyenhuy2911/CMS
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            }
        }