很多站点都有了定制功能,自己也写了一个,实现方法可能不一样
大致如下:
1.存入 当用户选择了版面之后,将其存入用户数据目录的一个
文件中.如: /home/bbs/home/W/who/favboards.这个
代码应该比较好写,bbs.c加个实现的函数,类似于
[选择讨论区] 的do_select函数,只是将版面名字写入
文件中
2.读入 读入主要流程是调用choose_board(),choose_board()调用
load_board(),show_brdlist()来完成版面的显示,然后等待
命令输入,所以我们主要修改的地方就是在装入部分,即load_board()
我写的代码如下:
int
RdFavBoard()
{
RdFavFlag=1; //设置flag表示是个人定制
boardprefix = NULL;
choose_board(1); // 完成显示等操作
RdFavFlag=0; //别忘了标志清空
}
int
load_boards() //load_boards()里添加读取个人定制数据的程序
{
................
if(RdFavFlag==1) {
sprintf(boardbuf,"home/%c/%s/favboards",toupper(currentuser.userid[
0]),currentuser.userid);
if(fp=fopen(boardbuf,"a+")) {
fseek(fp,0L,0);
for(i=0;;i++) {
if(fread(&allbrdbuf[i],1,1,fp)!=1) break;
}
}
fclose(fp);
}
for( n = 0; n < numboards; n++ ) {
bptr = &bcache[ n ];
if(RdFavFlag==1) {
if((strstr(allbrdbuf,bptr->filename)==NULL)&&(strstr(bptr->filename,
"sysop")==NULL))
continue; //如果读取的版面不在文件里则继续循环,&&后面的判断
//可以使sysop版为定制版面里的必须显示的
}
..................
--
FROM 211.65.97.12