function info_line(name, sel, host, port, dst){ printf("[i|%s|%s|%s|%s]\r\n", name, sel, host, port) > dst; } function show_link(l, i, dst){ if(l[i,"Category"] == "") print "Uncategorised link:", l[i,"Selector"] > /dev/stderr; else{ printf("[1|%s|%s|%s|%s]\r\n", l[i,"LinkName"], l[i,"Selector"], l[i,"Host"], l[i,"Port"] ) > dst; info_line(l[i,"Description"],"Err", HOST, PORT, dst); info_line("", "Err", HOST, PORT, dst); } } function show_category_link(category, i, dst){ printf("[1|%s|%s|%s|%s]\r\n", category[i,"LinkName"], category[i,"Selector"], category[i,"Host"], category[i,"Port"]) > dst; } function get_parents(a){ delete pars; split(a, pars, /[:blank:]*,[:blank:]*/); for (k in pars){ gsub(/ +/, "", pars[k]); #printf("%d: %s\n", k, pars[k]); } } function category_in_parents(category, i){ get_parents(category[i,"Parent"]); for (p in pars){ #printf("pars[%d]: %s\n", p, pars[p]); if (pars[p]!="none"){### this is the root page f = pars[p]; ##print "cfiles[pars[p]]:", cfiles[f]; show_category_link(category, i, cfiles[f]); } } } function category_header(category, i, dst){ info_line(category[i,"Title"], "Err", HOST, PORT, dst); info_line("", "Err", HOST, PORT, dst); info_line("Categories:", "Err", HOST, PORT, dst); } function get_link_categories(a){ delete cats; split(a, cats, /[:blank:]*,[:blank:]*/); for (k in cats){ gsub(/ +/, "", cats[k]); } } ######################################## function render_init(){ } function render_categories(category, cnum, link, lnum){ for (i=1; i<=cnum; i++){ cname=category[i,"Name"]; #print "'" cname "'"; cfiles[cname]=BASEDIR category[i,"Selector"]; #print cname ":" cfiles[cname]; cmd=sprintf("rm -f %s", cfiles[cname]); system(cmd); category_header(category, i, cfiles[cname]); category_in_parents(category, i); } } function render_post_categories(category, cnum){ for(i=1;i<=cnum; i++){ info_line("_______________", "Err", HOST, PORT, cfiles[category[i,"Name"]]); info_line("Links:", "Err", HOST, PORT, cfiles[category[i,"Name"]]); } } function render_links(category, cnum, link, lnum){ for (i=1;i<=lnum;i++){ get_link_categories(link[i,"Category"]); for (c in cats){ if (cfiles[cats[c]]!=""){ show_link(link, i, cfiles[cats[c]]); } } } } function render_finalise(category, cnum, link, lnum){ for(i=1;i<=cnum; i++){ info_line("_______________", "Err", HOST, PORT, cfiles[category[i,"Name"]]); printf("[1|%s|%s|%s|%s]\r\n", "Back to the lawn", ROOTSEL, HOST, PORT ) > cfiles[category[i,"Name"]]; info_line("Links:", "Err", HOST, PORT, cfiles[category[i,"Name"]]); } }