回精華區
作者itoc, 信區: itoc
標題[功能] menu.c 程式處理 FAQ
時間04/01/06
作者: itoc (League) 看板: plan
標題: [功能] 程式處理 FAQ
時間: 2004/01/06 Tue 20:38:20                           Updated: 2005/05/19

  讓程式去處理 FAQ

: menu.c:menu_user[] 新增選項

  faq, 0, M_XMODE,
  "0FAQ       《 我有問題 》",

: menu.c:faq() 加在 goodbye() 下面

static int
faq()
{
  int rc;
  char *menu[] =
  {
    "QQ",
    "Quit  問題問完了",
    "1     看板不見了",
    "2     不能發表文章",
    "3     不能使用簽名檔",
    "0     其他",
    NULL
  };

  while (1)
  {
    rc = pans(3, 20, "常見問題", menu);

    if (rc == '1')
    {
      int bno;
      BRD *brd;
      char bname[BNLEN + 1];
      extern BCACHE *bshm;
      extern char brd_bits[];

      if (brd = ask_board(bname, BRD_L_BIT, NULL))
      {
        bno = brd - bshm->bcache;
        brd_bits[bno] &= ~BRD_Z_BIT;
        brh_save();
        board_main();
        vmsg("處理完成");
      }
    }
    else if (rc == '2')
    {
      if (HAS_PERM(PERM_DENYPOST))
        vmsg("您已經被停權了");
      else if (!HAS_PERM(PERM_VALID))
        vmsg("您尚未通過認證喔");
#ifdef NEWUSER_LIMIT
      else if (!HAS_PERM(PERM_POST))
      {
        if (ap_start - time(NULL) >= 3 * 86400)
          vmsg("請重新上站,就可以了");
        else
          vmsg("新手上路,見習三天,您必須在註冊滿三天以後才能發表文章");
      }
#endif
      else
      {
        vmsg("您明明就可以發表文章啊~");
      }
    }
    else if (rc == '3')
    {
      cuser.ufo &= ~UFO_NOSIGN;
      cutmp->ufo = cuser.ufo;
      vmsg("處理完成");
    }
    else if (rc == '0')
    {
      int bno;

      vmsg("若有其他疑難雜症,請在 sysop 板按 Ctrl+P 寫文章問站長");
      bno = brd_bno("sysop");
      XoPost(bno);
      xover(XZ_POST);
#ifndef ENHANCED_VISIT
      time(&brd_visit[bno]);
#endif
    }
    else
    {
      return 0;
    }
  }
}


--
□ 本文章由 itocitoc.Dorm11.NCTU.edu.tw 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻