Commit info for scoop/struct:

Modified Files:
	scoop.sql 
Log Message:
Change scoop.sql to use the new whos_online box - hulver


Index: scoop.sql
===================================================================
RCS file: /cvs/scoop/scoop/struct/scoop.sql,v
retrieving revision 1.175
retrieving revision 1.176
diff -r1.175 -r1.176
154a155,156
> INSERT INTO admin_tools VALUES ('macros',20,'Macros','Macros','edit_macros','edit_macros',0);
> 
296c298,301
< INSERT INTO blocks VALUES ('var_category_list','<tr>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n</tr>\r\n',NULL,'One line of the var category list.  Usually one table row.','admin_pages','default','en');
---
> INSERT INTO blocks VALUES ('var_category_list','<tr>\r\n <td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n</tr>\r\n',NULL,'One line of the var category list.  Usually one table row.','admin_pages','default','en');
> INSERT INTO blocks VALUES ('edit_macro','<form name=\"editmacros\" action=\"%%rootdir%%/admin/macros/\" method=\"post\">\r\n<input type=\"hidden\" name=\"cat\" value=\"%%category%%\" />\r\n\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n<tr><td bgcolor=\"%%title_bgcolor%%\">%%title_font%%Macros: %%category%%%%title_font_end%%</td></tr>\r\n<tr><td>%%norm_font%%%%update_msg%%%%norm_font_end%%</td></tr>\r\n<tr><td> </td></tr>\r\n<tr><td>%%norm_font%%Choose a category to edit:%%norm_font_end%%</td></tr>\r\n<tr><td>\r\n	<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\" width=\"100%\">%%catlist%%</table>\r\n</td></tr>\r\n<tr><td>%%norm_font%%<input type=\"submit\" name=\"save\" value=\"Save\" /> <input type=\"submit\" name=\"edit\" value=\"Get\" />%%norm_font_end%%</td></tr>\r\n<tr><td><table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">%%form_body%%</table></td></tr>\r\n<tr><td>%%norm_font%%<input type=\"submit\" name=\"sa!
 ve\" value=\"Save\" /> <input type=\"submit\" name=\"edit\" value=\"Get\" />%%norm_font_end%%</td></tr>\r\n</table>\r\n</form>\r\n',NULL,'The main edit macro page.  The special var \"form_body\" is either the single-var edit form, or the category table, depending on which view you\'re using.','admin_pages','default','en');
> INSERT INTO blocks VALUES ('edit_one_macro','<tr><td>%%norm_font%%Or edit a macro directly:%%norm_font_end%%</td></tr>\r\n<tr><td><table cellspacing=\"2\" cellpadding=\"0\" width=\"100%\">\r\n	<tr>\r\n		<td colspan=\"2\">%%norm_font%%<b>Delete:</b><input type=\"checkbox\" name=\"delete\" value=\"1\" />%%norm_font_end%%</td>\r\n	</tr>\r\n	<tr>\r\n		<td>%%norm_font%%<b>Select Macro:</b>%%norm_font_end%%</td>\r\n		<td>%%macroselect%%</td>\r\n	<tr>\r\n		<td>%%norm_font%%<b>Select Categories:</b>%%norm_font_end%%</td>\r\n		<td>%%catselect%%</td>\r\n	</tr>\r\n	<tr>\r\n		<td>%%norm_font%%<b>Name:</b>%%norm_font_end%%</td>\r\n		<td><input type=\"text\" size=\"60\" name=\"name\" value=\"%%name%%\" /></td>\r\n	</tr>\r\n	<tr>\r\n		<td>%%norm_font%%<b>New Category:</b>%%norm_font_end%%</td>\r\n		<td><input type=\"text\" size=\"60\" name=\"category\" value=\"\"><br />\r\n			%%norm_font%%<i>(seperate multiple categories with commas)</i>%%norm_font_end%%\r\n		</td>\r\n	</tr>\r\n	<tr>\r\n!
 		<td colspan=\"2\">\r\n			%%norm_font%%<b>Value:</b>%%norm_font_end%%<br />\r\n			<textarea cols=\"60\" rows=\"6\" name=\"value\" wrap=\"soft\">%%value%%</textarea>\r\n		</td>\r\n	</tr>\r\n	<tr>\r\n		<td colspan=\"2\">\r\n			%%norm_font%%<b>Description:</b>%%norm_font_end%%<br />\r\n			<textarea cols=\"60\" rows=\"3\" name=\"description\" wrap=\"soft\">%%description%%</textarea>\r\n		</td>\r\n	</tr>\r\n</table></td></tr>\r\n',NULL,'','admin_pages','default','en');INSERT INTO blocks VALUES ('var_category_list','<tr>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/vars/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n</tr>\r\n',NULL,'One line of the var category list.  Usually one table row.','admin_pages','default','en');
> INSERT INTO blocks VALUES ('macro_category_list','<tr>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/macros/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/macros/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n	<td>%%norm_font%%<a href=\"%%rootdir%%/admin/macros/%%item_url%%\">%%item%%</a>%%norm_font_end%%</td>\r\n</tr>\r\n',NULL,'One line of the macro category list.  Usually one table row.','admin_pages','default','en');
387c392
< INSERT INTO box VALUES ('whos_online','','## begin whos_online\nreturn if $S->{UID} == -1;\nif (($S->cache->{CACHE}->{WHOBOX}->{TIME}) &&\n    ($S->cache->{CACHE}->{WHOBOX}->{TIME} < (time + 120))) {\n	return {\n		content => $S->cache->{CACHE}->{WHOBOX}->{CONTENT},\n		title => $S->cache->{CACHE}->{WHOBOX}->{TITLE}\n	};\n}\n\nrequire Storable;\n\nmy $interval = 5;\nmy ($rv,$sth) = $S->db_select({\n	FROM => \'sessions\',\n	WHAT => \'a_session\',\n	WHERE => \"last_accessed > DATE_SUB(NOW(), INTERVAL $interval MINUTE)\",\n	ORDER_BY => \'last_accessed DESC\',\n	DEBUG => 0\n});\n\n\nmy %uids;\nmy $total;\nwhile (my ($s) = $sth->fetchrow_array) {\n	my $d = Storable::thaw($s);\n\n	next if $d->{UID} eq \'\';\n	$uids{ $d->{UID} } = 0 unless $uids{ $d->{UID} };\n	$total++;\n	$uids{ $d->{UID} }++;\n}\n\n$sth->finish;\nmy @sorted = sort {\n	return 1 if $a == -1; return -1 if $b == -1; return 0;\n} keys %uids;\nreturn unless @sorted;\n\n$S->user_data(\\@sorted); # pre-cache user data\n\!
 nmy $out;\nmy $hidden;\nmy $list;\nmy $max_show = 75;\nforeach (@sorted) {\n	$_ = -1 if $_ eq \'anon\';\n	if ($S->user_data($_)->{prefs}->{online_cloak}) {\n		$hidden++;\n		next;\n	}\n	next unless (($list < $max_show) || $_ == -1);\n	$list++ unless $_ == -1;\n	my $nick = $S->user_data($_)->{nickname};\n	my $linknick = $S->urlify($nick);\n	$out .= qq~%%dot%%~;\n	$out .= qq~ <A HREF=\"%%rootdir%%/user/$linknick\">~ unless $_ == -1;\n	$out .= \' \' if $_ == -1;\n	$out .= $nick;\n	$out .= \"</A>\" unless $_ == -1;\n	$out .= \" ($uids{$_})\" if $uids{$_} > 1;\n	$out .= \"<BR>\\n\";\n}\n\nif ($total > ($list + $hidden + $uids{-1})) {\n	my $more = ($total - $list - $hidden - $uids{-1});\n	$out .= qq~%%dot%% ...and $more more. :-)<br>~;\n}\n\nif ($hidden) {\n	$out .= qq~%%dot%% Cloaked Users ($hidden)<p>~;\n} else {\n	$out .= \'<p>\';\n}\n\n$out .= qq~<small>\n$interval minute interval.<br>You may cloak yourself from appearing here in your <A HREF=\"%%rootdir%%/interface/prefs\">Di!
 splay Preferences</A></small>.~;\n\nmy $title = \"Who\'s Onlin!
 e? ($tot
al)\";\n\n$S->cache->{CACHE}->{WHOBOX}->{CONTENT} = $out;\n$S->cache->{CACHE}->{WHOBOX}->{TITLE}   = $title;\n$S->cache->{CACHE}->{WHOBOX}->{TIME}    = time;\n\nreturn {content => $out, title => $title};\n',NULL,'',1);
---
> INSERT INTO box VALUES ('whos_online','Who\'s online','## New Who\'s Online Box\r\n## Quite a bit of stuff borrowed from the old one.\r\n\r\n# return if anonymous for now\r\n#return if $S->{UID} == -1;\r\n\r\n# The time stuff can be changed to taste\r\n\r\n# The query\r\n\r\nmy ($rv,$sth) = $S->db_select({\r\n   FROM => \'whos_online\',\r\n   WHAT => \'ip, uid\',\r\n   WHERE => \'last_visit > DATE_SUB(NOW(), INTERVAL 30 MINUTE)\',\r\n   ORDER_BY => \'uid\'\r\n});\r\n\r\nmy %uids;\r\nmy $total;\r\nmy $anontotal;\r\n\r\nwhile (my $s = $sth->fetchrow_hashref()) {\r\n      if ($s->{\'uid\'} == -1) {\r\n        $anontotal++;\r\n        next;\r\n        }\r\n   $total++;\r\n   $uids{ $s->{\'uid\'} }++;\r\n}\r\n\r\n$sth->finish;\r\n\r\nmy @sorted = sort { return 1 if $a == -1; return -1 if $b == -1;\r\nreturn 0; } keys %uids;\r\n\r\nmy $noneonline = \"No one currently online (except you just now, of course).<BR>\";\r\nreturn {content => $noneonline, title => \"Who\'s Online?\"} u!
 nless @sorted;\r\n\r\nmy $out;\r\nmy $hidden;\r\nforeach (@sorted) {\r\n   #$_ = -1 if $_ eq \'anon\';\r\n   if ($S->user_data($_)->{prefs}->{online_cloak}) {\r\n      $hidden++;\r\n      next;\r\n   }\r\n   my $nick = $S->user_data($_)->{nickname};\r\n   $out .= qq~%%dot%%~;\r\n   $out .= qq~ <A HREF=\"%%rootdir%%/user/uid:$_\">~ unless $_ == -1;\r\n   $out .= \' \' if $_ == -1;\r\n   $out .= $nick;\r\n   $out .= \"</A>\" unless $_ == -1;\r\n   $out .= \" ($uids{$_})\" if $uids{$_} > 1;\r\n   $out .= \"<BR>\\n\";\r\n}\r\nif($anontotal){\r\n   my $anon_user_nick = $S->{UI}->{VARS}->{anon_user_nick};\r\n   $out .= \"%%dot%% $anon_user_nick: $anontotal <BR>\";\r\n   }\r\nif ($hidden) {\r\n   $out .= qq~%%dot%% Cloaked Users ($hidden)<p>~;\r\n} else {\r\n   $out .= \'<p>\';\r\n}\r\n$total = $total + $anontotal;\r\n$out .= qq~<small>Note: You may cloak yourself from appearing here in your <A HREF=\"%%rootdir%%/interface/prefs\">Display Preferences</A></small>.~;\r\nreturn {cont!
 ent => $out, title => \"Who\'s Online? ($total)\"};\r\n','','b!
 ox',1);
645c650
< INSERT INTO ops VALUES ('admin','default_template','admin_main',0,1,'','','element.1=blocks:/tool/mode/theme/item/,\nelement.1=story:/tool/sid{5}/,\nelement.1=editpoll:/tool/editqid/option/,\nelement.1=vars:/tool/cat/,\nelement.1=topics:/tool/tid/,\nelement.1=sections:/tool/section/,\nelement.1=special:/tool/id/,\nelement.1=boxes:/tool/id,\nelement.1=optemplates:/tool/opcode,\nelement.1=groups:/tool/perm_group_id/,\nelement.1=rdf:/tool/action/,\nelement.1=cron:/tool/action/which/,\nelement.1=ads:/tool/type/which,\nelement.1=ops:/tool/opcode/,\nelement.1=log:/tool/log_type/page/log_id/,\n/tool/','Entry point to the various admin tools.');
---
> INSERT INTO ops VALUES ('admin','default_template','admin_main',0,1,'','','element.1=blocks:/tool/mode/theme/item/,\nelement.1=story:/tool/sid{5}/,\nelement.1=editpoll:/tool/editqid/option/,\nelement.1=vars:/tool/cat/,\nelement.1=topics:/tool/tid/,\nelement.1=sections:/tool/section/,\nelement.1=special:/tool/id/,\nelement.1=boxes:/tool/id,\nelement.1=optemplates:/tool/opcode,\nelement.1=groups:/tool/perm_group_id/,\nelement.1=rdf:/tool/action/,\nelement.1=cron:/tool/action/which/,\nelement.1=ads:/tool/type/which,\nelement.1=ops:/tool/opcode/,\nelement.1=macros:/tool/,\nelement.1=storylist:/tool/,\nelement.1=archivelist:/tool/,\nelement.1=hooks:/tool/,\nelement.1=listpolls:/tool/,\nelement.1=log:/tool/log_type/page/log_id/,\n/tool/','Entry point to the various admin tools.');
788a794,803
> INSERT INTO patches VALUES ('1_0-dev',11,'ExcludeSection','sql');
> INSERT INTO patches VALUES ('1_0-dev',12,'TopicImagesDefault','sql');
> INSERT INTO patches VALUES ('1_0-dev',13,'FastArchive','sql');
> INSERT INTO patches VALUES ('1_0-dev',14,'ManyChanges','sql');
> INSERT INTO patches VALUES ('1_0-dev',14,NULL,'post');
> INSERT INTO patches VALUES ('1_0-dev',15,'RatingIP','sql');
> INSERT INTO patches VALUES ('1_0-dev',16,'SafeMode','sql');
> INSERT INTO patches VALUES ('1_0-dev',17,'OpTemplates','sql');
> INSERT INTO patches VALUES ('1_0-dev',18,'Macros','sql');
> INSERT INTO patches VALUES ('1_0-dev',18,NULL,'post');
809,810c824,825
< INSERT INTO perm_groups VALUES ('Admins','ad_admin,attach_poll,comment_delete,comment_post,comment_rate,edit_blocks,edit_polls,edit_sections,edit_special,edit_user,edit_vars,list_polls,moderate,poll_post_comments,poll_read_comments,poll_vote,rdf_admin,show_perms,story_admin,story_list,story_post,submit_ad,view_polls,use_spellcheck,view_comment_ip,editorial_comments,view_log',0,'Site administrators and junk');
< INSERT INTO perm_groups VALUES ('Superuser','ad_admin,attach_poll,comment_delete,comment_post,comment_rate,cron_admin,edit_blocks,edit_boxes,edit_groups,edit_perms,edit_polls,edit_sections,edit_special,edit_topics,edit_user,edit_vars,list_polls,moderate,poll_post_comments,poll_read_comments,poll_vote,rdf_admin,show_perms,story_admin,story_list,story_post,submit_ad,submit_rdf,super_mojo,view_polls,use_spellcheck,view_comment_ip,edit_ops,edit_hooks,editorial_comments,view_log,subscription_admin',0,'All permissions');
---
> INSERT INTO perm_groups VALUES ('Admins','ad_admin,attach_poll,comment_delete,comment_post,comment_rate,edit_blocks,edit_polls,edit_sections,edit_special,edit_user,edit_vars,list_polls,moderate,poll_post_comments,poll_read_comments,poll_vote,rdf_admin,show_perms,story_admin,story_list,story_post,submit_ad,view_polls,use_spellcheck,view_comment_ip,editorial_comments,view_log,edit_macros',0,'Site administrators and junk');
> INSERT INTO perm_groups VALUES ('Superuser','ad_admin,attach_poll,comment_delete,comment_post,comment_rate,cron_admin,edit_blocks,edit_boxes,edit_groups,edit_perms,edit_polls,edit_sections,edit_special,edit_topics,edit_user,edit_vars,list_polls,moderate,poll_post_comments,poll_read_comments,poll_vote,rdf_admin,show_perms,story_admin,story_list,story_post,submit_ad,submit_rdf,super_mojo,view_polls,use_spellcheck,view_comment_ip,edit_ops,edit_hooks,editorial_comments,view_log,subscription_admin,edit_macros',0,'All permissions');
1316a1332,1334
> INSERT INTO vars VALUES ('use_macros','0','Set to 1 to enable the use of macros in stories and comments.','bool','Macros');
> INSERT INTO vars VALUES ('macro_render_on_save','0','Set to 1 to cause macros to render when saved; if 0, macros remain as raw macro text in stories and comments until archived','bool','Macros');
> INSERT INTO vars VALUES ('macro_render_verbose','0','Set to 1 to render macros verbosely, with HTML comments as delimiters and original macro text preserved in comment (for post-processing)','bool','Macros');
1433c1451
< INSERT INTO vars VALUES ('perms','edit_user,\r\nedit_special,\r\nedit_boxes,\r\nedit_vars,\r\nlist_polls,\r\nedit_topics,\r\nedit_polls,\r\nedit_sections,\r\nstory_admin,\r\nstory_post,\r\nstory_list,\r\ncomment_post,\r\ncomment_delete,\r\ncomment_rate,\r\nmoderate,\r\nattach_poll,\r\npoll_vote,\r\npoll_post_comments,\r\npoll_read_comments,\r\nview_polls,\r\nedit_groups,\r\nsuper_mojo,\r\nrdf_admin,\r\nsubmit_rdf,\r\ncron_admin,\r\nad_admin,\r\nedit_blocks,\r\nsubmit_ad,\r\nhotlist,\nuse_spellcheck,\nview_comment_ip,\nshow_hidden_sections,\nedit_own_story,\nedit_ops,\nedit_hooks,\neditorial_comments,\nupload_content,\nupload_admin,\nupload_user,\nview_log,\nsubscription_admin,\nallow_subscription,\nsuballow_group_change','<P>This variable contains a list of all permissions used by Scoop, in a comma-separated list, one permission per line.<BR>\nIf any perm is added or removed from this list, the change will be reflected in the list of perms in the Groups Admin Tool.  Added !
 perms default to off for all groups.  Removed perms are only removed from the admin tool; any removed perms that had been granted to groups before removal are still granted to those groups afterward.</P>','tarea','Security');
---
> INSERT INTO vars VALUES ('perms','edit_user,\r\nedit_special,\r\nedit_boxes,\r\nedit_vars,\r\nlist_polls,\r\nedit_topics,\r\nedit_polls,\r\nedit_sections,\r\nstory_admin,\r\nstory_post,\r\nstory_list,\r\ncomment_post,\r\ncomment_delete,\r\ncomment_rate,\r\nmoderate,\r\nattach_poll,\r\npoll_vote,\r\npoll_post_comments,\r\npoll_read_comments,\r\nview_polls,\r\nedit_groups,\r\nsuper_mojo,\r\nrdf_admin,\r\nsubmit_rdf,\r\ncron_admin,\r\nad_admin,\r\nedit_blocks,\r\nsubmit_ad,\r\nhotlist,\nuse_spellcheck,\nview_comment_ip,\nshow_hidden_sections,\nedit_own_story,\nedit_ops,\nedit_hooks,\neditorial_comments,\nupload_content,\nupload_admin,\nupload_user,\nview_log,\nsubscription_admin,\nallow_subscription,\nsuballow_group_change,\nedit_macros','<P>This variable contains a list of all permissions used by Scoop, in a comma-separated list, one permission per line.<BR>\nIf any perm is added or removed from this list, the change will be reflected in the list of perms in the Groups Admin!
  Tool.  Added perms default to off for all groups.  Removed perms are only removed from the admin tool; any removed perms that had been granted to groups before removal are still granted to those groups afterward.</P>','tarea','Security');
1491a1510,1528
> 
> --
> -- Table structure for table 'macros'
> --
> 
> CREATE TABLE macros (
>   name varchar(32) NOT NULL default '',
>   value text,
>   description text,
>   category varchar(128) NOT NULL default '',
>   PRIMARY KEY  (name)
> );
> 
> --
> -- Dumping data for table 'macros'
> --
> 
> 
> INSERT INTO macros VALUES ('macro_test','<span style="color: red">The macro engine is active!</span>','A test macro - if you can see it, it\'s working.','General');