コード例 #1
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Added EsperantusKeys for Localization
            // Mario Endara [email protected] june-1-2004
            Feedback = Esperantus.Localize.GetString("BLOG_FEEDBACK");

            if (!IsPostBack)
            {
                lnkRSS.HRef       = Rainbow.HttpUrlBuilder.BuildUrl("~/DesktopModules/Blog/RSS.aspx", TabID, "&mID=" + ModuleID);
                imgRSS.Src        = Rainbow.HttpUrlBuilder.BuildUrl("~/DesktopModules/Blog/xml.gif");
                lblCopyright.Text = moduleSettings["Copyright"].ToString();

                BlogDB blogDB = new BlogDB();
                int    month  = -1;
                int    year   = -1;
                try
                {
                    month = int.Parse(Request.Params.Get("month"));
                    year  = int.Parse(Request.Params.Get("year"));
                }
                catch {}

                if ((month > -1) && (year > -1))
                {
                    this.lblHeader.Text = Esperantus.Localize.GetString("BLOG_POSTSFROM", "Posts From", null) +
                                          " " + DateTime.Parse(month.ToString() + "/1/" + year.ToString()).ToString("MMMM, yyyy");
                    myDataList.DataSource = blogDB.GetBlogEntriesByMonth(month, year, ModuleID);
                }
                else
                {
                    myDataList.DataSource = blogDB.GetBlogs(ModuleID);
                }
                myDataList.DataBind();

                dlArchive.DataSource = blogDB.GetBlogMonthArchive(ModuleID);
                dlArchive.DataBind();

                SqlDataReader dataReader = blogDB.GetBlogStats(ModuleID);
                try
                {
                    if (dataReader.Read())
                    {
                        lblEntryCount.Text = Esperantus.Localize.GetString("BLOG_ENTRIES", "Entries", null) +
                                             " (" + (string)dataReader["EntryCount"].ToString() + ")";
                        lblCommentCount.Text = Esperantus.Localize.GetString("BLOG_COMMENTS", "Comments", null) +
                                               " (" + (string)dataReader["CommentCount"].ToString() + ")";
                    }
                }
                finally
                {
                    dataReader.Close();
                }
            }
        }
コード例 #2
0
ファイル: Blog.ascx.cs プロジェクト: arrioja/shared-citroen
        /// <summary>
        /// The Page_Load event handler on this User Control is used to
        /// obtain a DataReader of Blog information from the Blogs
        /// table, and then databind the results to a templated DataList
        /// server control.  It uses the Rainbow.BlogDB()
        /// data component to encapsulate all data functionality.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Added EsperantusKeys for Localization
            // Mario Endara [email protected] june-1-2004
            Feedback = Esperantus.Localize.GetString("BLOG_FEEDBACK");

            if (!IsPostBack)
            {
                lnkRSS.HRef       = Rainbow.HttpUrlBuilder.BuildUrl("~/DesktopModules/Blog/RSS.aspx", TabID, "&mID=" + ModuleID);
                imgRSS.Src        = Rainbow.HttpUrlBuilder.BuildUrl("~/DesktopModules/Blog/xml.gif");
                lblCopyright.Text = Settings["Copyright"].ToString();
                // Obtain Blogs information from the Blogs table
                // and bind to the datalist control
                BlogDB blogData = new BlogDB();
                myDataList.DataSource = blogData.GetBlogs(ModuleID);
                myDataList.DataBind();

                dlArchive.DataSource = blogData.GetBlogMonthArchive(ModuleID);
                dlArchive.DataBind();

                SqlDataReader dr = blogData.GetBlogStats(ModuleID);
                try
                {
                    if (dr.Read())
                    {
                        lblEntryCount.Text = Esperantus.Localize.GetString("BLOG_ENTRIES", "Entries", null) +
                                             " (" + (string)dr["EntryCount"].ToString() + ")";
                        lblCommentCount.Text = Esperantus.Localize.GetString("BLOG_COMMENTS", "Comments", null) +
                                               " (" + (string)dr["CommentCount"].ToString() + ")";
                    }
                }
                finally
                {
                    // close the datareader
                    dr.Close();
                }
            }
        }
コード例 #3
0
        private void RenderRSS(int moduleID)
        {
            /*
             *
             * For more info on RSS 2.0
             * http://www.feedvalidator.org/docs/rss2.html
             *
             * Fields not implemented yet:
             * <blogChannel:blogRoll>http://radio.weblogs.com/0001015/userland/scriptingNewsLeftLinks.opml</blogChannel:blogRoll>
             * <blogChannel:mySubscriptions>http://radio.weblogs.com/0001015/gems/mySubscriptions.opml</blogChannel:mySubscriptions>
             * <blogChannel:blink>http://diveintomark.org/</blogChannel:blink>
             * <lastBuildDate>Mon, 30 Sep 2002 11:00:00 GMT</lastBuildDate>
             * <docs>http://backend.userland.com/rss</docs>
             *
             */

            Response.ContentType = "text/xml";

            Hashtable moduleSettings = ModuleSettings.GetModuleSettings(moduleID);
            Encoding  encoding       = new UTF8Encoding();

            XmlTextWriter xmlTextWriter = new XmlTextWriter(Response.OutputStream, encoding);

            xmlTextWriter.Formatting = Formatting.Indented;

            xmlTextWriter.WriteStartDocument();
            xmlTextWriter.WriteComment("RSS generated by Rainbow Portal Blog Module V 1.0 on " + DateTime.Now.ToLongDateString());
            xmlTextWriter.WriteStartElement("rss");

            xmlTextWriter.WriteStartAttribute("version", "http://rainbowportal.net/blogmodule");
            xmlTextWriter.WriteString("2.0");
            xmlTextWriter.WriteEndAttribute();

            xmlTextWriter.WriteStartElement("channel");

            /*
             *      RSS 2.0
             *      Required elements for channel are title link and description
             */
            xmlTextWriter.WriteStartElement("title");
            try
            {
                xmlTextWriter.WriteString(moduleSettings["MODULESETTINGS_TITLE_en-US"].ToString());
            }
            catch
            {
                //HACK: Get MODULESETTINGS_TITLE from where?
                xmlTextWriter.WriteString("Rainbow Blog");
            }
            xmlTextWriter.WriteEndElement();

            xmlTextWriter.WriteStartElement("link");
            xmlTextWriter.WriteString(Request.Url.ToString().Replace("DesktopModules/Blog/RSS.aspx", "DesktopDefault.aspx"));
            xmlTextWriter.WriteEndElement();

            xmlTextWriter.WriteStartElement("description");
            xmlTextWriter.WriteString(moduleSettings["Description"].ToString());
            xmlTextWriter.WriteEndElement();

            xmlTextWriter.WriteStartElement("copyright");
            xmlTextWriter.WriteString(moduleSettings["Copyright"].ToString());
            xmlTextWriter.WriteEndElement();

            // begin optional RSS 2.0 fields

            //ttl = time to live in minutes, how long a channel can be cached before refreshing from the source
            xmlTextWriter.WriteStartElement("ttl");
            xmlTextWriter.WriteString(moduleSettings["RSS Cache Time In Minutes"].ToString());
            xmlTextWriter.WriteEndElement();

            xmlTextWriter.WriteStartElement("managingEditor");
            xmlTextWriter.WriteString(moduleSettings["Author Email"].ToString());
            xmlTextWriter.WriteEndElement();

            xmlTextWriter.WriteStartElement("language");
            xmlTextWriter.WriteString(moduleSettings["Language"].ToString());
            xmlTextWriter.WriteEndElement();


            if (ConfigurationSettings.AppSettings.Get("webMaster") != null)
            {
                xmlTextWriter.WriteStartElement("webMaster");
                xmlTextWriter.WriteString(ConfigurationSettings.AppSettings.Get("webMaster"));
                xmlTextWriter.WriteEndElement();
            }
            xmlTextWriter.WriteStartElement("generator");
            xmlTextWriter.WriteString("Rainbow Portal Blog Module V 1.0");
            xmlTextWriter.WriteEndElement();

            BlogDB        blogDB = new BlogDB();
            SqlDataReader dr     = blogDB.GetBlogs(moduleID);

            try
            {
                //write channel items
                while (dr.Read())
                {
                    //beginning of blog entry
                    xmlTextWriter.WriteStartElement("item");

                    /*
                     * RSS 2.0
                     * All elements of an item are optional, however at least one of title or description
                     * must be present.
                     */

                    xmlTextWriter.WriteStartElement("title");
                    xmlTextWriter.WriteString(dr["Title"].ToString());
                    xmlTextWriter.WriteEndElement();

                    xmlTextWriter.WriteStartElement("link");
                    xmlTextWriter.WriteString(Request.Url.ToString().Replace("RSS.aspx", "blogview.aspx") + "&ItemID=" + dr["ItemID"].ToString());
                    xmlTextWriter.WriteEndElement();

                    xmlTextWriter.WriteStartElement("pubDate");
                    xmlTextWriter.WriteString(DateTime.Parse(dr["StartDate"].ToString()).ToString("dddd MMMM d yyyy hh:mm:ss tt zzz"));
                    xmlTextWriter.WriteEndElement();

                    xmlTextWriter.WriteStartElement("guid");
                    xmlTextWriter.WriteString(Request.Url.ToString().Replace("RSS.aspx", "blogview.aspx") + "&ItemID=" + dr["ItemID"].ToString());
                    xmlTextWriter.WriteEndElement();

                    xmlTextWriter.WriteStartElement("comments");
                    xmlTextWriter.WriteString(Request.Url.ToString().Replace("RSS.aspx", "blogview.aspx") + "&ItemID=" + dr["ItemID"].ToString());
                    xmlTextWriter.WriteEndElement();

                    xmlTextWriter.WriteStartElement("description");
                    xmlTextWriter.WriteCData(Server.HtmlDecode((string)dr["Description"].ToString()));
                    xmlTextWriter.WriteEndElement();


                    //end blog entry
                    xmlTextWriter.WriteEndElement();
                }
            }
            finally
            {
                dr.Close();
            }

            //end of document
            xmlTextWriter.WriteEndElement();
            xmlTextWriter.Close();
        }