/// <summary> /// Handles the AfterSubmitPostedData event of the XFormControl. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EPiServer.XForms.WebControls.SaveFormDataEventArgs"/> instance containing the event data.</param> public void XForm_AfterSubmitPostedData(object sender, SaveFormDataEventArgs e) { XFormControl control = (XFormControl)sender; if (control.FormDefinition.PageGuidAfterPost != Guid.Empty) { PermanentContentLinkMap pageMap = PermanentLinkMapStore.Find(control.FormDefinition.PageGuidAfterPost) as PermanentContentLinkMap; if (pageMap != null) { string internalUrl = pageMap.MappedUrl.ToString(); internalUrl = UriSupport.AddLanguageSelection(internalUrl, ContentLanguage.PreferredCulture.Name); UrlBuilder urlBuilder = new UrlBuilder(internalUrl); //Rewrite the url to make sure that it gets the friendly url if such a provider has been configured. Global.UrlRewriteProvider.ConvertToExternal(urlBuilder, null, Encoding.UTF8); //Always cast UrlBuilders to get a correctly encoded url since ToString() is for "human" readability. control.Page.Response.Redirect((string)urlBuilder); return; } } //After the form has been posted we remove the form elements and add a "thank you message". control.Controls.Clear(); Label label = new Label(); label.CssClass = "thankyoumessage"; label.Text = LocalizationService.Current.GetString("/form/postedmessage"); control.Controls.Add(label); }
/// <summary> /// Gets the link URL with language parameter. /// </summary> /// <param name="page">The page.</param> /// <returns>The url to the page.</returns> protected static string GetLinkUrlWithLanguage(PageData page) { if (page == null) { return(String.Empty); } return(UriSupport.AddLanguageSelection(page.LinkURL, page.LanguageBranch)); }
internal static string LinkURL(this PageData page) { ObjectExtensions.ValidateNotNullArgument((object)page, "page"); string url = page["PageLinkURL"] as string; if (!string.IsNullOrWhiteSpace(url)) { url = UriSupport.AddLanguageSelection(url, page.LanguageBranch); } return(url ?? page.LinkURL); }
/// <summary>Unsupported INTERNAL API! Not covered by semantic versioning; might change without notice. Format info for a page that has changed and will be included inside the body of /// a subscription mail. /// </summary> /// <param name="subscriptionPage">The subscription page</param> /// <param name="page">Page that holds information that needs to be be formatted</param> /// <returns>A string that contains HTML by default</returns> /// <exclude /> public virtual string FormatPageForBody(PageData subscriptionPage, PageData page) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("<br><span class=MailDate>"); stringBuilder.Append("["); stringBuilder.Append(((DateTime)page[this._subscriptionMailDatePropertyName]).ToShortDateString()); stringBuilder.Append("]</span>"); stringBuilder.Append("<br><span class=MailPageName>"); stringBuilder.Append(page.Property["PageName"].ToWebString()); stringBuilder.Append("</span><br><span class=MailPagePreview>"); if (page["MainIntro"] != null) { stringBuilder.Append(page.Property["MainIntro"].ToWebString()); stringBuilder.Append("<br>"); } else { string str; if ((str = this.StripHtml(page["PageName"] as string, page["MainBody"] as string, (int)byte.MaxValue)) != null) { stringBuilder.Append(str); stringBuilder.Append("<br>"); } } stringBuilder.Append("</span><a class=MailReadMore href=\""); if (page.LinkURL != null && page.LinkURL.StartsWith("/") && !page.LinkURL.StartsWith("//")) { SiteDefinition byContent = this._siteDefinitionResolver.GetByContent((ContentReference)page.PageLink, true, true); stringBuilder.Append(byContent.SiteUrl.GetLeftPart(UriPartial.Authority)); } if (page.LinkType == PageShortcutType.External) { stringBuilder.Append(page.LinkURL); } else { UrlBuilder url = new UrlBuilder(UriSupport.AddLanguageSelection(page.LinkURL, ((ILocalizable)page).Language.TwoLetterISOLanguageName)); Global.UrlRewriteProvider.ConvertToExternal(url, (object)page.PageLink, Encoding.UTF8); stringBuilder.Append(url.ToString()); } stringBuilder.Append("\">"); if (subscriptionPage["SubscriptionMailReadMore"] != null) { stringBuilder.Append(subscriptionPage["SubscriptionMailReadMore"].ToString()); } else { stringBuilder.Append(this.LocalizationService.GetStringByCulture("/subscription/pagelinktext", "Read more", ((ILocalizable)subscriptionPage).Language)); } stringBuilder.Append("</a>"); stringBuilder.Append("<br>"); return(stringBuilder.ToString()); }
private static void AddUriToIndexItem(IContent content, IndexRequestItem item) { string url = PermanentLinkUtility.GetPermanentLinkVirtualPath(content.ContentGuid, ".aspx"); var locale = content as ILocale; if (locale != null && locale.Language != null) { url = UriSupport.AddLanguageSelection(url, locale.Language.Name); } item.Uri = new Url(url).Uri; }
/// <summary> /// Gets friendly url of the page. /// </summary> /// <param name="pageReference">The page reference.</param> /// <returns>The friendly url of page if UrlRewriteProvider.IsFurlEnabled</returns> public static string GetFriendlyUrl(this PageReference pageReference) { if (pageReference == null) { return(string.Empty); } var page = DataFactory.Instance.GetPage(pageReference); if (UrlRewriteProvider.IsFurlEnabled) { //var urlBuilder = new UrlBuilder(new Uri(page.LinkURL, UriKind.RelativeOrAbsolute)); var url = UriSupport.AddLanguageSelection(page.LinkURL, ContentLanguage.PreferredCulture.Name); UrlBuilder urlBuilder = new UrlBuilder(UriSupport.AbsoluteUrlBySettings(url)); Global.UrlRewriteProvider.ConvertToExternal(urlBuilder, page.PageLink, System.Text.Encoding.UTF8); return(urlBuilder.ToString()); } else { return(page.LinkURL); } }