作者itoc.bbs@cpu.tfcis.org (核心動力) 看板: plan
標題Re: [請教]有關不能發文
時間動力核心 (2005/05/26 Thu 02:06:24) Updated: 2005/05/26
※ 引述《hatvito.bbs@cpu.tfcis.org (123)》之銘言:
> 如果說
> 想要讓板主自訂能不能發文
> 譬如說
> 有大批鄉民鬧板
> 板主來不及處理
> 想要先停止發文來整理板面
: battr.h
#define BRD_ANONYMOUS 0x20 /* 匿名看板 */
+ #define BRD_NOPOST 0x40 /* 不能發表文章到看板 */
...
...
- #define NUMBATTRS 6
+ #define NUMBATTRS 7
- #define STR_BATTR "zTcsvA"
+ #define STR_BATTR "zTcsvAp"
: battr.h:battr_tbl[]
"匿名看板", /* BRD_ANONYMOUS */
+ "不能發表文章到看板", /* BRD_NOPOST */
: post.c:do_post()
+ if (currbattr & BRD_NOPOST)
+ return XO_NONE;
if (!(bbstate & STAT_POST))
> ──────────────────────────────────── <
如果希望開放給板主自行設定
: manage.c 把以下這段加在 post_battr_noscore() 後面
static int
post_battr_nopost(xo)
XO *xo;
{
BRD *oldbrd, newbrd;
oldbrd = bshm->bcache + currbno;
memcpy(&newbrd, oldbrd, sizeof(BRD));
switch (vans("1)可以刪除文章 2)不可刪除文章 [Q] "))
{
case '1':
newbrd.battr &= ~BRD_NOPOST;
break;
case '2':
newbrd.battr |= BRD_NOPOST;
break;
default:
return XO_FOOT;
}
if (memcmp(&newbrd, oldbrd, sizeof(BRD)) && vans(msg_sure_ny) == 'y')
{
memcpy(oldbrd, &newbrd, sizeof(BRD));
rec_put(FN_BRD, &newbrd, sizeof(BRD), currbno, NULL);
}
return XO_FOOT;
}
: manage.c:post_manage()
# ifdef HAVE_SCORE
"Score 設定可否評分",
# endif
+ "Post 發表文章設定",
...
...
# ifdef HAVE_SCORE
" (S)評分"
# endif
+ " (P)發文"
...
...
#ifdef HAVE_SCORE
case 's':
return post_battr_noscore(xo);
#endif
+ case 'p':
+ return post_battr_nopost(xo);
--
◤◥ Origin: Maple-itoc˙動力核心 cpu.tfcis.org
◣◢ Author: itoc 從 itoc.Dorm11.NCTU.edu.tw 發表