$Id: README.SYSOP 10414 2008-09-26 11:32:12Z pig2532 $ kbsbbs 代码系统常见站务问题 (doc/README.SYSOP) 0 ChangeLog 主要修改记录 2008.9.26 pig2532 - 修改了一些过时的不与时俱进的说明。 2005.12.11 atppp - 新分类讨论区 Howto。感谢 cnbird & tombcy @ 水木社区 2004.11.4 atppp - 系统版面推荐的权限设置。感谢 zxtg @ 五色土 BBS,cnbird @ 水木社区 2004.10.7 atppp - miscd 和 bbslogd 使用说明,暂时放这里先(5.9 节) 2004.9.22 atppp - 加入分类讨论区修改说明。感谢 wuweixin @ 白山黑水 BBS 2004.4.11 atppp - 加入系统版面说明。感谢 wisi @ 同舟共济 BBS 2004.3.23 atppp - add to CVS 说明:文中用 $(BBSMAIN) 表示 bbs 的安装目录,也就是 configure 的 --prefix 参数 0.1 用户权限符号 权限符号对照表 bTCPRp#@XWBA$VS!DEM1234567890% 在个人工具箱中,对应的符号为-时,表示没有该权限。符 号对应权限表示的意义如下: b 基本权力 T 进聊天室 C 呼叫聊天 P 发文章 R 资料正确 p 站务 # 可隐身 @ 可见隐身 X 长期帐号 W 编辑系统档案 B 版主 A 帐号管理 $ 智囊团 V 封禁娱乐 S 系统维护 ! Read/Post限制 D 精华区总管 E 讨论区总管 M 活动看版总管 1 不能ZAP 2 聊天室OP 3 系统总管理员 4 荣誉帐号 5 特殊权限 6 仲裁 7 特殊权限 8 自杀 9 集体帐号 0 看系统讨论版 % 封禁Mail 在本文中,将使用相应的权限符号来代表具体的权限。 1. 版面设置 新开版面会开一个系统维护权限可读的,位于 0 区的一个版面。随后会立即进入 讨论区修改的界面具体设置版面各类选项。 1.1 一些选项的解释 1.1.1 讨论区名称 这个是版面的英文名称,同时对应服务器文件系统里面的目录名,不要超过 15 个 字母。同时注意不要有特殊符号(包括 &\/<>)或者空格什么的,如果有,第一个看起来 不好看,第二个不保证系统上面不出问题。比方说有 & 或者 # 符号的话,少数几个 WWW 的程序不能正确的处理。有的时候这个限制会有点别扭,参考参考这些版名: MovieTV NetResources 1.1.2 讨论区管理 这个可以用来直接任命版主,比方输入 atppp SYSOP 就直接任命这个版的版主 是这两个 ID。这个一般只用来任命 SYSOP 或者修正程序错误。普通的版主任命请到版 主任免的菜单,因为那样才能给相应用户版主的权限。 1.1.3 讨论区说明/分区/分类/描述 讨论区说明就是版面的中文名称,不要超过 16 个字节(8 个汉字)。 讨论区分区也就是版面的分区代号,注意一定要和分类讨论区设置匹配,要不然这个 版面就不属于任何分类讨论区了。 讨论区分类只要是四个字节即可,随便写什么都可以,不一定要和分类讨论区里面的 设置匹配。 讨论区描述应该含有版面关键字以便搜索讨论区时可以搜索到。 1.1.4 别的一些选项 统计文章数:表示用户在这个版发表文章的话,用户信息里面的文章数是否增加。 向外转信:后面 1.3 会讲。 E-mail 发文:这个开启后,mail2bbs/下面的程序才能往版面发文。 不可回复:表示这个版是否禁止回文章。 1.1.5 是否是目录/所属目录 设定讨论区之间的从属关系。 比方你可以设置 Linux 版是目录,然后设置 LinuxKernel 所属目录是 Linux。这 样当进入分类讨论区的时候,只能看到 Linux 目录,进入这个目录才能看到 LinuxKernel 版面。但是,如果从“所有讨论区”菜单进入,将同时看到 Linux 目录和 LinuxKernel 版面。 1.1.6 身份限制/权限限制/俱乐部选项 ... 下面的 2 会讲。 1.2 新站需要开的系统版面 kbsbbs 的系统版面和 FB2000 系统有不少不同。有一些 FB2000 系统中在版面删 除的文章会自动进入 JUNK 和 DELETED 两个版,但是在 kbsbbs 不是用这种模式,援 引 KCN 在 2001 年发表的 [功能增加] 通告如下(略有修改): 以下功能为ylsdd帮助编写并调试,真诚感谢 注:版主方能使用: 1.加入回收站和废纸篓模式。说明: . 这两种模式分别保存被版主删除的文章和网友自己删除的文章。 . 按 . 进入回收站模式, . 站务可以按 > 进入废纸篓模式,版主无法使用。 . 文章删除之后将不再进入 .DELETED 版面,而是放入本版的回收站和废纸篓 . 在回收站和废纸篓模式下按 Y 恢复文章到本版版面。(为保护一般用户的利益,只有拥 有 S系统维护 权限或作者自己才能看到和恢复用户自己删除的文章) . 这些模式下不能删除文章 . 如果这两种模式没有文章,则 . 和 > 不起作用 另外,kbsbbs 系统有一些特殊的系统版面用于系统记录。这类似于 FB2000 系统 但又有不少改进。这些系统版面在默认情况下包括(千万注意版名大小写): 第一列表示推荐的版面权限设置,下面有具体说明 V bbsnet 用户使用穿梭的记录。 X BBSLists 各类统计列表。 o Blessing 祝福版面。祝福榜排名将从这个版面产生。 V denypost 各版面封禁记录。 V Filter 含有系统自动过滤词语的文章将出现在这个版面。 有 S系统维护 权限的按 @ 审核后文章会出现在原来的版面。 V GiveupNotice 戒网记录 V Goodbye ID 自杀记录。 X newcomers 新手上路,这个最古老了。新 ID 注册会自动在这个版面发文。 X notepad 留言版记录。 V Recommend 推荐文章,文摘区文章会进入首页推荐。 V Registry 帐号管理员审核 ID 的记录。 V syssecurity 系统安全记录,包括任免版主、用户权限更改、版面设置更改等。 V undenypost 各版面解封记录。 X vote 各项投票与结果。 V sysmail 该版面建立以后,应该到 $(BBSMAIN)/boards/ 下面删除这个目 录,然后建立同名符号连接到 $(BBSMAIN)/mail/S/SYSOP。这个版 面应该设置只有站务可读,那么所有站务就都可以看到网友给 SYSOP 发送的信件了。 在开站的时候可以开启这些版面,部分版面应该限制读取权限或者设置只读。上面第一 列的符号表示推荐的最保守的权限设置,具体说明如下: V 仅站务可以阅读(一般是限制只有 S系统维护 权限可读) X 可以对普通用户开放,但是应该设置只读,参考下面的 2.3 节 o 可以对所有用户开放读写权限 关于设置权限请参考下面的第 2 部分。这里的权限只是最保守的推荐,一般来说放宽 这些权限设置不会影响站点的正常使用,但是可能会公开一些站点内部的机密。所以推荐 开站一段时间看有必要的话再放宽一部分版面的权限,比如 denypost 和 undenypost 这 两个版,有一些站点就是对普通用户开放阅读权限的。 1.3 如何给版面开通转信 首先站点需要开通转信,这个请参考相关文档,比如源代码 doc/INSTALL.innbbsd。 一般开通转信的版面的名称会有●的标记,这只需要修改讨论区选择合适的转信标签 即可,但是这个只是为了提示用户该版面是参与转信的,没有别的作用。真正要开通转 信,需要按照规定在 cnbbs.admin.manager 新闻组申请,批准之后站务上需要做的事情 是把这个版面“向外转信”选项打开,然后改动转信配置。方法是:系统管理菜单->修改 系统档案->转信版和新闻组对应,依样画葫芦改完了以后,选择系统管理菜单->转信管 理->重读配置。要注意的事情是,参与转信的版面如果改动了英文版名,也需要改动转信 的配置。 2. 特殊版面如何设置合适的权限 一个站点往往会有一些特殊版面,比方只给特殊人群开放的版面,或者有的时候, 希望有一些版面大家都可以看,但是只有特殊人群才可以发文。达到这个目的一般有 两种方法。 2.1 用版面读取/发表权限限制 这个模式一般用于站务相关的版面。在讨论区设置里面可以更改权限限制。如果 限制 (R)读,那么只有特殊的人群才可以进入这个版面,如果限制 (P)发表,那么所有 的用户都可以进入版面看文章,但是只有特殊的人群才可以发表文章。这个“特殊的人 群”就是后面通过设置权限来定义的。比方说,限制 (R)读,然后将 A账号管理 S系统维护 切换成 ON,那么这个版面只有拥有 A 权限或者(注意,是或者)S 权限的用 户才可以看到 - Registry 版就可以这么设置。 说明: 1. 限制读的话,就等于限制了发表。如果一个用户可以进入一个用权限设置限 制读的版面,那么他就自动拥有了可以在这个版面发文的权利; 2. 注意,要拥有更改版面设置的权利,这个版面必须是可读的。比方说,作为 系统管理员,你将 Registry 版设置成只有 A 权限的人可以读,这样的话如果 你没有 A 权限,那这个版就连你自己都看不到了!而且你也不能再更改这个 讨论区的设置 - 这时候你只能给自己更改权限,或者干脆找 SYSOP。 3. 版面可以进一步使用所需职务来限制。参见下面的 4.4.7 节。 FAQ1: 我以前设置了版面读/发表限制,现在怎么去掉?答:重新设置限制 (R)读, 然后把所有的权限都设置成 OFF。 FAQ2: Read/Post 限制 这个权限干嘛的?如果你限制 (P)发表,这个权限会自动 切换成 ON;限制 (R)读取或者不限制,这个权限自动是 OFF。这个开关不用 你操心,自动会设好的。 2.2 用俱乐部模式 这个一般用于非站务相关的版面;或者是希望同时限制版面读和发表,但是这两个 限制又针对不同的人。俱乐部可以设置隐藏,这样没有这个俱乐部读取权限的用户 就看不到这个俱乐部了。俱乐部允许读/发表的用户列表可以由俱乐部版主或者 E/S 权限的用户设置,方法是在版面按 Ctrl+E。 注意:E讨论区总管 自动拥有看到俱乐部版面的权利,但是读取权限还是没有的。 2.3 版面只读 E讨论区总管 和 S系统维护 可以设置版面只读。这个设置是一个单独的 flag, 和上面的任何设置都无关。方法是在版面列表中某版面前按;键。这个一般可以用 于设置自动发文的版面,比方说 BBSLists。注意:设置了版面只读的话任何人都不能发 文,所以像系统重要通知版一般不用这种设置,应该限制比方只有 S系统维护 才可 以 POST。 2.4 版面不能被 z 掉 用户可以按 z 来 z 掉一个版。如果有一些版面不希望被用户 z 掉(比方系统重要 通知版),可以设置限制 (R)阅读,然后将 不能 ZAP 切换成 ON。注意,这种情况下 其它的阅读限制设置都失效,所有的用户都可以看到这个版面了。 2.5 上面这些烂规定我想改改 这个...就要改源代码了,主要相关函数: check_read_perm() check_see_perm() 这两个可以在 site.c 里面定制 haspostperm() boards.c里面 3. 用户权限设置 用户权限,虽说是用户权限,但是有些设置其实并不是针对用户的,比方上面提到的 不能 ZAP 权限,还有 Read/Post 限制 只用在讨论区设定,和用户其实没什么关系。 b基本权力 这个是注册了就有的,除非被封禁登录权限了。 TCPR 这个基本上只要是通过注册的用户都有,除非被封禁了相应权限。 #可隐身 允许用户隐身。隐身的菜单在个人工具箱里面。 @可见隐身 允许看见隐身的用户,在查询用户/显示好友的时候,隐身用户的状态 是特殊颜色的。 B版主 版主的权限。如果有个 ID 确实“显示”是某个版的版主,但是却不能 进行版主操作,那么可能是由于系统错误在版主任免的时候没有给 这个权限。 S系统维护 PERM_SYSOP 权限,日常大多数维护工作都能干了。 3系统总管 PERM_ADMIN 权限。在默认情况下,只具有 3 权限的用户不能进入隐藏 的俱乐部,也不能做很多维护工作。但是,在代码里面限制只有拥有这个 系统总管权限才可以修改用户权限和资料,删除账号,修改系统档案,而 这四个工作,恰恰是系统最高权力所在。所以一般来说,只有最高层的站 务,在拥有其他一些权限特别是 S系统维护 权限的情况下,同时拥有系 统总管权限才能够掌握系统最高层的权力。 D精华区总管 精华区管理权限 - 可以修改精华区文章/目录结构等 E讨论区总管 讨论区事务什么都能干 - 能看见所有的隐藏俱乐部,能进行所有的版主 操作包括精华区操作。 一些管理权限,除了代码里面限制了一部分功能使用外,也可以通过调整 menu.ini 来限 制什么权限可以进行什么样的管理操作。比方,可以通过修改 menu.ini 来允许讨论区总 管使用任免版主的功能。 4. 系统档案 系统管理菜单里面有一个系统档案的编辑,这实际上就是编辑 BBS 服务器文件系统 里面一些重要的文件。技术站务可以修改代码禁止一些文件被一般的站务修改(比方说 menu.ini),或者增加一些文件供站务修改(比方说穿梭配置 bbsnet.ini)。 相关代码是 src/xyz.c a_edits() 函数的 e_file 和 explain_file 变量。 4.1 sysconf.ini sysconf.ini 和 menu.ini 这两个文件位于 $(BBSMAIN)/etc/ 下面,是系统最重要的 配置文件。 sysconf.ini 设置一些比较基本的系统参数,而且大部分参数应该由技术站务来设置。 管理技术的站务一定要注意,这个文件里面的 PERM_数字设置要和 site.h(如果这个站 点没有定制权限那就是 default.h)里面的设置一致。管理一般站务的同志可能就需要明 白下面这句设置: PERM_ADMENU = PERM_ACCOUNTS,PERM_SYSOP,PERM_OBOARDS,PERM_WELCOME,PERM_ANNOUNCE 这句话的意思是,用户只要拥有右边这些权限之一就可以进入系统管理菜单。 4.2 menu.ini menu.ini 是 BBS 菜单的配置。这个文件是重中之中,修改前最好是有个备份,否则 用户也许就永远进不了 BBS 了。现在没有发现 BBS 管理员操作能够备份/恢复这个文件, 所以一般还是推荐修改这两个 .ini 文件由技术站务来执行。需要注意的是每一条菜单都 有权限的设置,比方: !M_ADMIN 0, 0, PERM_ADMENU,"Admin", "A) 系统管理功能表 " 这个 PERM_ADMENU 就是和上面的 sysconf.ini 设置相配合使得只有特定权限的用户才能 看到/进入系统管理菜单。再比如: @ModifyLevel 0, 0, PERM_ADMIN, "Level", "L) 更改使用者的权限" 这就是说,只有有 3系统总管理员 权限的用户才可以更改 ID 的权限。这里要特别注 意的一点就是 menu.ini 里面的权限设置要和代码一致。比方你将上面这行设置成 PERM_ACCOUNTS 企图让账号管理员拥有更改使用者权限的权利,这样做是不够的,因为 代码里面只允许 3系统总管 更改用户权限。 4.3 使 menu.ini/sysconf.ini 的更新生效 这两个文件更新以后,需要有 S 权限的猪头在主菜单按一下 shift+~ 才会使设置生 效。如果记不住这个快捷键(ft),就到 bbs 数据主目录里面把 sysconf.img* 文件都 删掉。无论何种方法,下一个登录的用户就会使用新的设置了。 4.4 这些系统档案都是干嘛的?? 下面括号里面的文件名都是以 $(BBSMAIN)/etc/ 起始。 4.4.1 Welcome (../Welcome) 新站友注册的时候会看到 4.4.2 进站欢迎档 (issue) 这个就是进站画面,输入用户名之前就看到的那个东东 4.4.3 活动看版 (movie) 每五行一个活动看版 4.4.4 离站画面 (logout) 各个离站画面之间用一行 @logout@ 隔开 4.4.5 穿梭IP (proxyIP) 这个档案只和判断站友是否从穿梭注册有关 4.4.6 不可注册的ID (../.badname) 这里面每一行是一个 ID 和一个 timestamp。在这 个 timestamp + 30天 之前,这个 ID 都不允许注册。自杀 30 天之内不能注册就 是因为 bbs 系统自动修改了这个文件。 4.4.7 用户职务表(title) 是一个 255 行的文件,每一行表示一个用户职务。给个例 子。现在修改第一行为 KCN家属,这就表示用户职务 1 表示 KCN家属。什么用处 呢?比方可以设置 KCNStory 版面所需用户职务是1,然后设置 atppp 的用户职务 是1。这样普通用户都看不到这个版面了,而 atppp 即使是普通用户也可以看到这 个版面。在显示讨论区设定和用户信息的时候,“KCN家属”的字样也会显示出来。 FAQ: 怎么去掉这个版面限制?设置所需用户职务是 0。 4.4.8 不可登录的 IP(../.badIP)。每行一条记录,格式是 +IP reason。注意最开始 是个 +,IP 和 reason 之间空一格。IP 可以是只包括前面的几位以匹配多个IP。 reason 是具体不让登录的原因,将会出现在登录画面。如果你要暂时允许这个 IP 登录,可以删除最前面的那个 +。示例: 127.0.0.1 赫赫,就是不让 +192.168.0. 不让就是不让 这样的话,127.0.0.1 还是允许登录的,但是从 192.168.0.3 登录将显示: 本站目前不欢迎来自 192.168.0.3 访问! 原因:不让就是不让。 4.4.9 系统自动过滤的词语(badword)。打开了 FILTER 编译选项,在公开版面发文就 会自动过滤这个文件里面的词汇。文件格式是每行一个词。 5. 一些杂问 5.1 系统管理菜单里面我选择了停止登录,现在连我都进不去了! 登录 BBS 主机,删掉文件 $(BBSMAIN)/NOLOGIN 5.2 怎么更改版名大小写? 不能直接改,先改名为别的,再改回来。 5.3 删掉了版面,再新开同名版面开不了! kbs 为了安全,删除了版面其实不删除数据。登录 BBS 主机,到 $(BBSMAIN)/boards/ 和 $(BBSMAIN)/vote/ 下面删除对应的目录即可。 另外一个方法是先开一个其它的名字,再修改回原来想要的名字。 5.4 十大话题,十大祝福什么的都显示不出来。 参考 contrib/crontab.SMTH,doc/README.utils 和 doc/README.local_utl,登录 BBS 主机给 bbs 用户配置 crontab 文件。 5.5 进入系统管理选单的时候提示 请输入系统密码,可是我忘了啊! 登录 BBS 主机,删掉文件 $(BBSMAIN)/etc/systempassword 5.6 telnet 下显示附件链接的域名怎么改? 改 $(BBSMAIN)/etc/sysconf.ini 里面的 BBS_WEBDOMAIN 或者 BBSDOMAIN。改完别 忘了在主菜单按 shift+~ 5.7 站务修改用户 ID 大小写之后用户不能登录了 用户加密的密码是和 ID 相关的,所以修改 ID 之后原来的密码就失效了。正确的 修改 ID 的过程是:用户发信给站务说明新 ID 和新临时密码之后下线,站务修改 ID, 然后修改该 ID 密码。之后用户登录再修改为最终密码。 5.8 其它一些有用的系统档案 这些系统档案在默认情况下都是不能用系统管理菜单编辑或者本来就是系统自动产生 没有必要编辑的。下面的文件名以 $(BBSMAIN)/ 起始。 login.bad 所有的密码错误记录。 register.list 所有的通过认证用户的注册信息。 trace 和 error.log 系统错误记录。 user.log 主要是用户发文和发信记录。 usies 主要是用户上站记录。 etc/autopost 系统每天自动张贴的配置。每行一条,格式是: 文件名 ($(BBSMAIN)/ 起始的话可以省略) 版名 帖子标题 etc/bbsnet.ini 穿梭配置。具体的格式参见源代码目录下 bbshome/etc/bbsnet.ini 的例子 etc/sysops 离站的时候选择第一个会显示站务管理员名单,这个文件就是 配置文件,每行一个管理员,格式是: 管理员ID 职务 etc/initial_favboard 新注册用户默认的收藏版面,格式是每行一个版名。如果该文 件不存在,默认的收藏版面是 .BOARDS 里面的第一个版面。 5.9 miscd 和 bbslogd 使用说明 这两个程序是保证系统正常运行的最重要的两个 daemon 程序。miscd 负责一些杂 务,bbslogd 主要用于接收系统 log 并定时写入磁盘相应的文件。miscd 启动的参数说 明: miscd daemon: 运行为守护进程,一般都用这种方式启动 miscd。miscd 会自动产生 四个守护进程分别负责各项工作,大多数工作都是一天自动执行一 次。只有你需要强制立即执行某个工作的时候,才需要用下面的方式 运行 miscd。 miscd killuser: 杀掉生命力小于等于 0 的帐号。 miscd giveup: 解开戒网到期的用户。(不由 daemon 执行,需要加在 crontab 里) miscd killdir : 删除指定版面回收站和废纸篓中的老文章。 miscd allboards: 删除所有版面回收站和废纸篓中的老文章。 miscd flush: 将 .PASSWDS 和 .BOARDS 两个文件的内容从共享内存同步到磁盘。 请特别注意,使用 KILL(9) 信号杀掉 miscd 守护进程将可能会导致 用户和版面数据不同步甚至丢失,后果很严重!推荐关机前手动执行 一次这个命令确保数据写回磁盘。如果服务器不稳定,可以在 crontab 里面定时执行这个命令。 bbslogd 启动不带参数,但是可以给 bbslogd 进程发信号来指定需要的操作,有用的信 号包括: SIGALRM: 强制立即将收到的 log 写入磁盘相应文件。正常运行过程中 bbslogd 每 10 分钟进行一次这样的操作。调试程序的时候可以用这个方法立即看到 系统产生的新 log。信号可以这么发:killall -ALRM bbslogd SIGUSR1: rotate log 文件。比如,usies 的文件内容可能会被移动到 usies.0(如 果这个文件已经存在那就把 0 改成更大的数字),而 usies 文件会被清 空。在 bbslogd 正常运行过程中直接删除或移动 log 文件的做法是极其 错误的,一定要使用发 SIGUSR1 信号的办法来缩减 log 文件大小! 6 修改分类讨论区 修改站点的分类讨论区一般来说有两个步骤,一是需要修改站点的配置文件,二是需 要改动代码。配置文件的修改主要和 term 下用户界面有关,而源代码的修改主要和 Web 界面、统计程序以及站务管理有关。 6.1 修改站点配置文件 需要改动的文件是 $(BBSMAIN)/etc/menu.ini 。下面是 menu.ini 分类讨论区子菜 单的一个简略形式,后面的讲解将都以此为例: #------------------------------------------------------------------ %menu M_EGROUP title 0, 0, "分类讨论区选单" screen 3, 0, S_EGROUP @EGroups 10, 22, 0, "0BBS", "(0) 本站系统 [本站]" @EGroups 0, 0, 0, "1USA", "(1) 人在美国 [校园][创业]" @EGroups 0, 0, 0, "2GoAbroad", "(2) 大话西游 [留学][学校][团体]" @BoardsNew 0, 0, 0, "New", "(N) 阅读新文章" !.. 0, 0, 0, "Exit", "(E) 回到主选单" % EGROUP0 = "a" EGROUP1 = "b" EGROUP2 = "c" #------------------------------------------------------------------ 这里需要注意的地方是:分类讨论区菜单的第 5 个参数的第一个字母是序列号,这个序 列号通过下面的 EGROUP? 来定义分区代号(一般是一个字母或数字)。比如这里的第一 个分类讨论区“本站系统”,序列号是 0,分区代号是 a(由 EGROUP0 定义)。注意: 序列号只是 menu.ini 内部引用使用,没有任何别的用处!后面的修改,以及新建和修改 讨论区都只需要知道分区代号即可,在这个例子中,三个分区代号分别是 a b c。 一般可以把序列号和分区代号设置成一样。 改完 menu.ini 参考 4.3 节使之生效。 6.2 修改源代码 修改分类讨论区需要修改站点的 site.c 和 site.h 文件。不推荐直接修改 default.h 和 default.c 文件。 kbsbbs 系统有一个 $(BBSMAIN)/0Announce/groups/ 目录,这是版面精华区的总目 录,该目录下存放所有版面的精华区。一般站点希望版面分区结构和精华区分区结构完全 一致。以上面的例子为例,一共三个分类讨论区,那么讨论区精华的总目录下应该有三个 目录,我们把它们分别取名为 GROUP_0 GROUP_1 GROUP_2。修改分类讨论区往往会需要修 改精华区结构,所以修改完分类讨论区之后站务应该进入精华区调整,比如建立目录,修 改 .Names 文件等。特别是 $(BBSMAIN)/0Announce/groups/.Names 文件应该是类似这样 的内容: # # Title=讨论区精华 # Name=本站系统 Attach=0 Path=~/GROUP_0 Numb=1 # Name=人在美国 Attach=0 Path=~/GROUP_1 Numb=2 # Name=大话西游 Attach=0 Path=~/GROUP_2 Numb=3 # 源代码的修改首先是 site.h 里面的 SECNUM 常数,它应该定义为分类讨论区数量: #define SECNUM 3 剩下的修改都在 site.c 里面了,为此确保 site.h 没有定义 USE_DEFAULT_SECODE。 site.c 内一共有三个常量和分类讨论区有关,请注意常量的类型定义绝不能改。 const char seccode[SECNUM][5] = {"a", "b", "c"}; 这个是分区代号,Web 和部分统计程序需要用到。 const char * const groups[] = { "GROUP_0", "GROUP_1", "GROUP_2", NULL }; 精华区总目录下相应分区的目录名,开版和修改版面设定的时候会用到。 最后的 NULL 不能漏! const char secname[SECNUM][2][20] = { {"本站系统", "[本站]"}, {"人在美国", "[校园][创业]"}, {"大话西游", "[留学][学校][团体]"}, }; 分类讨论区说明,就按照这个格式依样画葫芦好了。Web 会用到。注意这里定死了 字符串长度不能超过 19,不要越界。 另一个需要注意的问题是,每个版面的精华区目录位置都是完全独立储存的,和上面 的修改毫无关系。所以像上面的例子,如果我们决定把 GROUP_0 的目录名改掉,那样的 话不但要进行类似上面所述的修改,而且精华区位于 GROUP_0 目录内的版面都应该要进 入系统管理菜单重新设定讨论区,选择移动精华区位置,指定新的目录。 修改源代码之后需要重新编译安装 BBS 程序。 7. 新分类讨论区 Howto 7.1 为什么要使用新分类讨论区 新分类讨论区看作一个系统全站都用的个人定制区,但是只有 S 权限的能修改。 由于可以多级分类,一个版面放置到多个类别里,比旧分类讨论区灵活,方便。 所以有兴趣的站点不妨使用一下。 2 开启这项功能 技术站务: (为什么是技术站务,因为 menu.ini 建议由技术站务操作,且操作前保留备份) 在 menu.ini 合适的地方添加一行,一般是放在 分类讨论区 的上面。 @AllBoard 0, 0, 0, "XBoard", "X) 新分类讨论区 " 在主菜单按 ~ 更新一下。 3 整理新分类讨论区 新分类讨论区初始为空,此时有 S 权限的用户可以来整理。主要功能键有: A 添加目录 Ctrl+O 添加版面 t 修改名称 如“Academics” T 修改类别,中文描述 如“学术    科学 技术 社科 语言 ...” d 删除目录或版面 Ctrl+E 设置用户阅读权限。进入菜单后同设置版面阅读权限一样。