各cgi程序由于都需要进行网页布局,故将功能相近的部分封装为函数,打包进头文件。
html.h
#include<stdio.h>
#define ERR_SHM 1
#define ERR_MSG 2
#define ERR_REG 3
void html_head()
{
printf("Content-type:text/html\r\n\r\n");
printf("<html>");
printf("<head><title>SL1200智能灯光控制系统</title>");
printf("<meta charset=\"utf-8\" />");
//printf("<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">");
printf("<style> #wrapper{width: 1000px;margin-right: auto;margin-left: auto;}");
printf(".navbar_header{float: left;}");
printf(".sidebar-collapse{width: 200px;height:600px;float: left;background: rgb(228,238,249);}");
printf("a:hover{background: yellow;}");
printf("#page-wrapper li {float: left;display: block;width:90px;height:50px;}");
printf("#page-inner{float: left;width:800px;}</style>");
}
void html_refresh(char *second, char * url)
{
printf("<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"%s;URL=%s\">",second,url);
}
void html_title()
{
printf("</head><body><div id=\"wrapper\">");
printf("<nav class=\"navbar navbar-default top-navbar\" role=\"navigation\">");
printf("<div class=\"navbar-header\">");
printf("<button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".sidebar-collapse\"> <span class=\"sr-only\">Toggle navigation</span><span class=\"icon-bar\"></span></button>");
printf("<a href=\"#\" class=\"navbar-brand\"><strong><i class=\"icon fa fa-plane\"></i>智能灯光控制系统</strong></a>");
printf("<div id=\"sideNAV\"><i class=\"fa fa-bars icon\"></i></div></div></nav>");
}
void html_nav()
{
printf("<!-- NAV TOP -->");
printf("<nav class=\"navbar-default navbar-side\" role=\"navigation\">");
printf("<div class=\"sidebar-collapse\">");
printf("<ul class=\"nav\">");
printf("<li><a href=\"sys_show.cgi\"><i class=\"fa fa-dashboard\"></i>系统状态</a></li>");
printf("<li><a href=\"#\"><i class=\"fa fa-edit\"></i>设备设置<span class=\"fa arrow\"></span></a>");
printf("<ul class=\"nav nav-second-level\">");
printf("<li><a href=\"dev_add.cgi\">设备添加</a></li>");
printf("<li><a href=\"dev_con.cgi\">设备管理</a></li>");
printf("</ul></li>");
printf("<li><a href=\"#\"><i class=\"fa fa-sitemap\"></i>区域设置<span class=\"fa arrow\"></span></a>");
printf("<ul class=\"nav nav-second-level\">");
printf("<li><a href=\"area_add.cgi\">区域创建</a></li>");
printf("<li><a href=\"area_con.cgi\">区域管理</a></li>");
printf("</ul></li>");
printf("<li><a href=\"#\"><i class=\"fa fa-table\"></i>场景设置<span class=\"fa arrow\"></span></a>");
printf("<ul class=\"nav nav-second-level\">");
printf("<li><a href=\"#\">场景添加</a></li>");
printf("<li><a href=\"#\">场景管理</a></li>");
printf("</ul></li>");
printf("<li><a href=\"./sys_info.cgi\"><i class=\"fa fa-fw fa-file\"></i>系统信息</a>");
printf("</li></ul></div></nav><!-- NAV SIDE -->");
}
void html_table_title(char * title,char *title1,char * title2)
{
printf("<div id=\"page-wrapper\">");
printf("<div class=\"header\">");
printf("<h1 class=\"page-header\">%s<small></small></h1>",title);
printf("<ol class=\"breadcrumb\">");
printf("<li><a href=\"index.html\">主页</a></li>");
printf("<li><a href=\"#\">%s</a></li>",title1);
printf("<li class=\"active\">%s</li>",title2);
printf("</ol></div>");
}
void html_table_head(int len,char argv[][16],char *title)
{
printf("<div id=\"page-inner\">");
//printf("<form method=\"get\" action=\"/cgi-bin/dev_add_post.cgi\">");
printf("<div class=\"row\">");
printf("<div class=\"col-md-12\">");
printf("<!-- Advanced Tables -->");
printf("<div class=\"panel panel-default\">");
printf("<div class=\"panel-heading\">%s</div>",title);
printf("<div class=\"panel-body\">");
printf("<div class=\"table-responsive\">");
printf("<table class=\"table table-striped table-bordered table hover\" id=\"dataTables-example\">");
printf("<thead>");
printf("<tr>");
printf("<th>%s</th>",argv[0]);
printf("<th>%s</th>",argv[1]);
printf("<th>%s</th>",argv[2]);
printf("<th>%s</th>",argv[3]);
printf("<th>%s</th>",argv[4]);
printf("</tr>");
printf("</thead>");
}
void html_table_end()
{
printf("</tbody></table></div></div></div><!-- End Advanced Tables --></div></div>");
printf("</from>");
}
void html_end()
{
printf("<footer>");
printf("<p>Copyright 2017 cumtzd<a target=\"_blank\" href=\"http://127.0.0.1\">学习91创客学堂</a></p>");
printf("</footer>");
printf("</footer>");
printf("</div>");
printf("<!-- PAGE INNER -->");
printf("</div>");
printf("<!-- PAGE WRAPPER -->");
printf("</div>");
printf("<script src=\"../empty files/jquery-1.10.2.js\"></script>");
printf("<script src=\"../empty files/bootstrap.min.js\"></script>");
printf("<script src=\"../empty files/jquery.metisMenu.js\"></script>");
printf("</body>");
printf("</html>");
}
void html_return_info(char* info)
{
printf("<div class=\"row\"><div class=\"col-md-12\">");
printf("<div class=\"panel panel-default\"><div class=\"panel-heading\">");
printf("设置结果</div><div class=\"panel-body\"><div class=\"alert alert-success\">");
printf("<strong>%s</strong>",info);
printf("</div></div></div></div></div>");
}
void html_return_show(int ret)
{
if(ret==0){
html_return_info("设置完成,返回界面");
}else{
switch(ret){
case ERR_SHM:
html_return_info("共享内存错误");
break;
case ERR_MSG:
html_return_info("获取消息错误");
break;
case ERR_REG:
html_return_info("区域记录已满");
break;
default:
html_return_info("设置失败,未知错误.");
break;
}
}
}