作者itoc, 信區: itoc
標題[功能] board.c 進分類畫面
時間04/08/16
作者: itoc (奇怪的暱稱) 看板: plan
標題: [功能] 進分類畫面
時間: 2004/08/16 Mon 11:27:14 Updated: 2004/08/16
※ 引述《chwaian.bbs@processor.tfcis.org (無言)》之銘言:
> 進入分類時自動show出類似進板畫面的功能
開一個目錄叫 gem/brdnote
進入該分類後,站長按 B 即可編輯該分類的「進分類畫面」
: board.c:XoClass()
xo.key = chn;
xo.xyz = NULL;
if (!class_load(&xo))
{
if (xo.xyz)
free(xo.xyz);
return 0;
}
+ /* 進分類畫面 */
+ if (!(class_bits[-chn] & BRD_V_BIT) || (cuser.ufo & UFO_BRDNOTE))
+ {
+ short *chx;
+ char *img, *str, *ptr, fpath[64];
+ img = class_img;
+ chx = (short *) img + (CH_END - chn);
+ str = img + *chx;
+ if (ptr = strchr(str, '/'))
+ {
+ sprintf(fpath, "gem/brdnote/%.*s.note", ptr - str, str);
+ more(fpath, NULL);
+ }
+ class_bits[-chn] ^= BRD_V_BIT;
+ }
xt = xz[XZ_CLASS - XO_ZONE].xo;
xz[XZ_CLASS - XO_ZONE].xo = &xo;
: board.c:class_memo_edit() 加在 class_help() 前面
static int
class_memo_edit(xo)
XO *xo;
{
int mode;
short *chx;
char *img, *str, *ptr, fpath[64];
if (xo->key >= CH_END || !HAS_PERM(PERM_ALLBOARD))
return XO_NONE;
img = class_img;
chx = (short *) img + (CH_END - xo->key);
str = img + *chx;
if (!(ptr = strchr(str, '/')))
return XO_NONE;
mode = vans("進板畫面 (D)刪除 (E)修改 (Q)取消?[E] ");
if (mode != 'q')
{
sprintf(fpath, "gem/brdnote/%.*s.note", ptr - str, str);
if (mode == 'd')
{
unlink(fpath);
return XO_FOOT;
}
if (vedit(fpath, 0)) /* Thor.981020: 注意被talk的問題 */
vmsg(msg_cancel);
return class_head(xo);
}
return XO_FOOT;
}
: board.c:class_cb[]
+ 'B', class_memo_edit,
'h', class_help
--
□ 本文章由 itoc 從 pc512-2.EE.NCTU.edu.tw 發表