示例#1
0
文件: bbsmyclass.c 项目: lytsing/ytht
void
savemyclass()
{
	struct brcinfo *brcinfo;
	struct boardmem *bx;
	char *ptr = getparm("myclass");
	bx = getboard2(ptr);
	if (!bx) {
		printf("<b>没有找到 %s 版,请用“搜索”功能搜索版面</b><br>\n",
		       ptr);
		return;
	}
	if (!has_read_perm_x(currentuser, bx)) {
		printf
		    ("<b>%s 版是一个封闭版面,请先向版务申请加入,或者用“搜索”功能另选其他版面</b><br>\n",
		     ptr);
		return;
	}
	brcinfo = brc_readinfo(currentuser->userid);
	strsncpy(brcinfo->myclass, bx->header.filename,
		 sizeof (brcinfo->myclass));
	ptr = strtrim(getparm("myclasstitle"));
	if (!strcmp(ptr, "版面标题"))
		brcinfo->myclasstitle[0] = 0;
	else
		strsncpy(brcinfo->myclasstitle, ptr,
			 sizeof (brcinfo->myclasstitle));
	brc_saveinfo(currentuser->userid, brcinfo);
	printf
	    ("<b>设置成功</b>(以后可以到菜单“个人工具箱”-->“设定底栏显示的版面”进行修改)<br>");
	printf("<script>top.f4.location.reload();</script>");
}
示例#2
0
文件: bbsmybrd.c 项目: bmybbs/bmybbs
//secstr == NULL: all boards
//secstr == "": boards that doesnn't belong to any group
static void
showlist_alphabetical(const char *secstr, int needrss)
{
	struct boardmem *(data[MAXBOARD]);
	int i, len = 0, total = 0;
	if (secstr) {
		len = strlen(secstr);
		if (len == 0)
			len = 1;
	}
	for (i = 0; i < MAXBOARD && i < shm_bcache->number; i++) {
		if (secstr
		    && strncmp(shm_bcache->bcache[i].header.sec1, secstr, len)
		    && strncmp(shm_bcache->bcache[i].header.sec2, secstr, len))
			continue;
		if (has_read_perm_x(&currentuser, &(shm_bcache->bcache[i]))) {
			data[total] = &(shm_bcache->bcache[i]);
			total++;
		}
	}
	if (!total)
		return;
	qsort(data, total, sizeof (struct boardmem *), (void *) cmpboard);
	printf("<table>\n");
	if (needrss)
	{
		for (i = 0; i < total; i++) {
		if (i % 3 == 0)
			printf("\n<tr>");
		printf
		    ("<td class=tdborder><a href=%s%s>%s(%s)</a>&nbsp;<a href=\"http://bbs.xjtu.edu.cn/BMYGXTBBUYRMZQTLAGFIFGNMJULDMBECHGGV_B/rss?board=%s\" target=\"blank\"><img  src=\"/images/rss.gif\" border=\"0\" />\n",
		     showByDefMode(), data[i]->header.filename, data[i]->header.filename, data[i]->header.title, data[i]->header.filename);
		}
		printf("</table><br>\n");
	}
	else
	{
		for (i = 0; i < total; i++) {
		char *buf3 = "";
		if (ismybrd(data[i]->header.filename))
			buf3 = " checked";
		if (i % 3 == 0)
			printf("\n<tr>");
		printf
		    ("<td class=tdborder><input type=checkbox name=%s %s><a href=%s%s>%s(%s)</a>&nbsp;<a href=\"http://bbs.xjtu.edu.cn/BMYGXTBBUYRMZQTLAGFIFGNMJULDMBECHGGV_B/rss?board=%s\" target=\"blank\"><img  src=\"/images/rss.gif\" border=\"0\" />\n",
		     data[i]->header.filename, buf3, showByDefMode(), data[i]->header.filename,
		     data[i]->header.filename, data[i]->header.title, data[i]->header.filename);
		}
		printf("</table><br>\n");
	}

}
示例#3
0
文件: bbsboa.c 项目: miminus/bmybbs
int
bbsboa_main()
{
	struct boardmem *(data[MAXBOARD]), *x;
	int i, total = 0;
	char *secstr; //, session_name[STRLEN], pname[STRLEN], *p;
	const struct sectree *sec;
	//int show_Commend();
	int hasintro = 0, len;

	secstr = getparm("secstr");
	sec = getsectree(secstr);
	//if (secstr[0] != '*') {   暂时去掉缓存 by IronBlood@bmy 20120329
	////get_session_string(session_name);
	////if (secstr[0] != '*' && !no_cache_header) {
	//	    if (cache_header
	//	    (max(thisversion, file_time(MY_BBS_HOME "/wwwtmp")), 120))
	//		return 0;
	//}
	/*
	if (no_cache_header) {
		p = strchr(session_name, '.');
		if (NULL != p) {
			*p = '\0';
		}
		
		sprintf(pname, "/%s%s/", SMAGIC, session_name);
		print_session_string(pname);
	}
	*/

	html_header(1);
	check_msg();
	//printf("<style type=text/css>A {color: #0000f0}</style>");
	changemode(SELECT);
	if (secstr[0] == '*') {
		readmybrd(currentuser.userid);
		for (i = 0; i < MAXBOARD && i < shm_bcache->number; i++) {
			x = &(shm_bcache->bcache[i]);
			if (x->header.filename[0] <= 32
			    || x->header.filename[0] > 'z')
				continue;
			if (!has_read_perm_x(&currentuser, x))
				continue;
			if (!ismybrd(x->header.filename))
				continue;
			data[total] = x;
			total++;
		}
		printf("<body><center>\n");
		printf("<div class=rhead>%s --<span class=h11> 预定讨论区总览</span></div><hr>", BBSNAME);
		if (total)
			showboardlist(data, total, "*", sec);
		printf("<hr>");
		return 0;
	}
	if(!strcmp(secstr,"?")){
		printf("<script src=\"/inc/tog.js\"></script></head><body leftmargin=0 topmargin=0>\n");
		show_banner();
		show_content();
		goto out;
	}
	len = strlen(secstr);
	if (sec->introstr[0])
		hasintro = 1; 
	for (i = 0; i < MAXBOARD && i < shm_bcache->number; i++) {
		x = &(shm_bcache->bcache[i]);
		if (x->header.filename[0] <= 32 || x->header.filename[0] > 'z')
			continue;
		if (hasintro) {
			if (strcmp(secstr, x->header.sec1) &&
			    strcmp(secstr, x->header.sec2)) continue;
		} else {
			if (strncmp(secstr, x->header.sec1, len) &&
			    strncmp(secstr, x->header.sec2, len))
				continue;
		}
		if (!has_read_perm_x(&currentuser, x))
			continue;
		data[total] = x;
		total++;
	}
	printf("<body topmargin=0 leftMargin=1 MARGINWIDTH=1 MARGINHEIGHT=0>"); 
	showsecpage(sec, data, total, secstr); 
out:
	printf("</body></html>");
	return 0;
}
示例#4
0
文件: bbssbs.c 项目: bmybbs/bmybbs
int
bbssbs_main()
{	
	int result[MAXBOARD], i, total=0;
	char keyword[80], *ptr, buf[128], bmbuf[(IDLEN + 1) * 4];
	struct boardmem *bp;
	
	html_header(1);
	check_msg();
	changemode(READING);
	strsncpy(keyword, getparm("keyword"), 32);
	printf("<body><center>");
	printf("<div class=rhead>%s -- 超级版面选择</div><hr>\n", BBSNAME);
	
	if (strlen(strtrim(keyword))) { 
		for (i = 0; i < shm_bcache->number && total < MAXBOARD ; i++){
			if (shm_bcache->bcache[i].header.filename[0] == '\0')
				continue;
			if (has_read_perm_x(&currentuser, &(shm_bcache->bcache[i].header))) {
				if (strcasestr(shm_bcache->bcache[i].header.filename, keyword) 
				 || strcasestr(shm_bcache->bcache[i].header.keyword, keyword) 
				 || strcasestr(shm_bcache->bcache[i].header.title, keyword) ){
					result[total] = i;
					total++;
				}
			}
		}
		if (total == 0){
			printf("Sorry,我真的帮你找了,没找到符合条件的讨论区啊!");
			printf("<p><a href=javascript:history.go(-1)>快速返回</a>");
			http_quit();
/*			
		}else if (total == 1){
			sprintf(buf, "%s?board=%s", "bbshome", shm_bcache->bcache[result[0]].header.filename);
			redirect(buf);
*/
		}else {
			printf("<table width=\"100%\" border=0 cellpadding=0 cellspacing=0><tr>\n"
				"<td width=40>&nbsp;</td>\n"
				"<td colspan=2 class=\"level1\"><TABLE width=\"90%\" border=0 cellPadding=2 cellSpacing=0>\n"
				"<TBODY>\n");
			printf("<TR>\n"
				"<TD class=tdtitle>未</TD>\n"
				"<TD class=tduser>讨论区名称</TD>\n"
				"<TD class=tdtitle>V</TD>\n"
				"<TD class=tdtitle>类别</TD>\n"
				"<TD class=tdtitle>中文描述</TD>\n"
				"<TD class=tdtitle>版主</TD>\n"
				"<TD class=tdtitle>文章数</TD>\n"
				"<TD class=tdtitle>人气</TD>\n"
				"<TD class=tdtitle>在线</TD>\n"
				"</TR>\n");
			//brc_initial(currentuser.userid, NULL);
			printf("<tr>\n");
			for (i = 0; i < total; i++){
				bp=&(shm_bcache->bcache[result[i]]);
				printf("<td class=tdborder>%s</td>\n", 
					board_read(bp->header.filename, bp->lastpost) ? "◇" : "◆");
				printf("<td class=tduser><a href=%s?B=%s >%s</a></td>\n",
					"bbsdoc", bp->header.filename, bp->header.filename);
				printf("<td class=tdborder>");
				if (bp->header.flag & VOTE_FLAG)
					printf("<a href=vote?B=%s>V</a>", bp->header.filename);
				else
					printf("&nbsp;");
				printf("</td>\n");
				printf("<td class=tdborder>[%4.4s]</td>\n", bp->header.type);
				printf("<td class=tdborder><a href=%s?B=%s>%s</a></td>\n",
					"bbshome",bp->header.filename, bp->header.title);
				ptr = userid_str(bm2str(bmbuf, &(bp->header)));
				if (strlen(ptr) == 0)
					printf("<td class=tdborder>诚征版主中</td>\n");
				else
					printf("<td class=tdborder>%s</td>\n", ptr);
				printf("<td class=tdborder>%d</td>\n"
					"<td class=tdborder>%d</td>\n"
					"<td class=tdborder>%d</td>\n</tr>\n",
					bp->total, bp->score, bp->inboard);
				setbfile(buf, bp->header.filename, "introduction");
				if (file_exist(buf)) { 
					printf("<tr><td>&nbsp;&nbsp;</td>\n"
						"<td class=tduser>版面简介: </td>\n"
						"<td class=tdborder colspan=7>"
						"<div title=\"本版关键字: %s\">\n", 
						bp->header.keyword[0] ? bp->header.keyword: "(暂无)");
					fshowcon(stdout, buf, 2);
					printf("</div></td></tr>\n");
				}
				printlastmark(bp->header.filename);
			}
			printf("</TR></TBODY></TABLE></td></tr></table>\n");
		}
	}
	printf("<br><form action=bbssbs>\n");
	printf
	    ("<div title=\"支持中英文版名/版面关键字定位至版面。例如,输入“铁路”可定位至traffic版。\">"
	    "<input name=keyword maxlength=20 size=20>\n");
	printf("<input type=submit value=开始搜索></div>\n");
	printf("</form><hr>\n");
	http_quit();
	return 0;	
}