回精華區
作者itoc, 信區: itoc
標題[功能] expire 寫進 .BRD [程式部分]
時間03/08/17
作者: Kudo (淡蛋~~) 看板: plan
標題: [功能] expire 寫進 .BRD [程式部分]
時間: Thu Apr 11 04:29:48 2002                          Updated: 2005/05/19

: global.h

- #define FN_ETC_EXPIRE   "etc/expire.conf"       /* 看板文章篇數上限設定 */

: struct.h

typedef struct BoardHeader
{
  char brdname[BNLEN + 1];      /* board name */
  char title[BTLEN + 1];
  char BM[BMLEN + 1];           /* BMs' uid, token '/' */

  uschar bvote;                 /* 共有幾項投票舉行中 */

  time_t bstamp;                /* 建立看板的時間, unique */
  usint readlevel;              /* 閱讀文章的權限 */
  usint postlevel;              /* 發表文章的權限 */
  usint battr;                  /* 看板屬性 */
  time_t btime;                 /* .DIR 的 st_mtime */
  int bpost;                    /* 共有幾篇 post */
  time_t blast;                 /* 最後一篇 post 的時間 */

+ int maxpost;                  /* 文章上限(篇) */
+ int minpost;                  /* 文章下限(篇) */
+ int maxtime;                  /* 文章保留時間(天) */
}           BRD;

: acct.c

/* ----------------------------------------------------- */
/* 看板管理                                              */
/* ----------------------------------------------------- */

+ #define DEF_MAXP        3000          /* 看板文章預設上限數量 */
+ #define DEF_MINP        500           /* 看板文章預設下限數量 */
+ #define DEF_MAXT        365           /* 看板文章預設保留天數 */

: acct.c:m_setbrd()

  default:      /* 預設不變動 */
  }

+ if (vget(++i, 0, "設定文章上下限(Y/N)?[N] ", data, 3, LCECHO) == 'y')
+ {
+   sprintf(data, "%d", brd->maxpost);
+   if (vget(++i, 0, "文章上限", data, 6, GCARRY))
+     brd->maxpost = ((len = atoi(data)) > 0) ? len : DEF_MAXP;
+
+   sprintf(data, "%d", brd->minpost);
+   if (vget(++i, 16, "文章下限", data, 6, GCARRY))
+     brd->minpost = ((len = atoi(data)) > 0) ? len : DEF_MINP;
+
+   sprintf(data, "%d", brd->maxtime);
+   if (vget(++i, 36, "文章保留天數", data, 6, GCARRY))
+     brd->maxtime = ((len = atoi(data)) > 0) ? len : DEF_MAXT;
+ }

  if (vget(++i, 0, "設定屬性(Y/N)?[N] ", data, 3, LCECHO) == 'y')
  {

: acct.c:m_newbrd()

  newboard.postlevel = PERM_POST;
  newboard.battr = BRD_NOTRAN;

+ newboard.maxpost = DEF_MAXP;
+ newboard.minpost = DEF_MINP;
+ newboard.maxtime = DEF_MAXT;

  if (m_setbrd(&newboard))
    return -1;

: acct.c:brd_edit()

  prints("看板名稱:%s\n看板說明:%s\n板主名單:%s\n",
    newbh.brdname, newbh.title, newbh.BM);
+  prints("文章上限:%d   文章下限:%d   文章保留期限:%d\n",
+    newbh.maxpost, newbh.minpost, newbh.maxtime);

  bitmsg(MSG_READPERM, STR_PERM, newbh.readlevel);
  bitmsg(MSG_POSTPERM, STR_PERM, newbh.postlevel);

--
Chih-Kuan Chien (Kudo)
kudo@ms21.url.com.tw

--
□ Origin: 淡蛋的小窩 bbs.kudo.idv.tw
□ From: www.kudo.idv.tw
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻