Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #4
0
        /// <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;
        }
Exemple #6
0
        /// <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);
            }
        }