From 0074a46912cb08448d359ce63764f07062a66ed5 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Thu, 22 Feb 2007 22:58:40 +0000 Subject: [PATCH] More changes... the first item should now be the internal message base code Threaded view uses JavaScript and visibility to make dynamic collapsing threads. http://nix.synchro.net/blogs/DOVE-GEN/ for an example "blog" highlighting the thread linking issues on my system... For a good thread view, see: http://nix.synchro.net/blogs/DOVE-DEB/Angus%20McLeod/2007/01/10/6872/Quiet___ --- web/root/blogs/blog_config.js | 24 +++++++++++------------- web/root/blogs/blog_item.xjs | 29 ++++++++++++++++++++++++----- web/root/blogs/index.xjs | 17 ++++++++++++----- web/root/blogs/minus.gif | Bin 0 -> 85 bytes web/root/blogs/plus.gif | Bin 0 -> 88 bytes 5 files changed, 47 insertions(+), 23 deletions(-) create mode 100644 web/root/blogs/minus.gif create mode 100644 web/root/blogs/plus.gif diff --git a/web/root/blogs/blog_config.js b/web/root/blogs/blog_config.js index 87690a574c..93c870ec81 100644 --- a/web/root/blogs/blog_config.js +++ b/web/root/blogs/blog_config.js @@ -1,29 +1,27 @@ // User editable settings... -// Internal code of the message base -var msg_code="GENERAL"; - // Number of posts to show per page. var max_posts=16; // Minimum number of characters in an exerpt var min_chars=400; +// Number of pixels per level to indent comments +var indent_pixels=20; + // // Don't change stuff down here. // // User name of the blogger var parameters=http_request.path_info.substr(1).split("/"); -var poster=parameters[0]; -var year=parseInt(parameters[1],10); -var month=parseInt(parameters[2],10); -var day=parseInt(parameters[3],10); -var msgid=parseInt(parameters[4],10); -var subject=parameters[5]; -if(poster.indexOf("/")>=0) { - poster=poster.substr(0,poster.indexOf("/")); -} +var msg_code=parameters[0]; +var poster=parameters[1]; +var year=parseInt(parameters[2],10); +var month=parseInt(parameters[3],10); +var day=parseInt(parameters[4],10); +var msgid=parseInt(parameters[5],10); +var subject=parameters[6]; //var pnum=system.matchuser(poster); //if(pnum==0) { @@ -41,7 +39,7 @@ if(!isNaN(msgid)) { if(subject==undefined || subject=="") { var hdr=msgbase.get_msg_header(parseInt(msgid)); http_reply.status="301 Moved Permanently"; - http_reply.header["Location"]="http://"+http_request.host+http_request.virtual_path+poster+"/"+format("%04d",year)+"/"+format("%02d",month)+"/"+format("%02d",day)+"/"+msgid+"/"+clean_subject(hdr.subject); + http_reply.header["Location"]="http://"+http_request.host+http_request.virtual_path+msg_code+"/"+hdr.from+"/"+format("%04d",year)+"/"+format("%02d",month)+"/"+format("%02d",day)+"/"+msgid+"/"+clean_subject(hdr.subject); exit(0); } } diff --git a/web/root/blogs/blog_item.xjs b/web/root/blogs/blog_item.xjs index d15cca6c2c..5ac6cb91f6 100644 --- a/web/root/blogs/blog_item.xjs +++ b/web/root/blogs/blog_item.xjs @@ -1,10 +1,28 @@ <?xjs -load("/synchronet/src/web/root/blogs/blog_config.js"); +load(cwd+"/blog_config.js"); ?> <html> <head> <title>The Blogifier!</title> +<script> +<!-- +function toggle_display(itemID, buttonID) +{ + var item = document.getElementById(itemID); + var button = document.getElementById(buttonID); + + if (item.style.display != "none") { + item.style.display = "none"; + button.src="<?xjs write(http_request.virtual_path)?>plus.gif"; + } + else { + item.style.display = "block"; + button.src="<?xjs write(http_request.virtual_path)?>minus.gif"; + } +} +//--> +</script> </head> <body> @@ -96,12 +114,13 @@ while(1) { body=body.split(" ").join("<br>"); ?> -<div style="padding-left: <?xjs write(thread_depth*10) ?>px"> -<b><?xjs write(hdr.subject); ?></b> (<?xjs write(date); ?>)<br> -By: <?xjs write(hdr.from); ?><br> -<p><?xjs write(body); ?></p> +<div style="padding-left: <?xjs write(thread_depth*indent_pixels) ?>px"> +<a onClick="toggle_display('msg-<?xjs write(msgid)?>','button-<?xjs write(msgid) ?>');"><img src="<?xjs write(http_request.virtual_path) ?>plus.gif" id="button-<?xjs write(msgid); ?>"></a> <b><?xjs write(hdr.subject); ?></b> (<?xjs write(date); ?>)<br> +By: <i><?xjs write(hdr.from); ?></i><br> +<div id="msg-<?xjs write(msgid) ?>" style="display: none"><?xjs write(body); ?> <hr> </div> +</div> <?xjs } diff --git a/web/root/blogs/index.xjs b/web/root/blogs/index.xjs index a8dd93f3e8..5c02f59b67 100644 --- a/web/root/blogs/index.xjs +++ b/web/root/blogs/index.xjs @@ -1,5 +1,6 @@ <?xjs -load("/synchronet/src/web/root/blogs/blog_config.js"); +load("sbbsdefs.js"); +load(cwd+"/blog_config.js"); if(!isNaN(msgid)) { xjs_load("blog_item.xjs"); exit(0); @@ -13,14 +14,20 @@ if(!isNaN(msgid)) { <body> <p> - Welcome to the <?xjs write(msgbase.cfg.name); ?> Blogifier for <?xjs write(poster); ?> + Welcome to the <?xjs write(msgbase.cfg.name); ?> Blogifier <?xjs if(poster != '') write("for "+poster); ?> </p> <?xjs for(i=msgbase.last_msg; i>=msgbase.first_msg; i--) { var hdr=msgbase.get_msg_header(i); - if(hdr.from.toUpperCase() != poster.toUpperCase()) + if(hdr==null) continue; + if(hdr.attr & (MSG_PRIVATE|MSG_DELETE)) + continue; + if(poster!=undefined && poster!='') { + if(hdr.from.toUpperCase() != poster.toUpperCase()) + continue; + } // if(hdr.from_ext != pnum) // continue; if(hdr.thread_back) @@ -55,11 +62,11 @@ for(i=msgbase.last_msg; i>=msgbase.first_msg; i--) { exerpt=exerpt.split(" ").join("<br>"); ?> -<b><?xjs write(hdr.subject); ?></b> (<?xjs write(date); ?>)<br> +<b><?xjs write(hdr.subject); ?></b> (<?xjs write(date); ?>) - <i><?xjs write(hdr.from) ?></i><br> <p><?xjs write(exerpt); if(read_more) write("<b>...</b>"); ?></p> <p><a href="<?xjs -write("http://"+http_request.host+http_request.virtual_path+poster+"/"+format("%04d",this_year)+"/"+format("%02d",this_month)+"/"+format("%02d",this_day)+"/"+i+"/"+clean_subject(hdr.subject)); +write("http://"+http_request.host+http_request.virtual_path+msg_code+"/"+hdr.from+"/"+format("%04d",this_year)+"/"+format("%02d",this_month)+"/"+format("%02d",this_day)+"/"+i+"/"+clean_subject(hdr.subject)); ?>">Comments...</a></p> <?xjs diff --git a/web/root/blogs/minus.gif b/web/root/blogs/minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b9d3341576ffbec1271f054797d05f07151d8e0 GIT binary patch literal 85 zcmZ?wbhEHb6lM@$n8?8J|NsAnh6V;OL-8jIs|W)#gAM}&0|Q8&fk|yn|H{*E`F&?h l*~PGl?P1<s(;LSt4^>W6T50rHd{@q%kg}HNRY434)&R#uA8h~t literal 0 HcmV?d00001 diff --git a/web/root/blogs/plus.gif b/web/root/blogs/plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5af2ba220c31c7fb42eaad06d22c50d54b154e4 GIT binary patch literal 88 zcmZ?wbhEHb6lM@$n8?8J|NsAnh6V;OL-8jIs|W)#gAM}&0|Q8&fk|^t|H{*E`F&?h o*~PGl?P1o!Qr>BeGfyNO+Eo-Mxv$}6U$jkF=#lSrK@1Gm03CiHc>n+a literal 0 HcmV?d00001 -- GitLab