作者Filitov.bbs@bbs.twcat.edu.tw (一點平懷) 看板: plan
標題Re: 關於主選單...
時間南女院BBS (2004/02/06 Fri 22:34:59) Updated: 2005/03/05
※ 引述《davidliu (David)》之銘言:
> 請問一下WindTop BBS在主選單都有一個(I)nfo【 校內公告區 】的功能,
> 該功能可以連結至站上某個看板,連結的看板如有新文章時還會讓主選單
> (I)nfo【 校內公告區 】變成(I)nfo【 有新公告! 】,不知道如何讓
> Maple BBS itoc版也能加入此功能?
仿 WT 改法....
[SomeBoard] 名稱自定,又 [SomeBoard] 必須不可 Zap (才會儲存閱讀記錄)
: global.h
#define BN_ANNOUNCE "0announce" /* 公告看板,強迫閱讀 */
+ #define BN_INFO "SomeBoard" /* 校內公告區 */
: maple.p
+ int check_unread_by_name(char *bname);
: board.c: check_unread_by_name() 新增此函式於 brd_force() 下面
int
check_unread_by_name(bname)
char *bname;
{
int bno;
BRD *brd;
bno = brd_bno(bname);
brd = bshm->bcache + bno;
#ifdef ENHANCED_VISIT
brh_get(brd->bstamp, bno);
return brh_unread(brd->blast);
#else
return (brd->blast > brd_visit[bno]);
#endif
}
: menu.c 將下面這段加在 menu_main[] 前面
#define INFO_EMPTY "Info 【 校內公告區 】"
#define INFO_HAVE "Info 【 有新公告! 】"
static int
Information()
{
int bno;
if ((bno = brd_bno(BN_INFO)) >= 0)
{
XoPost(bno);
xover(XZ_POST);
#ifndef ENHANCED_VISIT
time(&brd_visit[bno]);
#endif
return 0;
}
return XEASY;
}
: menu.c:check_unread() 新增在 menu() 前面
static char *
check_unread(desc)
char *desc;
{
return strcmp(desc, INFO_EMPTY) ? desc :
check_unread_by_name(BN_INFO) ? INFO_HAVE : INFO_EMPTY;
}
: menu.c:menu()
- str = mptr->desc;
+ str = check_unread(mptr->desc);
prints("(\033[1;36m%c\033[m)", *str++);
...
- str = mptr->desc;
+ str = check_unread(mptr->desc);
prints(" (\033[1;36m%c\033[m)", *str++);
...
- str = mptr->desc;
+ str = check_unread(mptr->desc);
prints(COLOR4 "> (%c)", *str++);
...
- str = mptr->desc;
+ str = check_unread(mptr->desc);
prints(COLOR4 "> (%c)", *str++);
: menu.c: static MENU menu_main[]
....
+ Information, 0, M_BOARD,
+ INFO_EMPTY,
....
--
╔╦╮╔ ╮╔═╮╔═╮╔╦╮ Origin: 台南女子技術學院 <bbs.twcat.edu.tw>
║ ║║║║ ╠═╣ ║ Author: Filitov From: 站務群
╩ ╰╩╝╰═╯╚ ╯ ╩ ══════════════════════╯