作者hession.bbs@ccudream.twbbs.org (Be myself-作自己-) 看板: plan
標題Re: 設定看板屬性-> 讓使用者貼文後不得刪除
時間中正築夢園 (2004/03/27 Sat 12:14:14) Updated: 2005/05/26
因為 有些看板不想讓使用者刪文
所以我試著去改
但是 不熟悉版主的權限的開放怎麼作
我希望該看版在經過設定後
除了 該版版主及站長有權 刪文 或修改文章之外
其餘非該版的版主 不得刪文
以下是我試著作的修改
希冀各位的指導
=============================================
: battr.h
#define BRD_ANONYMOUS 0x20 /* 匿名看板 */
+ #define BRD_NODEL 0x40 /* hession.040313: 不得刪文看板 */
...
...
- #define NUMBATTRS 6
+ #define NUMBATTRS 7
- #define STR_BATTR "zTcsvA"
+ #define STR_BATTR "zTcsvAD"
: battr.h:battr_tbl[]
"匿名看板", /* BRD_ANONYMOUS */
+ "不得刪文看板" /* hession.040310: BRD_NODEL */
: post.c:post_delete()
if (!cuser.userlevel ||
!strcmp(currboard, BN_DELETED) ||
!strcmp(currboard, BN_JUNK))
return XO_NONE;
+ if (currbattr & BRD_NODEL)
+ return XO_NONE; /* hession.040310: 使看板貼文者無法刪文 */
> ──────────────────────────────────── <
如果希望開放給板主自行設定
: manage.c 把以下這段加在 post_battr_noscore() 後面
static int
post_battr_nodel(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_NODEL;
break;
case '2':
newbrd.battr |= BRD_NODEL;
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
+ "Delete 刪除文章設定",
...
...
# ifdef HAVE_SCORE
" (S)評分"
# endif
+ " (D)刪除"
...
...
#ifdef HAVE_SCORE
case 's':
return post_battr_noscore(xo);
#endif
+ case 'd':
+ return post_battr_nodel(xo);
--
● ˙ ˙ ◢▇◣ ◢▇◣ ▇ ▇ █▇◣ █▇◣ █▇◣ ◢▇◣ █▇▉ /
˙ ╲ █ █ █ █ █ ▉ █ ▉ █▆ █▆▉ ▉▉▉ ★
◢ ★˙ ◥█◤ ◥█◤ ◥█◤ ██◤ █◥▆ █▆◤ █ ▉ ▉▉▉˙ ◣
CDBBS 中正築夢園BBS站 歡迎蒞臨參觀 cd.twbbs.org (140.123.20.230)
http://cd.twbbs.org◥ * Author: hession ★ From: 218.165.154.245 ◤