コード例 #1
0
        private void AddForumThreadUrls(HttpContext context, XmlTextWriter xmlTextWriter)
        {
            SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings();

            if (siteSettings == null)
            {
                return;
            }

            if (siteSettings.SiteGuid == Guid.Empty)
            {
                return;
            }

            string baseUrl = SiteUtils.GetNavigationSiteRoot()
                             + "/Forums/Thread.aspx?pageid=";

            if ((siteSettings.UseSslOnAllPages) && (SiteUtils.SslIsAvailable()))
            {
                baseUrl = baseUrl.Replace("http:", "https:");
            }
            else
            {
                baseUrl = baseUrl.Replace("https:", "http:");
            }


            using (IDataReader reader = ForumThread.GetThreadsForSiteMap(siteSettings.SiteId))
            {
                while (reader.Read())
                {
                    string pageViewRoles   = reader["AuthorizedRoles"].ToString();
                    string moduleViewRoles = reader["ViewRoles"].ToString();
                    bool   include         = (
                        (pageViewRoles.Contains("All Users")) &&
                        ((moduleViewRoles.Length == 0) || (moduleViewRoles.Contains("All Users")))
                        );

                    if (!include)
                    {
                        continue;
                    }

                    xmlTextWriter.WriteStartElement("url");
                    xmlTextWriter.WriteElementString(
                        "loc",
                        baseUrl // /Forums/Thread.aspx?pageid=
                        + reader["PageID"].ToString()
                        + "&t=" + reader["ThreadID"].ToString()
                        + "~-1" // the full thread view without paging
                        );
                    xmlTextWriter.WriteElementString(
                        "lastmod",
                        Convert.ToDateTime(reader["MostRecentPostDate"]).ToString("u", CultureInfo.InvariantCulture).Replace(" ", "T"));


                    //xmlTextWriter.WriteElementString("changefreq", "monthly");

                    xmlTextWriter.WriteElementString("priority", "0.5");

                    xmlTextWriter.WriteEndElement(); //url
                }
            }
        }