回精華區
作者kewang.bbs@bbs.niu.edu.tw (kewang) 看板: plan
標題[功能] 自訂文章範本
時間蘭雨情懷資訊站 (2006/06/01 Thu 20:19:17) Updated: 2005/06/02
一直沒看到有人寫這個功能出來

最近有時間  我就研究了一下

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

先做下面這個功能  要不然做了自訂範本也沒什麼意義

[功能] manage.c 板主自訂發文類別

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

include/config.h

+ #ifdef POST_PREFIX              //自訂文章類別數目  by  kewang  2006.06.01
+ #define NUM_PREFIX      6
+ #define HAVE_TEMPLATE           //自訂文章範本  by  kewang  2006.06.01
+ #endif

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

新增post_template_edit()這個函式在 so/manage.c:post_manage() 前面

#ifdef HAVE_TEMPLATE            //自訂文章範本  by  kewang 2006.06.01
/* ----------------------------------------------------- */
/* 板主功能 : 自訂文章範本                               */
/* ----------------------------------------------------- */


static int
post_template_edit(xo)
  XO *xo;
{
  int i;
  int ans;
  char buf[64], fpath[64];
  char ftemplate[11];

  if (!(bbstate & STAT_BOARD))
    return XO_NONE;

  for (i = 0; i < NUM_PREFIX; i++)
  {
    sprintf(buf, "範本%d (D)刪除 (E)修改 (Q)取消?[E] ", i+1);
    ans = vans(buf);

    if (ans == 'q')
      continue;

    sprintf(ftemplate, "template_%d", i+1);

    brd_fpath(fpath, currboard, ftemplate);

    if (ans == 'd')
    {
      unlink(fpath);
      continue;
    }

    if (vedit(fpath, 0))        /* Thor.981020: 注意被talk的問題 */
      vmsg(msg_cancel);
    return XO_HEAD;
  }

  return XO_FOOT;
}
#endif

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

修改so/manage.c:post_prefix_edit()

: #define NUM_PREFIX 6
- #define NUM_PREFIX 6

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

修改maple/post.c:do_post()

  utmp_mode(M_POST);
+#ifdef HAVE_TEMPLATE    //自訂文章範本  by  kewang 2006.06.01
+ if (mode >= 0 && mode < NUM_PREFIX)
+ {
+   char ftemplate[11];
+   sprintf(ftemplate, "template_%d", mode + 1);
+   brd_fpath(fpath, currboard, ftemplate);
+ }
+#else
  fpath[0] = '\0';
+#endif

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

修改maple/edit.c:vedit()

     case Ctrl('X'):           /* Save and exit */

+ #ifdef HAVE_TEMPLATE            //自訂文章範本  by  kewang 2006.06.01
+        if (strstr(fpath, "template_") != NULL && ve_op == 1)
+          fpath[0] = '\0';
+ #endif

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

修改so/manage.c:post_manage()

    "WMemo   編輯進板畫面",
+#ifdef HAVE_TEMPLATE
+   "CusPost 自訂文章範本",
+#endif

 ...
 ...

  case 'w':
    return post_memo_edit(xo);

+#ifdef HAVE_TEMPLATE
+ case 'c':
+   return post_template_edit(xo);
+#endif

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

大概就是這樣子~

不過自訂類別那個部分大家在做的時候可能會產生一些問題

大家自己找找好了  因為我之前改的忘了做註解



如果覺得哪邊可以再改進  歡迎指教

--
  Site  國立宜蘭大學˙蘭雨情懷資訊站 【bbs.niu.edu.tw】
  From  220-132-68-25.HINET-IP.hinet.net
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻