回精華區
作者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: 站務群
  ╩  ╰╩╝╰═╯╚  ╯  ╩    ══════════════════════╯
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻