root/trunk/kbs_bbs/doc/README.SYSOP

Revision 10597, 21.4 KB (checked in by fancy, 7 months ago)

yu shi ju jin!

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1$Id$
2kbsbbs 代码系统常见站务问题 (doc/README.SYSOP)
3
40 ChangeLog 主要修改记录
52008.9.26
6    pig2532 - 修改了一些过时的不与时俱进的说明。
72005.12.11
8    atppp - 新分类讨论区 Howto。感谢 cnbird & tombcy @ 水木社区
92004.11.4
10    atppp - 系统版面推荐的权限设置。感谢 zxtg @ 五色土 BBS,cnbird @ 水木社区
112004.10.7
12    atppp - miscd 和 bbslogd 使用说明,暂时放这里先(5.9 节)
132004.9.22
14    atppp - 加入分类讨论区修改说明。感谢 wuweixin @ 白山黑水 BBS
152004.4.11
16    atppp - 加入系统版面说明。感谢 wisi @ 同舟共济 BBS
172004.3.23
18    atppp - add to CVS
19
20说明:文中用 $(BBSMAIN) 表示 bbs 的安装目录,也就是 configure 的 --prefix 参数
21
22
230.1 用户权限符号
24
25                               权限符号对照表
26
27                       bTCPRp#@XWBA$VS!DEM1234567890%
28
29            在个人工具箱中,对应的符号为-时,表示没有该权限。符
30            号对应权限表示的意义如下:
31
32            b 基本权力           T 进聊天室          C 呼叫聊天
33            P 发文章             R 资料正确          p 站务
34            # 可隐身             @ 可见隐身          X 长期帐号
35            W 编辑系统档案       B 版主              A 帐号管理
36            $ 智囊团             V 封禁娱乐          S 系统维护
37            ! Read/Post限制      D 精华区总管        E 讨论区总管
38            M 活动看版总管       1 不能ZAP           2 聊天室OP
39            3 系统总管理员       4 荣誉帐号          5 特殊权限
40            6 仲裁               7 特殊权限          8 自杀
41            9 集体帐号           0 看系统讨论版      % 封禁Mail
42
43    在本文中,将使用相应的权限符号来代表具体的权限。
44
45
461. 版面设置
47
48    新开版面会开一个系统维护权限可读的,位于 0 区的一个版面。随后会立即进入
49讨论区修改的界面具体设置版面各类选项。
50
511.1 一些选项的解释
52
531.1.1 讨论区名称
54
55    这个是版面的英文名称,同时对应服务器文件系统里面的目录名,不要超过 15 个
56字母。同时注意不要有特殊符号(包括 &\/<>)或者空格什么的,如果有,第一个看起来
57不好看,第二个不保证系统上面不出问题。比方说有 & 或者 # 符号的话,少数几个 WWW
58的程序不能正确的处理。有的时候这个限制会有点别扭,参考参考这些版名:
59    MovieTV NetResources
60
611.1.2 讨论区管理
62
63    这个可以用来直接任命版主,比方输入 atppp SYSOP 就直接任命这个版的版主
64是这两个 ID。这个一般只用来任命 SYSOP 或者修正程序错误。普通的版主任命请到版
65主任免的菜单,因为那样才能给相应用户版主的权限。
66
671.1.3 讨论区说明/分区/分类/描述
68
69    讨论区说明就是版面的中文名称,不要超过 16 个字节(8 个汉字)。
70    讨论区分区也就是版面的分区代号,注意一定要和分类讨论区设置匹配,要不然这个
71版面就不属于任何分类讨论区了。
72    讨论区分类只要是四个字节即可,随便写什么都可以,不一定要和分类讨论区里面的
73设置匹配。
74    讨论区描述应该含有版面关键字以便搜索讨论区时可以搜索到。
75
761.1.4 别的一些选项
77
78    统计文章数:表示用户在这个版发表文章的话,用户信息里面的文章数是否增加。
79    向外转信:后面 1.3 会讲。
80    E-mail 发文:这个开启后,mail2bbs/下面的程序才能往版面发文。
81    不可回复:表示这个版是否禁止回文章。
82
831.1.5 是否是目录/所属目录 设定讨论区之间的从属关系。
84
85    比方你可以设置 Linux 版是目录,然后设置 LinuxKernel 所属目录是 Linux。这
86样当进入分类讨论区的时候,只能看到 Linux 目录,进入这个目录才能看到
87LinuxKernel 版面。但是,如果从“所有讨论区”菜单进入,将同时看到 Linux 目录和
88LinuxKernel 版面。
89
901.1.6 身份限制/权限限制/俱乐部选项 ... 下面的 2 会讲。
91
92
931.2 新站需要开的系统版面
94
95    kbsbbs 的系统版面和 FB2000 系统有不少不同。有一些 FB2000 系统中在版面删
96除的文章会自动进入 JUNK 和 DELETED 两个版,但是在 kbsbbs 不是用这种模式,援
97引 KCN 在 2001 年发表的 [功能增加] 通告如下(略有修改):
98
99以下功能为ylsdd帮助编写并调试,真诚感谢
100注:版主方能使用:
1011.加入回收站和废纸篓模式。说明:
102.  这两种模式分别保存被版主删除的文章和网友自己删除的文章。
103.  按 . 进入回收站模式,
104.  站务可以按 > 进入废纸篓模式,版主无法使用。
105.  文章删除之后将不再进入 .DELETED 版面,而是放入本版的回收站和废纸篓
106.  在回收站和废纸篓模式下按 Y 恢复文章到本版版面。(为保护一般用户的利益,只有拥
107   有 S系统维护 权限或作者自己才能看到和恢复用户自己删除的文章)
108.  这些模式下不能删除文章
109.  如果这两种模式没有文章,则 . 和 > 不起作用
110
111    另外,kbsbbs 系统有一些特殊的系统版面用于系统记录。这类似于 FB2000 系统
112但又有不少改进。这些系统版面在默认情况下包括(千万注意版名大小写):
113
114第一列表示推荐的版面权限设置,下面有具体说明
115V      bbsnet       用户使用穿梭的记录。
116X      BBSLists     各类统计列表。
117o      Blessing     祝福版面。祝福榜排名将从这个版面产生。
118V      denypost     各版面封禁记录。
119V      Filter       含有系统自动过滤词语的文章将出现在这个版面。
120                    有 S系统维护 权限的按 @ 审核后文章会出现在原来的版面。
121V      GiveupNotice 戒网记录
122V      Goodbye      ID 自杀记录。
123X      newcomers    新手上路,这个最古老了。新 ID 注册会自动在这个版面发文。
124X      notepad      留言版记录。
125V      Recommend    推荐文章,文摘区文章会进入首页推荐。
126V      Registry     帐号管理员审核 ID 通过的记录。
127V      reject_registry  帐号管理员审核 ID 不通过的记录。
128V      syssecurity  系统安全记录,包括任免版主、用户权限更改、版面设置更改等。
129V      undenypost   各版面解封记录。
130X      vote         各项投票与结果。
131V      sysmail      该版面建立以后,应该到 $(BBSMAIN)/boards/ 下面删除这个目
132                    录,然后建立同名符号连接到 $(BBSMAIN)/mail/S/SYSOP。这个版
133                    面应该设置只有站务可读,那么所有站务就都可以看到网友给
134                    SYSOP 发送的信件了。
135
136    在开站的时候可以开启这些版面,部分版面应该限制读取权限或者设置只读。上面第一
137列的符号表示推荐的最保守的权限设置,具体说明如下:
138        V   仅站务可以阅读(一般是限制只有 S系统维护 权限可读)
139        X   可以对普通用户开放,但是应该设置只读,参考下面的 2.3 节
140        o   可以对所有用户开放读写权限
141    关于设置权限请参考下面的第 2 部分。这里的权限只是最保守的推荐,一般来说放宽
142这些权限设置不会影响站点的正常使用,但是可能会公开一些站点内部的机密。所以推荐
143开站一段时间看有必要的话再放宽一部分版面的权限,比如 denypost 和 undenypost 这
144两个版,有一些站点就是对普通用户开放阅读权限的。
145
146
147
1481.3 如何给版面开通转信
149
150    首先站点需要开通转信,这个请参考相关文档,比如源代码 doc/INSTALL.innbbsd。
151
152    一般开通转信的版面的名称会有●的标记,这只需要修改讨论区选择合适的转信标签
153即可,但是这个只是为了提示用户该版面是参与转信的,没有别的作用。真正要开通转
154信,需要按照规定在 cnbbs.admin.manager 新闻组申请,批准之后站务上需要做的事情
155是把这个版面“向外转信”选项打开,然后改动转信配置。方法是:系统管理菜单->修改
156系统档案->转信版和新闻组对应,依样画葫芦改完了以后,选择系统管理菜单->转信管
157理->重读配置。要注意的事情是,参与转信的版面如果改动了英文版名,也需要改动转信
158的配置。
159
160
1612. 特殊版面如何设置合适的权限
162
163    一个站点往往会有一些特殊版面,比方只给特殊人群开放的版面,或者有的时候,
164希望有一些版面大家都可以看,但是只有特殊人群才可以发文。达到这个目的一般有
165两种方法。
166
1672.1 用版面读取/发表权限限制
168
169    这个模式一般用于站务相关的版面。在讨论区设置里面可以更改权限限制。如果
170限制 (R)读,那么只有特殊的人群才可以进入这个版面,如果限制 (P)发表,那么所有
171的用户都可以进入版面看文章,但是只有特殊的人群才可以发表文章。这个“特殊的人
172群”就是后面通过设置权限来定义的。比方说,限制 (R)读,然后将 A账号管理
173S系统维护 切换成 ON,那么这个版面只有拥有 A 权限或者(注意,是或者)S 权限的用
174户才可以看到 - Registry 版就可以这么设置。
175    说明:
176    1. 限制读的话,就等于限制了发表。如果一个用户可以进入一个用权限设置限
177       制读的版面,那么他就自动拥有了可以在这个版面发文的权利;
178    2. 注意,要拥有更改版面设置的权利,这个版面必须是可读的。比方说,作为
179       系统管理员,你将 Registry 版设置成只有 A 权限的人可以读,这样的话如果
180       你没有 A 权限,那这个版就连你自己都看不到了!而且你也不能再更改这个
181       讨论区的设置 - 这时候你只能给自己更改权限,或者干脆找 SYSOP。
182    3. 版面可以进一步使用所需职务来限制。参见下面的 4.4.7 节。
183
184    FAQ1: 我以前设置了版面读/发表限制,现在怎么去掉?答:重新设置限制 (R)读,
185          然后把所有的权限都设置成 OFF。
186    FAQ2: Read/Post 限制 这个权限干嘛的?如果你限制 (P)发表,这个权限会自动
187          切换成 ON;限制 (R)读取或者不限制,这个权限自动是 OFF。这个开关不用
188          你操心,自动会设好的。
189
190
1912.2 用俱乐部模式
192
193    这个一般用于非站务相关的版面;或者是希望同时限制版面读和发表,但是这两个
194限制又针对不同的人。俱乐部可以设置隐藏,这样没有这个俱乐部读取权限的用户
195就看不到这个俱乐部了。俱乐部允许读/发表的用户列表可以由俱乐部版主或者
196E/S 权限的用户设置,方法是在版面按 Ctrl+E。
197    注意:E讨论区总管 自动拥有看到俱乐部版面的权利,但是读取权限还是没有的。
198
1992.3 版面只读
200
201    E讨论区总管 和 S系统维护 可以设置版面只读。这个设置是一个单独的 flag,
202和上面的任何设置都无关。方法是在版面列表中某版面前按;键。这个一般可以用
203于设置自动发文的版面,比方说 BBSLists。注意:设置了版面只读的话任何人都不能发
204文,所以像系统重要通知版一般不用这种设置,应该限制比方只有 S系统维护 才可
205以 POST。
206
2072.4 版面不能被 z 掉
208
209    用户可以按 z 来 z 掉一个版。如果有一些版面不希望被用户 z 掉(比方系统重要
210通知版),可以设置限制 (R)阅读,然后将 不能 ZAP 切换成 ON。注意,这种情况下
211其它的阅读限制设置都失效,所有的用户都可以看到这个版面了。
212
2132.5 上面这些烂规定我想改改
214
215    这个...就要改源代码了,主要相关函数:
216    check_read_perm() check_see_perm() 这两个可以在 site.c 里面定制
217    haspostperm() boards.c里面
218
219
2203. 用户权限设置
221
222用户权限,虽说是用户权限,但是有些设置其实并不是针对用户的,比方上面提到的
223不能 ZAP 权限,还有 Read/Post 限制 只用在讨论区设定,和用户其实没什么关系。
224
225b基本权力   这个是注册了就有的,除非被封禁登录权限了。
226TCPR        这个基本上只要是通过注册的用户都有,除非被封禁了相应权限。
227#可隐身     允许用户隐身。隐身的菜单在个人工具箱里面。
228@可见隐身   允许看见隐身的用户,在查询用户/显示好友的时候,隐身用户的状态
229            是特殊颜色的。
230B版主       版主的权限。如果有个 ID 确实“显示”是某个版的版主,但是却不能
231            进行版主操作,那么可能是由于系统错误在版主任免的时候没有给
232            这个权限。
233S系统维护   PERM_SYSOP 权限,日常大多数维护工作都能干了。
2343系统总管   PERM_ADMIN 权限。在默认情况下,只具有 3 权限的用户不能进入隐藏
235            的俱乐部,也不能做很多维护工作。但是,在代码里面限制只有拥有这个
236            系统总管权限才可以修改用户权限和资料,删除账号,修改系统档案,而
237            这四个工作,恰恰是系统最高权力所在。所以一般来说,只有最高层的站
238            务,在拥有其他一些权限特别是 S系统维护 权限的情况下,同时拥有系
239            统总管权限才能够掌握系统最高层的权力。
240D精华区总管 精华区管理权限 - 可以修改精华区文章/目录结构等
241E讨论区总管 讨论区事务什么都能干 - 能看见所有的隐藏俱乐部,能进行所有的版主
242            操作包括精华区操作。
243一些管理权限,除了代码里面限制了一部分功能使用外,也可以通过调整 menu.ini 来限
244制什么权限可以进行什么样的管理操作。比方,可以通过修改 menu.ini 来允许讨论区总
245管使用任免版主的功能。
246
2474. 系统档案
248
249    系统管理菜单里面有一个系统档案的编辑,这实际上就是编辑 BBS 服务器文件系统
250里面一些重要的文件。技术站务可以修改代码禁止一些文件被一般的站务修改(比方说
251menu.ini),或者增加一些文件供站务修改(比方说穿梭配置 bbsnet.ini)。
252相关代码是 src/xyz.c a_edits() 函数的 e_file 和 explain_file 变量。
253
2544.1 sysconf.ini
255
256    sysconf.ini 和 menu.ini 这两个文件位于 $(BBSMAIN)/etc/ 下面,是系统最重要的
257配置文件。
258    sysconf.ini 设置一些比较基本的系统参数,而且大部分参数应该由技术站务来设置。
259管理技术的站务一定要注意,这个文件里面的 PERM_数字设置要和 site.h(如果这个站
260点没有定制权限那就是 default.h)里面的设置一致。管理一般站务的同志可能就需要明
261白下面这句设置:
262PERM_ADMENU = PERM_ACCOUNTS,PERM_SYSOP,PERM_OBOARDS,PERM_WELCOME,PERM_ANNOUNCE
263这句话的意思是,用户只要拥有右边这些权限之一就可以进入系统管理菜单。
264
2654.2 menu.ini
266
267    menu.ini 是 BBS 菜单的配置。这个文件是重中之中,修改前最好是有个备份,否则
268用户也许就永远进不了 BBS 了。现在没有发现 BBS 管理员操作能够备份/恢复这个文件,
269所以一般还是推荐修改这两个 .ini 文件由技术站务来执行。需要注意的是每一条菜单都
270有权限的设置,比方:
271
272!M_ADMIN     0, 0, PERM_ADMENU,"Admin",      "A) 系统管理功能表  "
273
274这个 PERM_ADMENU 就是和上面的 sysconf.ini 设置相配合使得只有特定权限的用户才能
275看到/进入系统管理菜单。再比如:
276
277@ModifyLevel 0, 0, PERM_ADMIN,   "Level",      "L) 更改使用者的权限"
278
279这就是说,只有有 3系统总管理员 权限的用户才可以更改 ID 的权限。这里要特别注
280意的一点就是 menu.ini 里面的权限设置要和代码一致。比方你将上面这行设置成
281PERM_ACCOUNTS 企图让账号管理员拥有更改使用者权限的权利,这样做是不够的,因为
282代码里面只允许 3系统总管 更改用户权限。
283
284
2854.3 使 menu.ini/sysconf.ini 的更新生效
286
287    这两个文件更新以后,需要有 S 权限的猪头在主菜单按一下 shift+~ 才会使设置生
288效。如果记不住这个快捷键(ft),就到 bbs 数据主目录里面把 sysconf.img* 文件都
289删掉。无论何种方法,下一个登录的用户就会使用新的设置了。
290
291
2924.4 这些系统档案都是干嘛的??
293
294    下面括号里面的文件名都是以 $(BBSMAIN)/etc/ 起始。
295
2964.4.1 Welcome (../Welcome) 新站友注册的时候会看到
2974.4.2 进站欢迎档 (issue) 这个就是进站画面,输入用户名之前就看到的那个东东
2984.4.3 活动看版 (movie) 每五行一个活动看版
2994.4.4 离站画面 (logout) 各个离站画面之间用一行 @logout@ 隔开
3004.4.5 穿梭IP (proxyIP) 这个档案只和判断站友是否从穿梭注册有关
3014.4.6 不可注册的ID (../.badname) 这里面每一行是一个 ID 和一个 timestamp。在这
302      个 timestamp + 30天 之前,这个 ID 都不允许注册。自杀 30 天之内不能注册就
303      是因为 bbs 系统自动修改了这个文件。
3044.4.7 用户职务表(title) 是一个 255 行的文件,每一行表示一个用户职务。给个例
305      子。现在修改第一行为 KCN家属,这就表示用户职务 1 表示 KCN家属。什么用处
306      呢?比方可以设置 KCNStory 版面所需用户职务是1,然后设置 atppp 的用户职务
307      是1。这样普通用户都看不到这个版面了,而 atppp 即使是普通用户也可以看到这
308      个版面。在显示讨论区设定和用户信息的时候,“KCN家属”的字样也会显示出来。
309      FAQ: 怎么去掉这个版面限制?设置所需用户职务是 0。
3104.4.8 不可登录的 IP(../.badIP)。每行一条记录,格式是 +IP reason。注意最开始
311      是个 +,IP 和 reason 之间空一格。IP 可以是只包括前面的几位以匹配多个IP。
312      reason 是具体不让登录的原因,将会出现在登录画面。如果你要暂时允许这个
313      IP 登录,可以删除最前面的那个 +。示例:
314
315      127.0.0.1 赫赫,就是不让
316      +192.168.0. 不让就是不让
317
318      这样的话,127.0.0.1 还是允许登录的,但是从 192.168.0.3 登录将显示:
319
320      本站目前不欢迎来自 192.168.0.3 访问!
321      原因:不让就是不让。
3224.4.9 系统自动过滤的词语(badword)。打开了 FILTER 编译选项,在公开版面发文就
323      会自动过滤这个文件里面的词汇。文件格式是每行一个词。
324
325
3265. 一些杂问
327
3285.1 系统管理菜单里面我选择了停止登录,现在连我都进不去了!
329    登录 BBS 主机,删掉文件 $(BBSMAIN)/NOLOGIN
330
3315.2 怎么更改版名大小写?
332    不能直接改,先改名为别的,再改回来。
333
3345.3 删掉了版面,再新开同名版面开不了!
335    kbs 为了安全,删除了版面其实不删除数据。登录 BBS 主机,到
336    $(BBSMAIN)/boards/ 和 $(BBSMAIN)/vote/ 下面删除对应的目录即可。
337    另外一个方法是先开一个其它的名字,再修改回原来想要的名字。
338
3395.4 十大话题,十大祝福什么的都显示不出来。
340    参考 contrib/crontab.SMTH,doc/README.utils 和 doc/README.local_utl,登录
341    BBS 主机给 bbs 用户配置 crontab 文件。
342
3435.5 进入系统管理选单的时候提示 请输入系统密码,可是我忘了啊!
344    登录 BBS 主机,删掉文件 $(BBSMAIN)/etc/systempassword
345
3465.6 telnet 下显示附件链接的域名怎么改?
347    改 $(BBSMAIN)/etc/sysconf.ini 里面的 BBS_WEBDOMAIN 或者 BBSDOMAIN。改完别
348    忘了在主菜单按 shift+~
349
3505.7 站务修改用户 ID 大小写之后用户不能登录了
351        用户加密的密码是和 ID 相关的,所以修改 ID 之后原来的密码就失效了。正确的
352修改 ID 的过程是:用户发信给站务说明新 ID 和新临时密码之后下线,站务修改 ID,
353然后修改该 ID 密码。之后用户登录再修改为最终密码。
354
3555.8 其它一些有用的系统档案
356    这些系统档案在默认情况下都是不能用系统管理菜单编辑或者本来就是系统自动产生
357没有必要编辑的。下面的文件名以 $(BBSMAIN)/ 起始。
358
359    login.bad           所有的密码错误记录。
360    register.list       所有的通过认证用户的注册信息。
361    trace 和 error.log  系统错误记录。
362    user.log            主要是用户发文和发信记录。
363    usies               主要是用户上站记录。
364    etc/autopost        系统每天自动张贴的配置。每行一条,格式是:
365                        文件名 ($(BBSMAIN)/ 起始的话可以省略) 版名  帖子标题
366    etc/bbsnet.ini      穿梭配置。具体的格式参见源代码目录下
367                        bbshome/etc/bbsnet.ini 的例子
368    etc/sysops          离站的时候选择第一个会显示站务管理员名单,这个文件就是
369                        配置文件,每行一个管理员,格式是:
370                        管理员ID  职务
371    etc/initial_favboard
372                        新注册用户默认的收藏版面,格式是每行一个版名。如果该文
373                        件不存在,默认的收藏版面是 .BOARDS 里面的第一个版面。
374
3755.9 miscd 和 bbslogd 使用说明
376    这两个程序是保证系统正常运行的最重要的两个 daemon 程序。miscd 负责一些杂
377务,bbslogd 主要用于接收系统 log 并定时写入磁盘相应的文件。miscd 启动的参数说
378明:
379    miscd daemon: 运行为守护进程,一般都用这种方式启动 miscd。miscd 会自动产生
380                  四个守护进程分别负责各项工作,大多数工作都是一天自动执行一
381                  次。只有你需要强制立即执行某个工作的时候,才需要用下面的方式
382                  运行 miscd。
383    miscd killuser: 杀掉生命力小于等于 0 的帐号。
384    miscd giveup: 解开戒网到期的用户。(不由 daemon 执行,需要加在 crontab 里)
385    miscd killdir <BOARDNAME>: 删除指定版面回收站和废纸篓中的老文章。
386    miscd allboards: 删除所有版面回收站和废纸篓中的老文章。
387    miscd flush: 将 .PASSWDS 和 .BOARDS 两个文件的内容从共享内存同步到磁盘。
388                 请特别注意,使用 KILL(9) 信号杀掉 miscd 守护进程将可能会导致
389                 用户和版面数据不同步甚至丢失,后果很严重!推荐关机前手动执行
390                 一次这个命令确保数据写回磁盘。如果服务器不稳定,可以在 crontab
391                 里面定时执行这个命令。
392bbslogd 启动不带参数,但是可以给 bbslogd 进程发信号来指定需要的操作,有用的信
393号包括:
394    SIGALRM: 强制立即将收到的 log 写入磁盘相应文件。正常运行过程中 bbslogd 每
395             10 分钟进行一次这样的操作。调试程序的时候可以用这个方法立即看到
396             系统产生的新 log。信号可以这么发:killall -ALRM bbslogd
397    SIGUSR1: rotate log 文件。比如,usies 的文件内容可能会被移动到 usies.0(如
398             果这个文件已经存在那就把 0 改成更大的数字),而 usies 文件会被清
399             空。在 bbslogd 正常运行过程中直接删除或移动 log 文件的做法是极其
400             错误的,一定要使用发 SIGUSR1 信号的办法来缩减 log 文件大小!
401             
402
4036 修改分类讨论区
404
405    修改站点的分类讨论区一般来说有两个步骤,一是需要修改站点的配置文件,二是需
406要改动代码。配置文件的修改主要和 term 下用户界面有关,而源代码的修改主要和 Web
407界面、统计程序以及站务管理有关。
408
4096.1 修改站点配置文件
410
411    需要改动的文件是 $(BBSMAIN)/etc/menu.ini 。下面是 menu.ini 分类讨论区子菜
412单的一个简略形式,后面的讲解将都以此为例:
413
414#------------------------------------------------------------------
415%menu M_EGROUP
416title        0, 0, "分类讨论区选单"
417screen       3, 0, S_EGROUP
418@EGroups     10, 22, 0, "0BBS",      "(0) 本站系统   [本站]"
419@EGroups     0, 0, 0,   "1USA",      "(1) 人在美国   [校园][创业]"
420@EGroups     0, 0, 0,   "2GoAbroad", "(2) 大话西游   [留学][学校][团体]"
421@BoardsNew   0, 0, 0,   "New",       "(N) 阅读新文章"
422!..          0, 0, 0,   "Exit",      "(E) 回到主选单"
423%
424EGROUP0 = "a"
425EGROUP1 = "b"
426EGROUP2 = "c"
427#------------------------------------------------------------------
428
429这里需要注意的地方是:分类讨论区菜单的第 5 个参数的第一个字母是序列号,这个序
430列号通过下面的 EGROUP? 来定义分区代号(一般是一个字母或数字)。比如这里的第一
431个分类讨论区“本站系统”,序列号是 0,分区代号是 a(由 EGROUP0 定义)。注意:
432序列号只是 menu.ini 内部引用使用,没有任何别的用处!后面的修改,以及新建和修改
433讨论区都只需要知道分区代号即可,在这个例子中,三个分区代号分别是 a b c。
434    一般可以把序列号和分区代号设置成一样。
435    改完 menu.ini 参考 4.3 节使之生效。
436   
437
4386.2 修改源代码
439    修改分类讨论区需要修改站点的 site.c 和 site.h 文件。不推荐直接修改
440default.h 和 default.c 文件。
441    kbsbbs 系统有一个 $(BBSMAIN)/0Announce/groups/ 目录,这是版面精华区的总目
442录,该目录下存放所有版面的精华区。一般站点希望版面分区结构和精华区分区结构完全
443一致。以上面的例子为例,一共三个分类讨论区,那么讨论区精华的总目录下应该有三个
444目录,我们把它们分别取名为 GROUP_0 GROUP_1 GROUP_2。修改分类讨论区往往会需要修
445改精华区结构,所以修改完分类讨论区之后站务应该进入精华区调整,比如建立目录,修
446改 .Names 文件等。特别是 $(BBSMAIN)/0Announce/groups/.Names 文件应该是类似这样
447的内容:
448
449#
450# Title=讨论区精华
451#
452Name=本站系统
453Attach=0
454Path=~/GROUP_0
455Numb=1
456#
457Name=人在美国
458Attach=0
459Path=~/GROUP_1
460Numb=2
461#
462Name=大话西游
463Attach=0
464Path=~/GROUP_2
465Numb=3
466#
467
468    源代码的修改首先是 site.h 里面的 SECNUM 常数,它应该定义为分类讨论区数量:
469#define SECNUM 3
470
471    剩下的修改都在 site.c 里面了,为此确保 site.h 没有定义 USE_DEFAULT_SECODE。
472
473    site.c 内一共有三个常量和分类讨论区有关,请注意常量的类型定义绝不能改。
474
475const char seccode[SECNUM][5] = {"a", "b", "c"};
476    这个是分区代号,Web 和部分统计程序需要用到。
477
478const char * const groups[] = {
479    "GROUP_0",
480    "GROUP_1",
481    "GROUP_2",
482    NULL
483};
484    精华区总目录下相应分区的目录名,开版和修改版面设定的时候会用到。
485    最后的 NULL 不能漏!
486
487const char secname[SECNUM][2][20] = {
488    {"本站系统", "[本站]"},
489    {"人在美国", "[校园][创业]"},
490    {"大话西游", "[留学][学校][团体]"},
491};
492    分类讨论区说明,就按照这个格式依样画葫芦好了。Web 会用到。注意这里定死了
493字符串长度不能超过 19,不要越界。
494   
495    另一个需要注意的问题是,每个版面的精华区目录位置都是完全独立储存的,和上面
496的修改毫无关系。所以像上面的例子,如果我们决定把 GROUP_0 的目录名改掉,那样的
497话不但要进行类似上面所述的修改,而且精华区位于 GROUP_0 目录内的版面都应该要进
498入系统管理菜单重新设定讨论区,选择移动精华区位置,指定新的目录。
499
500    修改源代码之后需要重新编译安装 BBS 程序。
501
502
5037. 新分类讨论区 Howto
504
5057.1 为什么要使用新分类讨论区
506新分类讨论区看作一个系统全站都用的个人定制区,但是只有 S 权限的能修改。
507由于可以多级分类,一个版面放置到多个类别里,比旧分类讨论区灵活,方便。
508所以有兴趣的站点不妨使用一下。
509
5102 开启这项功能
511技术站务:
512(为什么是技术站务,因为 menu.ini 建议由技术站务操作,且操作前保留备份)
513在 menu.ini 合适的地方添加一行,一般是放在 分类讨论区 的上面。
514@AllBoard    0, 0, 0,   "XBoard", "X) 新分类讨论区    "
515在主菜单按 ~ 更新一下。
516
5173 整理新分类讨论区
518新分类讨论区初始为空,此时有 S 权限的用户可以来整理。主要功能键有:
519
520A      添加目录
521Ctrl+O 添加版面
522t      修改名称              如“Academics”
523T      修改类别,中文描述    如“学术    科学 技术 社科 语言 ...”
524m      调整顺序
525d      删除目录或版面
526Ctrl+E 设置用户阅读权限。进入菜单后同设置版面阅读权限一样。
527
Note: See TracBrowser for help on using the browser.