回精華區
作者qazq.bbs@bbs.cs.nchu.edu.tw (ξ愛情御守ξ) 看板: plan
標題[功能] 進階匿名發文功能。
時間中興資科 (Tue, 19 Aug 2003 04:44:06 +0800 (CST)) Updated: 2003/08/19
    1) 先詢問要不要匿名發文,預設為[Y]使用匿名發文。

       打[N]的話,直接以自己的ID發文。


    2) 自定ID的時候,如果為自己的ID,那麼就不匿名發文(後面不加'.')

       如果自定的ID已經有人註冊,那麼出現訊息並且要求重新輸入。


    3) 確定自定的ID沒有人使用後,方可發文成功。



    修改下面的程式,因為有些程式碼太長,在BBS顯示的時候會導致斷行。

    所以我把太長的程式碼分成兩行,修改的時候可自行接回。


==============================================================================

: src/maple/edit.c:ve_header()


  if (curredit & EDIT_MAIL)
  {
    fprintf(fp, "%s %s (%s)\n", str_author1, cuser.userid, cuser.username);
  }
  else
  {
#ifdef HAVE_ANONYMOUS
    if (currbattr & BRD_ANONYMOUS)
    {
+     if (vans("要匿名發表文章嗎(Y/N)?[Y] ") != 'n')   /* 預設改為匿名發表 */
+     {
+       do
+       {
+         if (!vget(b_lines, 0, "請輸入你想用的ID,也可直接按[Enter]:",
+                anonymousid, IDLEN, DOECHO))
+         {
+           strcpy(anonymousid, STR_ANONYMOUS);/* 按Enter,匿名ID就用預設的 */
+           curredit |= EDIT_ANONYMOUS;
+           break;
+         }
+         else if (!strcmp(anonymousid, cuser.userid))  /* 自定匿名ID */
+         {                     /* 和自己的ID一樣,不匿名發文 */
+           curredit |= EDIT_ANONYMOUS;
+           break;
+         }
+         else
+         {
+           char fpath[64];
+           usr_fpath(fpath, anonymousid, NULL);
+           if (dashd(fpath))               /* 檢查這個ID有沒有註冊 */
+           {
+             vmsg("這個ID有人用了喔!換一個吧。"); //訊息內容可自己更改
+           }
+           else                    /* 終於可以用自己想要的ID發文了:P */
+           {
+             strcat(anonymousid, ".");/* 若是自定ID,要在後面加個 . 表示不同*/
+             curredit |= EDIT_ANONYMOUS;
+             break;
+           }
+         }
+
+       } while (1);
+
+     }
+   }

-     if (!vget(b_lines, 0, "請輸入你想用的ID,也可直接按[Enter]"
-            ",或是按[r]用真名:", anonymousid, IDLEN, DOECHO))
-     {                                         /* 留 1 byte 加 "." */
-       strcpy(anonymousid, STR_ANONYMOUS);
-       curredit |= EDIT_ANONYMOUS;
-     }
-     else if (strcmp(anonymousid, "r"))
-     {
-       strcat(anonymousid, ".");    /* 若是自定ID,要在後面加個 . 表示不同 */
-       curredit |= EDIT_ANONYMOUS;
-     }
-   }
#endif

    if (!(currbattr & BRD_NOSTAT))  /* 看板不納入統計 */
    {
      /* 產生統計資料 */

--
  Author:  中興資科˙中興資科 e資獨秀  bbs.cs.nchu.edu.tw 
  Origin: qazq 61-216-251-115.HINET-IP.hinet.net 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻