protected void Page_Load(object sender, System.EventArgs e)
        {
            if (SiteSecurity.IsInRole("admin") == false)
            {
                Response.Redirect("~/FormatPage.aspx?path=SiteConfig/accessdenied.format.html");
            }



            if (!IsPostBack ||
                Session["newtelligence.DasBlog.Web.EditBlogRollBox.OpmlTree"] == null)
            {
                SharedBasePage requestPage = Page as SharedBasePage;
                foreach (string file in Directory.GetFiles(SiteConfig.GetConfigPathFromCurrentContext(), "*.opml"))
                {
                    listFiles.Items.Add(Path.GetFileName(file));
                }
                if (listFiles.Items.Count == 0)
                {
                    listFiles.Items.Add("blogroll.opml");
                }
                Session["newtelligence.DasBlog.Web.EditBlogRollBox.baseFileName"] = baseFileName = listFiles.Items[0].Text;
                string fileName = Path.Combine(SiteConfig.GetConfigPathFromCurrentContext(), baseFileName);
                LoadOutline(fileName);
            }
            else
            {
                baseFileName = Session["newtelligence.DasBlog.Web.EditBlogRollBox.baseFileName"] as string;
                opmlTree     = Session["newtelligence.DasBlog.Web.EditBlogRollBox.OpmlTree"] as Opml;
            }
            BindGrid();
        }
 protected void Eventlog_Load(object sender, System.EventArgs e)
 {
     this.CategoryName = "admin";
     if (SiteSecurity.IsInRole("admin") == false)
     {
         Response.Redirect("~/FormatPage.aspx?path=SiteConfig/accessdenied.format.html");
     }
 }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (SiteSecurity.IsInRole("admin") == false)
            {
                Response.Redirect("~/FormatPage.aspx?path=SiteConfig/accessdenied.format.html");
            }

            //set the current page <li> tag to here
            string filePath = this.Request.FilePath;

            if (filePath.EndsWith("CrosspostReferrers.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                crosspost.Attributes["class"]           = "here";
                hyperlinkCrosspostReferrers.NavigateUrl = "";
            }
            else if (filePath.EndsWith("UserClickThroughs.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                userclickthrough.Attributes["class"]   = "here";
                hyperlinkUserClickThroughs.NavigateUrl = "";
            }
            else if (filePath.EndsWith("ClickThroughs.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                clickthrough.Attributes["class"]   = "here";
                hyperlinkClickThroughs.NavigateUrl = "";
            }
            else if (filePath.EndsWith("AggBugs.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                aggbugs.Attributes["class"]  = "here";
                hyperlinkAggBugs.NavigateUrl = "";
            }
            else if (filePath.EndsWith("Referrers.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                referrers.Attributes["class"]  = "here";
                hyperLinkReferrers.NavigateUrl = "";
            }
            else if (filePath.EndsWith("Eventlog.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                eventlog.Attributes["class"]  = "firstHere";
                hyperLinkEventlog.NavigateUrl = "";
            }

            if (this.Request.QueryString["date"] != null)
            {
                AddDateQueryString(hyperLinkEventlog);
                AddDateQueryString(hyperLinkReferrers);
                AddDateQueryString(hyperlinkAggBugs);
                AddDateQueryString(hyperlinkClickThroughs);
                AddDateQueryString(hyperlinkUserClickThroughs);
                AddDateQueryString(hyperlinkCrosspostReferrers);
            }
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (SiteSecurity.IsInRole("admin") == false)
            {
                Response.Redirect("~/FormatPage.aspx?path=SiteConfig/accessdenied.format.html");
            }

            resmgr = ((System.Resources.ResourceManager)ApplicationResourceTable.Get());

            if (!IsPostBack || crosspostSites == null)
            {
                LoadSites( );
            }

            BindGrid();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            SharedBasePage requestPage = this.Page as SharedBasePage;

            if (SiteSecurity.IsInRole("admin") == false)
            {
                Response.Redirect("~/FormatPage.aspx?path=SiteConfig/accessdenied.format.html");
            }

            resmgr = ((ResourceManager)ApplicationResourceTable.Get());

            if (!IsPostBack || contentFilters == null)
            {
                LoadFilters();
                UpdateTestBox();
            }

            BindGrid();
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (SiteSecurity.IsInRole("admin") == false)
            {
                Response.Redirect("~/FormatPage.aspx?path=SiteConfig/accessdenied.format.html");
            }

            resmgr = ((System.Resources.ResourceManager)ApplicationResourceTable.Get());

            if (!IsPostBack ||
                Session["newtelligence.DasBlog.Web.EditNavigatorLinksBox.NavigationRoot"] == null)
            {
                SharedBasePage requestPage = Page as SharedBasePage;
                string         fileName    = Path.Combine(SiteConfig.GetConfigPathFromCurrentContext(), baseFileName);
                LoadList(fileName);
            }
            else
            {
                navigationRoot = Session["newtelligence.DasBlog.Web.EditNavigatorLinksBox.NavigationRoot"] as NavigationRoot;
            }
            BindGrid();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (SiteSecurity.IsInRole("admin") == false)
            {
                Response.Redirect("~/FormatPage.aspx?path=SiteConfig/accessdenied.format.html");
            }

            ID = "EditConfigBox";

            SharedBasePage requestPage = Page as SharedBasePage;
            SiteConfig     siteConfig  = requestPage.SiteConfig;

            if (!IsPostBack)
            {
                textContact.Text                       = siteConfig.Contact;
                textCopyright.Text                     = siteConfig.Copyright;
                textPassword.Text                      = passwordPlaceHolder;
                textConfirmPassword.Text               = passwordPlaceHolder;
                textFrontPageCategory.Text             = siteConfig.FrontPageCategory;
                textFrontPageDayCount.Text             = siteConfig.FrontPageDayCount.ToString();
                textFrontPageEntryCount.Text           = siteConfig.FrontPageEntryCount.ToString();
                textEntriesPerPage.Text                = siteConfig.EntriesPerPage.ToString();
                textContentLookaheadDays.Text          = siteConfig.ContentLookaheadDays.ToString();
                textMainMaxDaysInRss.Text              = siteConfig.RssDayCount.ToString();
                textMainMaxEntriesInRss.Text           = siteConfig.RssMainEntryCount.ToString();
                textOtherMaxEntriesInRss.Text          = siteConfig.RssEntryCount.ToString();
                checkAlwaysIncludeContentInRSS.Checked = siteConfig.AlwaysIncludeContentInRSS;
                checkEnableRSSItemFooter.Checked       = siteConfig.EnableRssItemFooters;
                textRSSItemFooter.Text                 = siteConfig.RssItemFooter;
                txtRSSEndPointRewrite.Text             = siteConfig.RSSEndPointRewrite;
                checkPop3Enabled.Checked               = siteConfig.EnablePop3;
                textPop3Interval.Text                  = siteConfig.Pop3Interval.ToString();
                textPop3Server.Text                    = siteConfig.Pop3Server;
                textPop3SubjectPrefix.Text             = siteConfig.Pop3SubjectPrefix;
                textPop3Username.Text                  = siteConfig.Pop3Username;
                textPop3Password.Text                  = passwordPlaceHolder;
                textPop3PasswordRepeat.Text            = passwordPlaceHolder;
                textRoot.Text                                       = siteConfig.Root;
                textSmtpServer.Text                                 = siteConfig.SmtpServer;
                textSmtpPort.Text                                   = siteConfig.SmtpPort.ToString();
                checkUseSSLForSMTP.Checked                          = siteConfig.UseSSLForSMTP;
                textNotificationEmailAddress.Text                   = siteConfig.NotificationEMailAddress;
                textSubtitle.Text                                   = siteConfig.Subtitle;
                textSmtpServer.Text                                 = siteConfig.SmtpServer;
                checkEnableCoComment.Checked                        = siteConfig.EnableCoComment;
                checkComments.Checked                               = siteConfig.SendCommentsByEmail;
                checkPingbacks.Checked                              = siteConfig.SendPingbacksByEmail;
                checkReferrals.Checked                              = siteConfig.SendReferralsByEmail;
                checkPosts.Checked                                  = siteConfig.SendPostsByEmail;
                checkTrackbacks.Checked                             = siteConfig.SendTrackbacksByEmail;
                checkShowCommentCounters.Checked                    = siteConfig.ShowCommentCount;
                checkEnableAutoPingback.Checked                     = siteConfig.EnableAutoPingback;
                checkEnableBloggerApi.Checked                       = siteConfig.EnableBloggerApi;
                checkEnableComments.Checked                         = siteConfig.EnableComments;
                checkEnableCommentApi.Checked                       = siteConfig.EnableCommentApi;
                checkShowCommentsWhenViewingEntry.Checked           = siteConfig.ShowCommentsWhenViewingEntry;
                checkEnableConfigEditService.Checked                = siteConfig.EnableConfigEditService;
                checkEnableEditService.Checked                      = siteConfig.EnableEditService;
                checkEnableAutoSave.Checked                         = siteConfig.EnableAutoSave;
                checkEnablePingbackService.Checked                  = siteConfig.EnablePingbackService;
                checkEnableTrackbackService.Checked                 = siteConfig.EnableTrackbackService;
                checkEnableClickThrough.Checked                     = siteConfig.EnableClickThrough;
                checkEnableAggregatorBugging.Checked                = siteConfig.EnableAggregatorBugging;
                checkXssEnabled.Checked                             = siteConfig.EnableXSSUpstream;
                textXssEndpoint.Text                                = siteConfig.XSSUpstreamEndpoint;
                textXssInterval.Text                                = siteConfig.XSSUpstreamInterval.ToString();
                textXssPassword.Text                                = passwordPlaceHolder;
                textXssPasswordRepeat.Text                          = passwordPlaceHolder;
                textXssUsername.Text                                = siteConfig.XSSUpstreamUsername;
                textXssRssFilename.Text                             = siteConfig.XSSRSSFilename;
                checkPop3InlineAttachedPictures.Checked             = siteConfig.Pop3InlineAttachedPictures;
                textPop3AttachedPicturesPictureThumbnailHeight.Text = siteConfig.Pop3InlinedAttachedPicturesThumbHeight.ToString();
                mailDeletionAll.Checked                             = siteConfig.Pop3DeleteAllMessages;
                mailDeletionProcessed.Checked                       = !siteConfig.Pop3DeleteAllMessages;
                logIgnoredEmails.Checked                            = siteConfig.Pop3LogIgnoredEmails;
                checkShowItemDescriptionInAggregatedViews.Checked   = siteConfig.ShowItemDescriptionInAggregatedViews;
                checkEnableStartPageCaching.Checked                 = siteConfig.EnableStartPageCaching;
                checkEnableBlogrollDescription.Checked              = siteConfig.EnableBlogrollDescription;
                checkEntryTitleAsLink.Checked                       = siteConfig.EntryTitleAsLink;
                checkEnableUrlRewriting.Checked                     = siteConfig.EnableUrlRewriting;
                checkEnableCrosspost.Checked                        = siteConfig.EnableCrossposts;
                checkCategoryAllEntries.Checked                     = siteConfig.CategoryAllEntries;
                checkReferralUrlBlacklist.Checked                   = siteConfig.EnableReferralUrlBlackList;
                textReferralBlacklist.Text                          = siteConfig.ReferralUrlBlackList;
                checkCaptchaEnabled.Checked                         = siteConfig.EnableCaptcha;
                checkReferralBlacklist404s.Checked                  = siteConfig.EnableReferralUrlBlackList404s;
                textRSSChannelImage.Text                            = siteConfig.ChannelImageUrl;
                checkEnableTitlePermaLink.Checked                   = siteConfig.EnableTitlePermaLink;
                checkEnableTitlePermaLinkUnique.Checked             = siteConfig.EnableTitlePermaLinkUnique;
                checkEnableTitlePermaLinkSpaces.Checked             = siteConfig.EnableTitlePermaLinkSpaces;
                checkEnableEncryptLoginPassword.Checked             = siteConfig.EncryptLoginPassword;
                checkEnableSmtpAuthentication.Checked               = siteConfig.EnableSmtpAuthentication;
                textSmtpUsername.Text                               = siteConfig.SmtpUserName;
                textSmtpPassword.Text                               = passwordPlaceHolder;
                textRssLanguage.Text                                = siteConfig.RssLanguage;
                checkEnableSearchHighlight.Checked                  = siteConfig.EnableSearchHighlight;
                checkEnableEntryReferral.Checked                    = siteConfig.EnableEntryReferrals;
                textFeedBurnerName.Text                             = siteConfig.FeedBurnerName;
                checkUseFeedScheme.Checked                          = siteConfig.UseFeedSchemeForSyndication;
                checkLogBlockedReferrals.Checked                    = siteConfig.LogBlockedReferrals;

                //populate the title space replacement options
                dropDownTitlePermalinkReplacementCharacter.Items.Clear();//in casee someone adds them in the ascx
                foreach (string s in TitleMapperModule.TitlePermalinkSpaceReplacementOptions)
                {
                    dropDownTitlePermalinkReplacementCharacter.Items.Add(s);
                }
                dropDownTitlePermalinkReplacementCharacter.SelectedValue = siteConfig.TitlePermalinkSpaceReplacement;

                checkSpamBlockingEnabled.Checked = siteConfig.EnableSpamBlockingService;
                textSpamBlockingApiKey.Text      = siteConfig.SpamBlockingServiceApiKey;
                optionSpamHandling.SelectedValue = siteConfig.EnableSpamModeration ? SPAM_OPTION_SAVE : SPAM_OPTION_DELETE;

                // setup the checkbox list to select which tags to allow
                checkBoxListAllowedTags.DataSource     = siteConfig.AllowedTags;
                checkBoxListAllowedTags.DataTextField  = "Name";
                checkBoxListAllowedTags.DataValueField = "Name";

                // enable comment moderation
                checkCommentsRequireApproval.Checked = siteConfig.CommentsRequireApproval;

                // allow html and comments
                checkAllowHtml.Checked = siteConfig.CommentsAllowHtml;

                // populate from config - Gravatar
                GravatarPopulateForm();

                // supress email address display
                checkDisableEmailDisplay.Checked = siteConfig.SupressEmailAddressDisplay;

                checkEnableCommentDays.Checked = siteConfig.EnableCommentDays;

                checkAttemptToHtmlTidyContent.Checked = siteConfig.HtmlTidyContent;
                checkResolveCommenterIP.Checked       = siteConfig.ResolveCommenterIP;

                //if ( siteConfig.EnableCommentDays )
                //{
                if (siteConfig.DaysCommentsAllowed > 0)
                {
                    textDaysCommentsAllowed.Text = siteConfig.DaysCommentsAllowed.ToString();
                }
                //}
                //else
                //{
                //	textDaysCommentsAllowed.Text = null;
                //}

                // supress email address display
                checkDisableEmailDisplay.Checked = siteConfig.SupressEmailAddressDisplay;

                checkEnableCommentDays.Checked = siteConfig.EnableCommentDays;

                //if ( siteConfig.EnableCommentDays )
                //{
                if (siteConfig.DaysCommentsAllowed > 0)
                {
                    textDaysCommentsAllowed.Text = siteConfig.DaysCommentsAllowed.ToString();
                }
                //}
                //else
                //{
                //	textDaysCommentsAllowed.Text = null;
                //}

                // email daily report
                checkDailyReport.Text    = resmgr.GetString("text_daily_activity_report");
                checkDailyReport.Checked = siteConfig.EnableDailyReportEmail;

                WindowsTimeZoneCollection timeZones = WindowsTimeZone.TimeZones;
                foreach (WindowsTimeZone tz in timeZones)
                {
                    listTimeZones.Items.Add(new ListItem(tz.DisplayName, tz.ZoneIndex.ToString()));
                }
                listTimeZones.SelectedValue = siteConfig.DisplayTimeZoneIndex.ToString();
                checkUseUTC.Checked         = !siteConfig.AdjustDisplayTimeZone;

                //FIX: hardcoded path
                ThemeDictionary themes = BlogTheme.Load(SiteUtilities.MapPath("themes"));
                foreach (BlogTheme theme in themes.Values)
                {
                    // setting the selected item like this instead of
                    // using    listThemes.SelectedValue = siteConfig.Theme;
                    // prevents the page from breaking.

                    ListItem item = new ListItem(theme.Title, theme.Name);
                    if (item.Value == siteConfig.Theme)
                    {
                        item.Selected = true;
                    }
                    listThemes.Items.Add(item);
                }

                textTitle.Text = siteConfig.Title;

                checkBoxListPingServices.DataSource     = PingServiceCollection;
                checkBoxListPingServices.DataTextField  = "Hyperlink";
                checkBoxListPingServices.DataValueField = "Endpoint";

                drpEntryEditControl.Items.Clear();
                foreach (string potentialAssembly in Directory.GetFiles(HttpRuntime.BinDirectory, "*.dll"))
                {
                    try
                    {
                        Assembly a = Assembly.LoadFrom(potentialAssembly);
                        foreach (Type potentialType in a.GetTypes())
                        {
                            if (potentialType.BaseType == typeof(EditControlAdapter))
                            {
                                drpEntryEditControl.Items.Add(new ListItem(potentialType.Name, potentialType.AssemblyQualifiedName));
                            }
                        }
                    }
                    catch (Exception)
                    {
                        //swallow
                    }
                }

                //Reasonable default
                if (string.IsNullOrEmpty(siteConfig.EntryEditControl))
                {
                    siteConfig.EntryEditControl = typeof(TinyMCEAdapter).AssemblyQualifiedName;
                }
                DataBind();

                ListItem li = drpEntryEditControl.Items.FindByText(siteConfig.EntryEditControl);
                if (li != null)
                {
                    li.Selected = true;
                }
                else
                {
                    drpEntryEditControl.SelectedIndex = 0;
                }

                foreach (PingService ps in siteConfig.PingServices)
                {
                    checkBoxListPingServices.Items.FindByValue(ps.Endpoint).Selected = true;
                }

                foreach (ValidTag tag in siteConfig.AllowedTags)
                {
                    checkBoxListAllowedTags.Items.FindByValue(tag.Name).Selected = tag.IsAllowed;
                }

                //check for Smtp permission
                if (SecurityManager.IsGranted(new SmtpPermission(SmtpAccess.ConnectToUnrestrictedPort)))
                {
                    phSmtpTrustWarning.Visible = false;
                }
                else
                {
                    phSmtpTrustWarning.Visible = true;
                }

                //check for Socket permission
                SocketPermission sp;
                if (String.IsNullOrEmpty(textPop3Server.Text))
                {
                    sp = new SocketPermission(PermissionState.Unrestricted);
                }
                else
                {
                    sp = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, textPop3Server.Text, 110);
                }

                if (SecurityManager.IsGranted(sp))
                {
                    phPop3TrustWarning.Visible = false;
                }
                else
                {
                    phPop3TrustWarning.Visible = true;
                }

                // georss stuff
                checkEnableGeoRss.Checked     = siteConfig.EnableGeoRss;
                textGoogleMapsApi.Text        = siteConfig.GoogleMapsApiKey;
                textDefaultLatitude.Text      = siteConfig.DefaultLatitude.ToString(CultureInfo.InvariantCulture);
                textDefaultLongitude.Text     = siteConfig.DefaultLongitude.ToString(CultureInfo.InvariantCulture);
                checkEnableGoogleMaps.Checked = siteConfig.EnableGoogleMaps;
                checkEnableDefaultLatLongForNonGeoCodedPosts.Checked = siteConfig.EnableDefaultLatLongForNonGeoCodedPosts;

                // OpenId
                chkAllowOpenIdAdmin.Checked          = siteConfig.AllowOpenIdAdmin;
                chkAllowOpenIdCommenter.Checked      = siteConfig.AllowOpenIdComments;
                chkBypassSpamOpenIdCommenter.Checked = siteConfig.BypassSpamOpenIdComment;


                SeoMetaTags smt = new SeoMetaTags().GetMetaTags();

                txtMetaDescription.Text = smt.MetaDescription;
                txtMetaKeywords.Text    = smt.MetaKeywords;
                txtTwitterCard.Text     = smt.TwitterCard;
                txtTwitterSite.Text     = smt.TwitterSite;
                txtTwitterCreator.Text  = smt.TwitterCreator;
                txtTwitterImage.Text    = smt.TwitterImage;
                txtFaceBookAdmins.Text  = smt.FaceBookAdmins;
                txtFaceBookAppID.Text   = smt.FaceBookAppID;

                checkAmpEnabled.Checked = siteConfig.AMPPagesEnabled;
            } // end if !postback

            //enable list controls that may have been enabled client-side
            //in 2.0 if they are not enable we won't get there postback data
            checkBoxListAllowedTags.Enabled = true;
            dropGravatarRating.Enabled      = true;
        }
        protected void Page_PreRender(object sender, System.EventArgs e)
        {
            SharedBasePage requestPage = Page as SharedBasePage;

            Control            root  = this;
            HtmlGenericControl entry = new HtmlGenericControl("div");

            if (SiteSecurity.GetUserByEmail(comment.AuthorEmail) == null)
            {
                entry.Attributes["class"] = "commentBoxStyle";
            }
            else
            {
                entry.Attributes["class"] = "commentBoxStyle commentBoxAuthorStyle";
            }
            root.Controls.Add(entry);

            HtmlGenericControl entryTitle = new HtmlGenericControl("div");

            entryTitle.Attributes["class"] = "commentDateStyle";

            //Add the unique anchor for each comment
            HtmlAnchor anchor = new HtmlAnchor();

            anchor.Name = comment.EntryId;
            entryTitle.Controls.Add(anchor);

            if (requestPage.SiteConfig.AdjustDisplayTimeZone)
            {
                entryTitle.Controls.Add(new LiteralControl(requestPage.SiteConfig.GetConfiguredTimeZone().FormatAdjustedUniversalTime(comment.CreatedUtc)));
            }
            else
            {
                entryTitle.Controls.Add(new LiteralControl(comment.CreatedUtc.ToString("U") + " UTC"));
            }
            entry.Controls.Add(entryTitle);


            HtmlGenericControl entryBody = new HtmlGenericControl("div");

            if (SiteSecurity.GetUserByEmail(comment.AuthorEmail) == null)
            {
                entryBody.Attributes["class"] = "commentBodyStyle";
            }
            else
            {
                entryBody.Attributes["class"] = "commentBodyStyle commentBodyAuthorStyle";
            }

            if (comment.Content != null)
            {
                entryBody.Controls.Add(new LiteralControl(Regex.Replace(comment.Content, "\n", "<br />")));
            }
            if (!requestPage.HideAdminTools && SiteSecurity.IsInRole("admin"))
            {
                HtmlGenericControl spamStatus = new HtmlGenericControl("div");
                spamStatus.Attributes["class"] = "commentSpamStateStyle";
                spamStatus.InnerText           = ApplicationResourceTable.GetSpamStateDescription(comment.SpamState);
                entryBody.Controls.Add(spamStatus);
            }


            entry.Controls.Add(entryBody);

            HtmlGenericControl footer = new HtmlGenericControl("div");

            footer.Attributes["class"] = "commentBoxFooterStyle";
            entry.Controls.Add(footer);


            if (requestPage.SiteConfig.CommentsAllowGravatar && String.IsNullOrEmpty(comment.AuthorEmail) == false)
            {
                string hash = "";
                byte[] data, enc;

                data = Encoding.Default.GetBytes(comment.AuthorEmail.ToLowerInvariant());

                using (MD5 md5 = new MD5CryptoServiceProvider())
                {
                    enc = md5.TransformFinalBlock(data, 0, data.Length);
                    foreach (byte b in md5.Hash)
                    {
                        hash += Convert.ToString(b, 16).ToLower().PadLeft(2, '0');
                    }
                    md5.Clear();
                }

                string nogravpath = "";
                if (requestPage.SiteConfig.CommentsGravatarNoImgPath != null)
                {
                    if (requestPage.SiteConfig.CommentsGravatarNoImgPath != "")
                    {
                        if (requestPage.SiteConfig.CommentsGravatarNoImgPath.Substring(0, 4) == "http")
                        {
                            nogravpath = "&default=" + Server.UrlEncode(requestPage.SiteConfig.CommentsGravatarNoImgPath);
                        }
                        else
                        {
                            nogravpath = "&default=" + Server.UrlEncode(requestPage.SiteConfig.Root + requestPage.SiteConfig.CommentsGravatarNoImgPath);
                        }
                    }
                }

                if (String.IsNullOrEmpty(requestPage.SiteConfig.CommentsGravatarNoImgPath) == false)
                {
                    if (requestPage.SiteConfig.CommentsGravatarNoImgPath == "identicon" ||
                        requestPage.SiteConfig.CommentsGravatarNoImgPath == "wavatar" ||
                        requestPage.SiteConfig.CommentsGravatarNoImgPath == "monsterid" ||
                        requestPage.SiteConfig.CommentsGravatarNoImgPath.Substring(0, 4) == "http")
                    {
                        nogravpath = "&default=" + Server.UrlEncode(requestPage.SiteConfig.CommentsGravatarNoImgPath);
                    }
                    else
                    {
                        nogravpath = "&default=" + Server.UrlEncode(requestPage.SiteConfig.Root + requestPage.SiteConfig.CommentsGravatarNoImgPath);
                    }
                }

                string gravborder = "";
                if (requestPage.SiteConfig.CommentsGravatarBorder != null)
                {
                    if (requestPage.SiteConfig.CommentsGravatarBorder != "")
                    {
                        gravborder = "&border=" + requestPage.SiteConfig.CommentsGravatarBorder;
                    }
                }

                string gravsize = "";
                if (requestPage.SiteConfig.CommentsGravatarSize != null)
                {
                    if (requestPage.SiteConfig.CommentsGravatarSize != "")
                    {
                        gravsize = "&size=" + requestPage.SiteConfig.CommentsGravatarSize;
                    }
                }

                string gravrating = "";
                if (requestPage.SiteConfig.CommentsGravatarRating != null)
                {
                    if (requestPage.SiteConfig.CommentsGravatarRating != "")
                    {
                        gravrating = "&rating=" + requestPage.SiteConfig.CommentsGravatarRating;
                    }
                }



                HtmlGenericControl entryGRAVATAR = new HtmlGenericControl("span");
                entryGRAVATAR.Attributes["class"] = "commentGravatarBlock";
                entryGRAVATAR.InnerHtml           = "<img class=\"commentGravatar\" src=\"http://www.gravatar.com/avatar.php?gravatar_id=" + hash + gravrating + gravsize + nogravpath + gravborder + "\"/>";
                footer.Controls.Add(entryGRAVATAR);
            }

            string authorLink = null;

            if (comment.AuthorHomepage != null && comment.AuthorHomepage.Length > 0)
            {
                authorLink = FixUrl(comment.AuthorHomepage);
            }
            else if (comment.AuthorEmail != null && comment.AuthorEmail.Length > 0)
            {
                if (!requestPage.SiteConfig.SupressEmailAddressDisplay)
                {
                    authorLink = "mailto:" + SiteUtilities.SpamBlocker(comment.AuthorEmail);
                }
            }

            if (authorLink != null)
            {
                HyperLink link = new HyperLink();
                link.Attributes["class"] = "commentPermalinkStyle";
                link.NavigateUrl         = authorLink;
                link.Text = comment.Author;
                link.Attributes.Add("rel", "nofollow");
                footer.Controls.Add(link);

                if (comment.OpenId)
                {
                    System.Web.UI.WebControls.Image i = new System.Web.UI.WebControls.Image();
                    i.ImageUrl = "~/images/openid-icon-small.gif";
                    i.CssClass = "commentOpenId";
                    link.Controls.Add(i);
                    Literal l = new Literal();
                    l.Text = comment.Author;
                    link.Controls.Add(l);
                }
            }
            else
            {
                Label l = new Label();
                l.Attributes["class"] = "commentPermalinkStyle";
                l.Text = comment.Author;
                footer.Controls.Add(l);
            }


            if (!requestPage.SiteConfig.SupressEmailAddressDisplay)
            {
                if (comment.AuthorEmail != null && comment.AuthorEmail.Length > 0)
                {
                    footer.Controls.Add(new LiteralControl(" | "));

                    HtmlGenericControl mailto = new HtmlGenericControl("span");
                    footer.Controls.Add(mailto);

                    HyperLink link = new HyperLink();
                    link.CssClass    = "commentMailToStyle";
                    link.NavigateUrl = "mailto:" + SiteUtilities.SpamBlocker(comment.AuthorEmail);
                    link.Text        = SiteUtilities.SpamBlocker(comment.AuthorEmail);
                    mailto.Controls.Add(link);
                }
            }

            if (!requestPage.HideAdminTools && SiteSecurity.IsInRole("admin"))
            {
                if (!string.IsNullOrEmpty(comment.AuthorIPAddress))
                {
                    try
                    {
                        if (requestPage.SiteConfig.ResolveCommenterIP == true)
                        {
                            System.Net.IPHostEntry hostInfo = System.Net.Dns.GetHostEntry(comment.AuthorIPAddress);
                            footer.Controls.Add(
                                new LiteralControl(" (" + comment.AuthorIPAddress + " " + hostInfo.HostName + ") "));
                        }
                        else
                        {
                            footer.Controls.Add(new LiteralControl(" (" + comment.AuthorIPAddress + ") "));
                        }
                    }
                    catch
                    {
                        footer.Controls.Add(new LiteralControl(" (" + comment.AuthorIPAddress + ") "));
                    }
                }

                footer.Controls.Add(new LiteralControl(" "));

                // create delete hyperlink
                HyperLink deleteHl = new HyperLink();
                deleteHl.CssClass = "deleteLinkStyle";
                System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();
                img.CssClass    = "deleteLinkImageStyle";
                img.ImageUrl    = new Uri(new Uri(SiteUtilities.GetBaseUrl(requestPage.SiteConfig)), requestPage.GetThemedImageUrl("deletebutton")).ToString();
                img.BorderWidth = 0;
                deleteHl.Controls.Add(img);
                deleteHl.NavigateUrl = String.Format("javascript:deleteComment(\"{0}\", \"{1}\", \"{2}\")", Comment.TargetEntryId, Comment.EntryId, Comment.Author == null ? String.Empty : Comment.Author.Replace("\"", "\\\""));

                ResourceManager resmgr = resmgr = ApplicationResourceTable.Get();

                if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "deleteCommentScript"))
                {
                    // add the javascript to allow deletion of the comment
                    string scriptString = "<script type=\"text/javascript\" language=\"JavaScript\">\n";
                    scriptString += "function deleteComment(entryId, commentId, commentFrom)\n";
                    scriptString += "{\n";
                    scriptString += String.Format("	if(confirm(\"{0} \\n\\n\" + commentFrom))\n", resmgr.GetString("text_delete_confirm"));
                    scriptString += "	{\n";
                    scriptString += "		location.href=\"deleteItem.ashx?entryid=\" +  entryId + \"&commentId=\" + commentId\n";
                    scriptString += "	}\n";
                    scriptString += "}\n";
                    scriptString += "</script>";

                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "deleteCommentScript", scriptString);
                }


                footer.Controls.Add(deleteHl);

                // create approve hyperlink, when a comment is not public or if its marked as spam
                if ((!Comment.IsPublic) || (Comment.SpamState == SpamState.Spam))
                {
                    HyperLink approveHl = new HyperLink();
                    approveHl.CssClass = "approveLinkStyle";
                    System.Web.UI.WebControls.Image okImg = new System.Web.UI.WebControls.Image();
                    okImg.CssClass    = "approveImageStyle";
                    okImg.ImageUrl    = new Uri(new Uri(SiteUtilities.GetBaseUrl(requestPage.SiteConfig)), requestPage.GetThemedImageUrl("okbutton-list")).ToString();
                    okImg.BorderWidth = 0;
                    approveHl.Controls.Add(okImg);
                    approveHl.NavigateUrl = String.Format("javascript:approveComment(\"{0}\", \"{1}\")", Comment.TargetEntryId, Comment.EntryId);

                    if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "approveCommentScript"))
                    {
                        string approveScript = "<script type=\"text/javascript\" language=\"JavaScript\">\n";
                        approveScript += "function approveComment(entryId, commentId)\n";
                        approveScript += "{\n";
                        approveScript += "	location.href=\"approveItem.ashx?entryid=\" +  entryId + \"&commentId=\" + commentId\n";
                        approveScript += "}\n";
                        approveScript += "</script>";

                        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "approveCommentScript", approveScript);
                    }

                    footer.Controls.Add(approveHl);
                }
                ISpamBlockingService spamBlockingService = requestPage.SiteConfig.SpamBlockingService;
                if ((spamBlockingService != null) && (comment.SpamState != SpamState.Spam))
                {
                    HyperLink reportSpamLink = new HyperLink();
                    reportSpamLink.CssClass = "approveLinkStyle";
                    System.Web.UI.WebControls.Image spamImg = new System.Web.UI.WebControls.Image();
                    spamImg.CssClass    = "approveImageStyle";
                    spamImg.ImageUrl    = new Uri(new Uri(SiteUtilities.GetBaseUrl(requestPage.SiteConfig)), requestPage.GetThemedImageUrl("reportspambutton")).ToString();
                    spamImg.BorderWidth = 0;
                    reportSpamLink.Controls.Add(spamImg);
                    reportSpamLink.NavigateUrl = String.Format("javascript:reportComment(\"{0}\", \"{1}\", \"{2}\")", Comment.TargetEntryId, Comment.EntryId, Comment.Author == null ? String.Empty : Comment.Author.Replace("\"", "\\\""));

                    string reportScript = "<script type=\"text/javascript\" language=\"JavaScript\">\n";
                    reportScript += "function reportComment(entryId, commentId, commentFrom)\n";
                    reportScript += "{\n";
                    reportScript += String.Format("	if(confirm(\"{0} \\n\\n\" + commentFrom))\n", resmgr.GetString("text_reportspam_confirm"));
                    reportScript += "	{\n";
                    reportScript += "		location.href=\"deleteItem.ashx?report=true&entryid=\" +  entryId + \"&commentId=\" + commentId\n";
                    reportScript += "	}\n";
                    reportScript += "}\n";
                    reportScript += "</script>";

                    if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "reportCommentScript"))
                    {
                        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "reportCommentScript", reportScript);
                    }

                    footer.Controls.Add(reportSpamLink);
                }
            }
        }
Exemple #9
0
 /// <summary>
 /// Shortcut for determining a valid contributor to the blog...currently only users in the "admin" role
 /// or the "contributor" role are supported.
 /// </summary>
 public static bool IsValidContributor()
 {
     return(SiteSecurity.IsInRole("admin") || SiteSecurity.IsInRole("contributor"));
 }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            siteConfig = SiteConfig.GetSiteConfig();

            resmgr = ((System.Resources.ResourceManager)ApplicationResourceTable.Get());

            //set the current page <li> tag to here
            string filePath = this.Request.FilePath;

            if (filePath.EndsWith("EditCrossPostSites.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editCrossPostSites.Attributes["class"]  = "here";
                hyperLinkEditCrossPostSites.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditNavigatorLinks.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editNavigatorLinks.Attributes["class"]  = "here";
                hyperLinkEditNavigatorLinks.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditBlogRoll.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editBlogRoll.Attributes["class"]  = "here";
                hyperLinkEditBlogRoll.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditContentFilters.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editContentFilters.Attributes["class"]  = "here";
                hyperLinkEditContentFilters.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditConfig.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editConfig.Attributes["class"]  = "here";
                hyperLinkEditConfig.NavigateUrl = "";
            }
            else if (filePath.EndsWith("Referrers.aspx", StringComparison.InvariantCultureIgnoreCase) ||
                     filePath.EndsWith("Eventlog.aspx", StringComparison.InvariantCultureIgnoreCase) ||
                     filePath.EndsWith("AggBugs.aspx", StringComparison.InvariantCultureIgnoreCase) ||
                     filePath.EndsWith("ClickThroughs.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                activity.Attributes["class"]  = "here";
                hyperLinkActivity.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditEntry.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editEntry.Attributes["class"]  = "firstHere";
                hyperLinkEditEntry.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditUser.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editUser.Attributes["class"]  = "here";
                hyperLinkEditUser.NavigateUrl = "";
            }

            // The only tab that should be visible for a contributor is the
            // "Add Entry" and "User Settings" tab
            if (SiteSecurity.IsInRole("contributor"))
            {
                this.editConfig.Visible         = false;
                this.editCrossPostSites.Visible = false;
                this.editContentFilters.Visible = false;
                this.editBlogRoll.Visible       = false;
                this.editNavigatorLinks.Visible = false;
                this.activity.Visible           = false;
            }
            DataBind();
        }