Add blog rooms to sitemap
authorArt Cancro <ajc@uncensored.citadel.org>
Tue, 31 May 2011 18:21:26 +0000 (14:21 -0400)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 4 Sep 2011 20:56:12 +0000 (20:56 +0000)
webcit/sitemap.c
webcit/webcit.h

index fe6c68908db8fa3967fd2d60867dd06dae51cb18..37fe310a80ba696f69fc3dc6cc18bfea5e875be8 100644 (file)
@@ -52,6 +52,39 @@ void sitemap_do_bbs(void) {
 }
 
 
+/*
+ * XML sitemap generator -- go through the message list for a Blog room
+ */
+void sitemap_do_blog(void) {
+       wcsession *WCC = WC;
+       int num_msgs = 0;
+       int i;
+       SharedMessageStatus Stat;
+       message_summary *Msg = NULL;
+
+       memset(&Stat, 0, sizeof Stat);
+       Stat.maxload = INT_MAX;
+       Stat.lowest_found = (-1);
+       Stat.highest_found = (-1);
+       num_msgs = load_msg_ptrs("MSGS ALL", &Stat, NULL);
+       if (num_msgs < 1) return;
+
+       for (i=0; i<num_msgs; ++i) {
+               Msg = GetMessagePtrAt(i, WCC->summ);
+               if (Msg != NULL) {
+                       struct bltr bltr = blogview_learn_thread_references(Msg->msgnum);
+                       /* Show only top level posts, not comments */
+                       if ((bltr.id != 0) && (bltr.refs == 0)) {
+                               WC->bptlid = bltr.id;
+                               wc_printf("<url><loc>%s", ChrPtr(site_prefix));
+                               tmplput_blog_permalink(NULL, NULL);
+                               wc_printf("</loc></url>\r\n");
+                       }
+               }
+       }
+}
+
+
 /*
  * XML sitemap generator -- go through the message list for a wiki room
  */
@@ -130,6 +163,9 @@ void sitemap(void) {
                        case VIEW_WIKI:
                                sitemap_do_wiki();
                                break;
+                       case VIEW_BLOG:
+                               sitemap_do_blog();
+                               break;
                        default:
                                break;
                }
index ccd2b779d571590cab76edd8d71160319a95ff46..b5f51cca2cdba8fd7f3bd013c5d8db23c2d9ab87 100644 (file)
@@ -911,3 +911,4 @@ struct bltr {
 
 
 struct bltr blogview_learn_thread_references(long msgnum);
+void tmplput_blog_permalink(StrBuf *Target, WCTemplputParams *TP);