回精華區
作者heeroy.bbs@starlight.twbbs.org (海ソ見りペ街) 看板: plan
標題[修正] 板主自訂分類顏色
時間星光‧心情 (2005/06/16 Thu 15:43:55) Updated: 2005/08/02
將精華區中amaki大的patch做一點修正,
然後將功能從看板主題獨立出來

: transbrd.c:struct NEW

 char BM[BMLEN + 1];
+char bcolor[3];

: transbrd.c:main()

      str_ncpy(new.BM, old.BM, sizeof(new.BM));
+     new.bcolor[0] = '1';
+     new.bcolor[1] = (old.class[3] & 7) + '0';
+     new.bcolor[2] = '0';
      new.bvote = old.bvote;

compile transbrd
接下來請將所有使用者踢下線,關站,清shm,
再執行 transbrd 轉換 .BRD, 再用其他的 port 開站測試,
確定一切正常之後再繼續改下面的東西

: struct.h:struct BRD

 char BM[BMLEN + 1];
+char bcolor[3];

: manage.c:post_class_color() 新增以下function在post_brdtitle()之前

/* ----------------------------------------------------- */
/* 板主功能 : 修改分類顏色                               */
/* ----------------------------------------------------- */

static int
post_class_color(xo)
  XO* xo;
{
  BRD *oldbrd, newbrd;

  oldbrd = bshm->bcache + currbno;
  memcpy(&newbrd, oldbrd, sizeof(BRD));

  if (vans("修改看板分類顏色(Y/N)?[N] ") == 'y')
  {
    do
    {
      newbrd.bcolor[0] = vans("前景亮度 0)普通 1)高亮? ");
    } while (newbrd.bcolor[0] < '0' || newbrd.bcolor[0] > '1');

    do
    {
      newbrd.bcolor[1] =
        vans("前景 0)黑 1)紅 2)綠 3)黃 4)藍 5)紫 6)靛 7)白? ");
    } while (newbrd.bcolor[1] < '0' || newbrd.bcolor[1] > '7');

    do
    {
      newbrd.bcolor[2] =
        vans("背景 0)黑 1)紅 2)綠 3)黃 4)藍 5)紫 6)靛 7)白? ");
    } while (newbrd.bcolor[2] < '0' || newbrd.bcolor[2] > '7');

    if (memcmp(&newbrd, oldbrd, sizeof(BRD)) && vans(msg_sure_ny) == 'y')
    {
      memcpy(oldbrd, &newbrd, sizeof(BRD));
      rec_put(FN_BRD, &newbrd, sizeof(BRD), currbno, NULL);
      return XO_HEAD;   /* itoc.011125: 要重繪中文板名 */
    }
  }

  return XO_FOOT;
}

: manage.c:post_manege()

    "Manager 增減副板主",
+   "Tcolor 自訂分類顏色",

  ...

- char *menu = "◎ 板主選單 (B)主題 (W)進板 (M)副板"
+ char *menu = "◎ 板主選單 (B)主題 (W)進板 (M)副板 (T)顏色"

  ...

  case 'm':
    return post_changeBM(xo);

+ case 't':
+   return post_class_color(xo);

: acct.c:brd_set()

  vget(++i, 0, "看板主題:", brd->title, BTLEN + 1, GCARRY);

+ if (brd->bcolor[0] != '0' && brd->bcolor[0] != '1')
+ {
+   /* 新增看板直接assign預設值 */
+   sprintf(brd->bcolor, "1%d0", brd->class[3] & 7);
+ }
+ else
+ { /* 修改看板時再確認要不要改分類顏色 */
+   if (vans("修改看板分類顏色?[N] ") == 'y')
+   {
+     do
+     {
+       brd->bcolor[0] = vans("前景顏色:0)一般 1)高亮度?");
+     } while(brd->bcolor[0] > '1' || brd->bcolor[0] < '0');
+     do
+     {
+       brd->bcolor[1] =
+         vans("前景 0)黑 1)紅 2)綠 3)黃 4)藍 5)紫 6)靛 7)白? ");
+     } while(brd->bcolor[1] > '7' || brd->bcolor[1] < '0');
+     do
+     {
+       brd->bcolor[2] =
+         vans("背景 0)黑 1)紅 2)綠 3)黃 4)藍 5)紫 6)靛 7)白? ");
+     } while(brd->bcolor[2] > '7' || brd->bcolor[2] < '0');
+   }
+ }

--
愛像落在心頭的火花,
把心事完全點亮,
深深在乎對方,
就無法隱藏~

--
          PE﹛�   starlight.twbbs.org
          byheeroy      
          fromheeroy.arch.cycu.edu.tw                     
                _ˍ▁▂▃▄▅▇▆▅▆▇███▇▆▅▄▃▂▁ˍ_

--
對著星空說出我的名字是音樂
也許我愛的是山與海
牽著妳的手等待天明
在這塊土地上
希望一直都存在
這裡,是我永遠的故鄉

--
          PE﹛�   starlight.twbbs.org
          byheeroy      
          fromheeroy.arch.cycu.edu.tw                     
                _ˍ▁▂▃▄▅▇▆▅▆▇███▇▆▅▄▃▂▁ˍ_
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻