templatized the admin bar macro

This commit is contained in:
JT Smith 2003-12-08 02:28:16 +00:00
parent 50b3aafb7c
commit c0e10f6578
4 changed files with 45 additions and 41 deletions

View file

@ -15,5 +15,6 @@
- Re-enabled the Date macro by default.
- Templatized the Login Box macro.
- Added the new WebGUI 6 design.
- Templatized the Admin Bar macro.

File diff suppressed because one or more lines are too long

View file

@ -172,4 +172,6 @@ delete from international where languageId=1 and namespace='USS' and internation
insert into international (internationalId,languageId,namespace,message,lastUpdated,context) values (71,1,'USS','User Submission Systems (USS) are a great way to add a sense of community to any site as well as get free content from your users. The User Submission System name is misleading to some people, because they immediately think of users as visitors. However, users are also staff, or business partners, or even yourself. With the USS you can select who can add new content, and even who can moderate that content.\r\n<br><br>\r\nUser Submission systems are so versatile that they allow you to create all kinds of applications, just by editing a few templates. Example applications are Photo Galleries, FAQs, Link Lists, Guest Books, Classifieds, and more.\r\n\r\n\r\n<p>\r\n<b>Submission Template</b><br/>\r\nChoose a layout for the individual submissions.\r\n<p/>\r\n\r\n<b>Submission Form Template</b><br>\r\nChoose a layout of the form users see when submitting content.\r\n<p>\r\n\r\n\r\n<b>Submissions Per Page</b><br>\r\nHow many submissions should be listed per page in the submissions index?\r\n<br><br>\r\n\r\n\r\n<b>Filter Content</b><br>\r\nSelect the level of content filtering you wish to perform on all submitted content.\r\n<p>\r\n\r\n<b>Sort By</b><br>\r\nThe field to sort the submission list by.\r\n<p>\r\n\r\n<b>Sort Order</b><br>\r\nThe direction to sort the submission list by.\r\n<p>\r\n\r\n\r\n\r\n\r\n<b>Who can approve?</b><br>\r\nWhat group is allowed to approve and deny content?\r\n<br><br>\r\n\r\n<b>Who can contribute?</b><br>\r\nWhat group is allowed to contribute content?\r\n<br><br>\r\n\r\n\r\n<b>Default Status</b><br>\r\nShould submissions be set to <i>Approved</i>, <i>Pending</i>, or <i>Denied</i> by default?\r\n<br><br>\r\n<i>Note:</i> If you set the default status to Pending, then be prepared to monitor your message log for new submissions.\r\n<p>\r\n\r\n<b>Karma Per Submission</b><br>\r\nHow much karma should be given to a user when they contribute to this user submission system?\r\n<p>\r\n\r\n\r\n<b>Allow discussion?</b><br>\r\nChecking this box will enable responses to your article much like Articles on Slashdot.org.\r\n<p>\r\n\r\n\r\n', 1070199700,NULL);
INSERT INTO template VALUES (1,'Default Login Box','<div class=\"loginBox\">\n<tmpl_if user.isVisitor>\n <tmpl_var form.header>\n <span><tmpl_var username.label><br></span>\n <tmpl_var username.form>\n <span><br><tmpl_var password.label><br></span>\n <tmpl_var password.form>\n <span><br></span>\n <tmpl_var form.login>\n <tmpl_var form.footer>\n <tmpl_if session.setting.anonymousRegistration>\n <p><a href=\"account.create.url\"><tmpl_var account.create.label></a></p>\n </tmpl_if> \n<tmpl_else>\n <tmpl_unless customText>\n <tmpl_var hello.label> <a href=\"<tmpl_var account.display.url>\"><tmpl_var session.user.username></a>.\n <tmpl_var logout.label>\n <tmpl_else>\n <tmpl_var customText>\n </tmpl_unless>\n</tmpl_if>\n</div>\n','Macro/L_loginBox');
INSERT INTO template VALUES (2,'Horizontal Login Box','<div class=\"loginBox\">\n<tmpl_if user.isVisitor>\n <tmpl_var form.header>\n <table border=\"0\" class=\"loginBox\" cellpadding=\"1\" cellspacing=\"0\">\n <tr>\n <td><tmpl_var username.form></td>\n <td><tmpl_var password.form></td>\n <td><tmpl_var form.login></td>\n </tr>\n <tr>\n <td><tmpl_var username.label></td>\n <td><tmpl_var password.label></td>\n <td></td>\n </tr>\n </table> \n <tmpl_var form.footer>\n <tmpl_if session.setting.anonymousRegistration>\n <a href=\"account.create.url\"><tmpl_var account.create.label></a>\n </tmpl_if> \n<tmpl_else>\n <tmpl_unless customText>\n <tmpl_var hello.label> <a href=\"<tmpl_var account.display.url>\"><tmpl_var session.user.username></a>.\n <tmpl_var logout.label><br />\n <tmpl_else>\n <tmpl_var customText>\n </tmpl_unless>\n</tmpl_if>\n</div>\n','Macro/L_loginBox');
INSERT INTO template VALUES (2,'DHTML Admin Bar','<script language=\"JavaScript1.2\" src=\"^Extras;coolmenus4.js\">\n/*****************************************************************************\nCopyright (c) 2001 Thomas Brattli (webmaster@dhtmlcentral.com)\n \nDHTML coolMenus - Get it at coolmenus.dhtmlcentral.com\nVersion 4.0_beta\nThis script can be used freely as long as all copyright messages are\nintact.\n \nExtra info - Coolmenus reference/help - Extra links to help files ****\nCSS help: http://192.168.1.31/projects/coolmenus/reference.asp?m=37\nGeneral: http://coolmenus.dhtmlcentral.com/reference.asp?m=35\nMenu properties: http://coolmenus.dhtmlcentral.com/properties.asp?m=47\nLevel properties: http://coolmenus.dhtmlcentral.com/properties.asp?m=48\nBackground bar properties: http://coolmenus.dhtmlcentral.com/properties.asp?m=49\nItem properties: http://coolmenus.dhtmlcentral.com/properties.asp?m=50\n******************************************************************************/\n</script>\n<style type=\"text/css\">\n \n.adminBarTop,.adminBarTopOver,.adminBarSub,.adminBarSubOver{position:absolute; overflow:hidden; width:130; height:25; cursor:pointer; cursor:hand}\n.adminBarTop,.adminBarTopOver{padding:4px; font-size:12px; font-weight:bold}\n.adminBarTop{color:white; }\n.adminBarTopOver,.adminBarSubOver{color:#EC4300;}\n.adminBarSub,.adminBarSubOver{padding:2px; font-size:11px; font-weight:bold}\n.adminBarSub{color: white; background-color: #666666; layer-background-color: #666666;}\n.adminBarSubOver,.adminBarSubOver,.adminBarBorder,.adminBarBkg{layer-background-color: black; background-color: black;}\n.adminBarBorder{position:absolute; visibility:hidden; z-index:300}\n.adminBarBkg{position:absolute; width:10; height:10; visibility:hidden; }\n</style>\n\n<script language=\"JavaScript1.2\">\nadminBar=new makeCM(\"adminBar\"); \n\n//menu properties\nadminBar.resizeCheck=1; \nadminBar.rows=1; \nadminBar.onlineRoot=\"\"; \nadminBar.pxBetween =0;\nadminBar.fillImg=\"^Extras/spacer.gif\"; \nadminBar.fromTop=0; \nadminBar.fromLeft=50; \nadminBar.wait=300; \nadminBar.zIndex=400;\nadminBar.menuPlacement=\"left\";\n\n//background bar properties\nadminBar.useBar=1; \nadminBar.barWidth=\"100%\"; \nadminBar.barHeight=\"menu\"; \nadminBar.barX=0;\nadminBar.barY=\"menu\"; \nadminBar.barClass=\"adminBarBkg\";\nadminBar.barBorderX=0; \nadminBar.barBorderY=0;\n\nadminBar.level[0]=new cm_makeLevel(150,20,\"adminBarTop\",\"adminBarTopOver\",1,1,\"adminBarBorder\",0,\"bottom\",0,0,0,0,0);\nadminBar.level[1]=new cm_makeLevel(150,18,\"adminBarSub\",\"adminBarSubOver\",1,1,\"adminBarBorder\",0,\"right\",0,0,\"menu_arrow.gif\",10,10);\n\n\nadminBar.makeMenu(\'addcontent\',\'\',\'<tmpl_var addcontent.label>\',\'\');\n<tmpl_loop addcontent_loop> \n adminBar.makeMenu(\'addcontent<tmpl_var addcontent.count>\',\'addcontent\',\'<tmpl_var addcontent.label>\',\'<tmpl_var addcontent.url>\');\n</tmpl_loop>\n\nadminBar.makeMenu(\'clipboard\',\'\',\'<tmpl_var clipboard.label>\',\'\');\n<tmpl_loop clipboard_loop> \n adminBar.makeMenu(\'clipboard<tmpl_var clipboard.count>\',\'clipboard\',\'<tmpl_var clipboard.label>\',\'<tmpl_var clipboard.url>\');\n</tmpl_loop>\n\nadminBar.makeMenu(\'admin\',\'\',\'<tmpl_var admin.label>\',\'\');\n<tmpl_loop admin_loop> \n adminBar.makeMenu(\'admin<tmpl_var admin.count>\',\'admin\',\'<tmpl_var admin.label>\',\'<tmpl_var admin.url>\');\n</tmpl_loop>\n \nadminBar.construct()\n</script>\n<br />\n','Macro/AdminBar');
INSERT INTO template VALUES (1,'Default Admin Bar',' <script language=\"JavaScript\" type=\"text/javascript\"> <!--\n function goContent(){\n location = document.content.contentSelect.options[document.content.contentSelect.selectedIndex].value\n }\n function goAdmin(){\n location = document.admin.adminSelect.options[document.admin.adminSelect.selectedIndex].value\n }\n function goClipboard(){\n location = document.clipboard.clipboardSelect.options[document.clipboard.clipboardSelect.selectedIndex].value\n }\n //--> </script>\n \n<div class=\"adminBar\">\n<table class=\"adminBar\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\n <tr>\n <form name=\"content\"> <td>\n <select name=\"contentSelect\" onChange=\"goContent()\">\n <option value=\"\"><tmpl_var addcontent.label></option>\n <tmpl_loop addcontent_loop>\n <option value=\"<tmpl_var addcontent.url>\"><tmpl_var addcontent.label></option>\n </tmpl_loop>\n </select>\n </td> </form>\n <form name=\"clipboard\"> <td align=\"center\">\n <select name=\"clipboardSelect\" onChange=\"goClipboard()\">\n <option value=\"\"><tmpl_var clipboard.label></option>\n <tmpl_loop clipboard_loop>\n <option value=\"<tmpl_var clipboard.url>\"><tmpl_var clipboard.label></option>\n </tmpl_loop>\n </select>\n </td> </form>\n <form name=\"admin\"> <td align=\"center\">\n <select name=\"adminSelect\" onChange=\"goAdmin()\">\n <option value=\"\"><tmpl_var admin.label></option>\n <tmpl_loop admin_loop>\n <option value=\"<tmpl_var admin.url>\"><tmpl_var admin.label></option>\n </tmpl_loop>\n </select>\n </td> </form>\n </tr>\n</table>\n</div>\n','Macro/AdminBar');

View file

@ -12,8 +12,8 @@ package WebGUI::Macro::AdminBar;
use strict qw(refs vars);
use Tie::IxHash;
use WebGUI::Form;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Privilege;
use WebGUI::Session;
use WebGUI::SQL;
@ -23,7 +23,10 @@ use WebGUI::Utility;
#-------------------------------------------------------------------
sub process {
return "" unless ($session{var}{adminOn});
my (%hash2, $miscSelect, $adminSelect, $clipboardSelect, %hash, $output, $contentSelect, $r, $i, @item, $query);
my @param = WebGUI::Macro::getParams($_[0]);
my $templateId = $param[0] || 1;
my %var;
my (%hash2, %hash, $r, $i, @item, $query);
tie %hash, "Tie::IxHash";
tie %hash2, "Tie::IxHash";
#--content adder
@ -42,15 +45,21 @@ sub process {
$hash{WebGUI::URL::page('func=edit&wid=new&namespace='.$namespace)} = $w->name;;
}
%hash = sortHash(%hash);
%hash = (%{{WebGUI::URL::page()=>WebGUI::International::get(1)}},%hash);
$contentSelect = WebGUI::Form::selectList({
name=>"contentSelect",
options=>\%hash,
extras=>'onChange="goContent()"'
});
$var{'addcontent.label'} = WebGUI::International::get(1);
my @addcontent;
my $i = 0;
foreach my $key (keys %hash) {
push(@addcontent,{
'addcontent.url'=>$key,
'addcontent.label'=>$hash{$key},
'addcontent.count'=>$i
});
$i++;
}
$var{'addcontent_loop'} = \@addcontent;
#--clipboard paster
%hash2 = ();
$hash2{WebGUI::URL::page()} = WebGUI::International::get(3);
$var{'clipboard.label'} = WebGUI::International::get(3);
# get pages and store in array of arrays in order to integrate with wobjects and sort by buffer date
if ($session{setting}{sharedClipboard} eq "1") {
@ -92,12 +101,17 @@ sub process {
$hash2{ $sorted_item[$i][1] } = $sorted_item[$i][2];
}
@sorted_item = ();
$clipboardSelect = WebGUI::Form::selectList({
name=>"clipboardSelect",
options=>\%hash2,
extras=>'onChange="goClipboard()"'
});
my @clipboard;
$i = 0;
foreach my $key (keys %hash2) {
push(@clipboard,{
'clipboard.url'=>$key,
'clipboard.label'=>$hash2{$key},
'clipboard.count'=>$i
});
$i++;
}
$var{'clipboard_loop'} = \@clipboard;
#--admin functions
%hash = ();
if (WebGUI::Privilege::isInGroup(3)) {
@ -156,35 +170,22 @@ sub process {
);
%hash = sortHash(%hash);
%hash = (
''=>WebGUI::International::get(82),
WebGUI::URL::page('op=switchOffAdmin')=>WebGUI::International::get(12),
%hash
);
$adminSelect = WebGUI::Form::selectList({
name=>"adminSelect",
options=>\%hash,
extras=>'onChange="goAdmin()"'
});
#--output admin bar
$output = '
<div class="adminBar"><table class="adminBar" width="100%" cellpadding="3" cellspacing="0" border="0"><tr>
<script language="JavaScript" type="text/javascript"> <!--
function goContent(){
location = document.content.contentSelect.options[document.content.contentSelect.selectedIndex].value
$var{'admin.label'} = WebGUI::International::get(82);
my @admin;
$i = 0;
foreach my $key (keys %hash) {
push(@admin,{
'admin.url'=>$key,
'admin.label'=>$hash{$key},
'admin.count'=>$i
});
$i++;
}
function goAdmin(){
location = document.admin.adminSelect.options[document.admin.adminSelect.selectedIndex].value
}
function goClipboard(){
location = document.clipboard.clipboardSelect.options[document.clipboard.clipboardSelect.selectedIndex].value
}
//--> </script>
<form name="content"> <td>'.$contentSelect.'</td> </form>
<form name="clipboard"> <td align="center">'.$clipboardSelect.'</td> </form>
<form name="admin"> <td align="center">'.$adminSelect.'</td> </form>
</tr></table></div>
';
return $output;
$var{'admin_loop'} = \@admin;
return WebGUI::Template::process(WebGUI::Template::get($templateId,"Macro/AdminBar"),\%var);
}