Group CP is done (I hope). The group moderator and admin can add and remove users from groups.

There are several things in this I would like to change but its too late for 2.0, someone remind me during 2.2 discussions


git-svn-id: file:///svn/phpbb/trunk@1134 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
James Atkinson 2001-10-06 04:44:47 +00:00
parent b431e279ce
commit ea5590297d
6 changed files with 222 additions and 67 deletions

View file

@ -61,7 +61,7 @@ INSERT INTO phpbb_forums (forum_id, forum_name, forum_desc, cat_id, forum_order,
-- Users
INSERT INTO phpbb_users (user_id, username, user_level, user_regdate, user_password, user_autologin_key, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_viewemail, user_style, user_aim, user_yim, user_msnm, user_posts, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_pm, user_notify_pm, user_allow_viewonline, user_rank, user_avatar, user_lang, user_timezone, user_dateformat, user_actkey, user_newpasswd, user_notify, user_active) VALUES ( '-1', 'Anonymous', '0', '972086460', '', '', '', '', '', '', '', '', '', '0', '0', '', '', '', '', '', '', '', '0', '0', '1', '', '', '', '', '', '', '', '', '0', '0', '');
INSERT INTO phpbb_users (user_id, username, user_level, user_regdate, user_password, user_autologin_key, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_viewemail, user_style, user_aim, user_yim, user_msnm, user_posts, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_pm, user_notify_pm, user_allow_viewonline, user_rank, user_avatar, user_lang, user_timezone, user_dateformat, user_actkey, user_newpasswd, user_notify, user_active) VALUES ( '-1', 'Anonymous', '0', '972086460', '', '', '', '', '', '', '', '', '', '0', '0', '', '', '', '', '', '', '', '0', '0', '1', '', '', '', '', '', '', '', '0', '0', '');
-- username: admin password: admin (change this or remove it once everything is working!)
INSERT INTO phpbb_users (user_id, username, user_level, user_regdate, user_password, user_autologin_key, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_viewemail, user_style, user_aim, user_yim, user_msnm, user_posts, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_pm, user_notify_pm, user_allow_viewonline, user_rank, user_avatar, user_lang, user_timezone, user_dateformat, user_actkey, user_newpasswd, user_notify, user_active) VALUES ( '2', 'Admin', '1', EXTRACT(EPOCH FROM TIMESTAMP 'now'), '21232f297a57a5a743894a0e4a801fc3', '', 'admin@yourdomain.com', '', '', '', '', '', 'A Signature', '1', '2', '', '', '', '0', '0', '1', '0', '1', '1', '1', '1', '1', '', 'english', '-8', 'd M Y h:i a', '', '', '0', '1');
@ -152,7 +152,7 @@ INSERT INTO phpbb_smilies (smilies_id, code, smile_url, emoticon) VALUES ( '39',
INSERT INTO phpbb_smilies (smilies_id, code, smile_url, emoticon) VALUES ( '40', ':mrgreen:', 'icon_mrgreen.gif', 'Mr. Green');
# -- Words
-- Words
INSERT INTO phpbb_words (word_id, word, replacement) VALUES ( '1', 'asshole', '*beep*');
INSERT INTO phpbb_words (word_id, word, replacement) VALUES ( '2', 'assram*', '*beep*');
INSERT INTO phpbb_words (word_id, word, replacement) VALUES ( '3', 'asswipe', '*beep*');

View file

@ -23,6 +23,7 @@
$phpbb_root_path = "./";
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
//
// Start session management
@ -69,9 +70,10 @@ if( isset($HTTP_POST_VARS['joingroup']) )
$email_headers = "From: " . $board_config['board_email'] . "\r\n";
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);
$email_headers = "From: " . $board_config['board_email'] . "\r\n";
$emailer->use_template("group_request");
$emailer->email_address($moderator[0]['user_email']);
$emailer->set_subject($lang['Group_request']);
@ -81,7 +83,7 @@ if( isset($HTTP_POST_VARS['joingroup']) )
"SITENAME" => $board_config['sitename'],
"GROUP_MODERATOR" => $moderator[0]['username'],
"U_GROUPCP" => "http://".$SERVER_NAME.$PHP_SELF."?".POST_GROUPS_URL."=".$HTTP_POST_VARS[POST_GROUPS_URL],
"EMAIL_SIG" => $board_config['email_sig'])
"EMAIL_SIG" => $board_config['board_email_sig'])
);
$emailer->send();
$emailer->reset();
@ -162,48 +164,38 @@ else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GR
$group_id = ( isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) ? $HTTP_POST_VARS[POST_GROUPS_URL] : $HTTP_GET_VARS[POST_GROUPS_URL];
//
// Handle approvals and denials
// Handle Additions, removals, approvals and denials
//
if(isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']))
if(isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) || $HTTP_POST_VARS['add'] || $HTTP_POST_VARS['remove'])
{
$members = $HTTP_POST_VARS['member'];
if(isset($HTTP_POST_VARS['approve']))
if(isset($HTTP_POST_VARS['add']))
{
$sql_select = "SELECT user_email FROM ". USERS_TABLE . " WHERE ";
$sql = "UPDATE ".USER_GROUP_TABLE." SET user_pending = 0 WHERE ";
}
else if(isset($HTTP_POST_VARS['deny']))
{
$sql = "DELETE FROM ".USER_GROUP_TABLE." WHERE ";
}
$username = $HTTP_POST_VARS['username'];
for($x = 0; $x < count($members); $x++)
{
if($x > 0)
$sql = "SELECT user_id, user_email FROM " . USERS_TABLE . " WHERE username = '$username'";
if(!$result = $db->sql_query($sql, BEGIN_TRANSACTION))
{
$sql_select .= " OR ";
$sql .= " OR ";
message_die(GENERAL_ERROR, "Could not get user information", $lang['Error'], __LINE__, __FILE__, $sql);
}
$sql .= "user_id = ".$members[$x];
$sql_select .= "user_id = ".$members[$x];
}
if(!$result = $db->sql_query($sql, BEGIN_TRANSACTION))
{
message_die(GENERAL_ERROR, "Could not update user group table.", "Error", __LINE__, __FILE__, $sql);
}
// Email user when they'er approved
if(isset($HTTP_POST_VARS['approve']))
{
if(!$result = $db->sql_query($sql_select))
$row = $db->sql_fetchrow($result);
if(!$row)
{
message_die(GENERAL_ERROR, "Could not get user email information", "Error", __LINE__, __FILE__, $sql);
message_die(GENERAL_ERROR, $lang['Could_not_add_user'], $lang['Error']);
}
$email_rowset = $db->sql_fetchrowset($result);
$members_count = $db->sql_numrows($result);
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) VALUES (" . $row['user_id'] . ", $group_id, 0)";
if(!$result = $db->sql_query($sql, END_TRANSACTION))
{
message_die(GENERAL_ERROR, "Could not add user to group", "Error", __LINE__, __FILE__, $sql);
}
// Email the user and tell them they're in the group
//
// Get the group name
@ -216,31 +208,101 @@ else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GR
$group_name_row = $db->sql_fetchrow($result);
$group_name = $group_name_row['group_name'];
$email_headers = "From: " . $board_config['board_email'] . "\r\n";
$emailer->use_template("group_approved");
$emailer->extra_headers($email_headers);
$emailer->set_subject($lang['Group_approved']);
$emailer = new emailer($board_config['smtp_delivery']);
$emailer->use_template("group_added");
$emailer->email_address($row['user_email']);
$emailer->set_subject($lang['Group_added']);
$emailer->extra_headers($email_headers);
for($x = 0; $x < $members_count; $x++)
{
if($x > 0)
{
$email_address .= ", ";
}
$email_address .= $email_rowset[$x]['user_email'];
}
$emailer->email_address($email_address);
$emailer->assign_vars(array(
"SITENAME" => $board_config['sitename'],
"U_GROUPCP" => "http://".$SERVER_NAME.$PHP_SELF."?".POST_GROUPS_URL."=$group_id",
"GROUP_NAME" => $group_name,
"EMAIL_SIG" => $board_config['email_sig'])
"U_GROUPCP" => "http://".$SERVER_NAME.$PHP_SELF."?".POST_GROUPS_URL."=".$HTTP_POST_VARS[POST_GROUPS_URL],
"EMAIL_SIG" => $board_config['board_email_sig'])
);
$emailer->send();
$emailer->reset();
}
}
else
{
if(isset($HTTP_POST_VARS['approve']))
{
$sql_select = "SELECT user_email FROM ". USERS_TABLE . " WHERE ";
$sql = "UPDATE ".USER_GROUP_TABLE." SET user_pending = 0 WHERE ";
}
else if(isset($HTTP_POST_VARS['deny']) || isset($HTTP_POST_VARS['remove']))
{
$sql = "DELETE FROM ".USER_GROUP_TABLE." WHERE ";
}
for($x = 0; $x < count($members); $x++)
{
if($x > 0)
{
$sql_select .= " OR ";
$sql .= " OR ";
}
$sql .= "user_id = ".$members[$x];
$sql_select .= "user_id = ".$members[$x];
}
if(!$result = $db->sql_query($sql, BEGIN_TRANSACTION))
{
message_die(GENERAL_ERROR, "Could not update user group table.", "Error", __LINE__, __FILE__, $sql);
}
// Email user when they'er approved
if(isset($HTTP_POST_VARS['approve']))
{
if(!$result = $db->sql_query($sql_select))
{
message_die(GENERAL_ERROR, "Could not get user email information", "Error", __LINE__, __FILE__, $sql);
}
$email_rowset = $db->sql_fetchrowset($result);
$members_count = $db->sql_numrows($result);
//
// Get the group name
//
$group_sql = "SELECT group_name FROM ".GROUPS_TABLE." WHERE group_id = $group_id";
if(!$result = $db->sql_query($group_sql))
{
message_die(GENERAL_ERROR, "Could not get group information", "Error", __LINE__, __FILE__, $group_sql);
}
$group_name_row = $db->sql_fetchrow($result);
$group_name = $group_name_row['group_name'];
$emailer = new emailer($board_config['smtp_delivery']);
$email_headers = "From: " . $board_config['board_email'] . "\r\n";
$emailer->use_template("group_approved");
$emailer->extra_headers($email_headers);
$emailer->set_subject($lang['Group_approved']);
for($x = 0; $x < $members_count; $x++)
{
if($x > 0)
{
$email_address .= ", ";
}
$email_address .= $email_rowset[$x]['user_email'];
}
$emailer->email_address($email_address);
$emailer->assign_vars(array(
"SITENAME" => $board_config['sitename'],
"U_GROUPCP" => "http://".$SERVER_NAME.$PHP_SELF."?".POST_GROUPS_URL."=$group_id",
"GROUP_NAME" => $group_name,
"EMAIL_SIG" => $board_config['board_email_sig'])
);
$emailer->send();
$emailer->reset();
}
}
}
//
// END approve or deny
@ -249,6 +311,8 @@ else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GR
$start = ( isset($HTTP_GET_VARS['start']) ) ? $HTTP_GET_VARS['start'] : 0;
$is_moderator = FALSE;
//
// Get group details
//
@ -316,13 +380,18 @@ else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GR
}
}
if( $userdata['user_id'] == $group_info['group_moderator'] )
if( $userdata['user_id'] == $group_info['group_moderator'])
{
$is_moderator = TRUE;
$group_details = $lang['Are_group_moderator'];
$s_hidden_fields = "";
$s_hidden_fields = "<input type=\"hidden\" name=\"" . POST_GROUPS_URL . "\" value=\"$group_id\" />";
}
else if($is_group_member)
{
if($userdata['user_level'] == ADMIN)
{
$is_moderator = TRUE;
}
$group_details = $lang['Member_this_group'] . " <input type=\"submit\" name=\"unsub\" value=\"" . $lang['Unsubscribe'] . "\" .>";
$s_hidden_fields = "<input type=\"hidden\" name=\"" . POST_GROUPS_URL . "\" value=\"$group_id\" />";
}
@ -330,14 +399,25 @@ else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GR
{
if($group_info['group_type'])
{
if($userdata['user_level'] == ADMIN)
{
$is_moderator = TRUE;
}
//
// I don't like this being here ...
//
$group_details = $lang['This_open_group'] . " <input type=\"submit\" name=\"joingroup\" value=\"" . $lang['Join_group'] . "\" />";
$s_hidden_fields = "<input type=\"hidden\" name=\"" . POST_GROUPS_URL . "\" value=\"$group_id\" />";
}
else
{
if($userdata['user_level'] == ADMIN)
{
$is_moderator = TRUE;
}
$group_details = $lang['This_closed_group'];
$s_hidden_fields = "";
}
@ -356,7 +436,8 @@ else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GR
"GROUP_DETAILS" => $group_details,
"S_GROUP_INFO_ACTION" => append_sid("groupcp.$phpEx"),
"S_HIDDEN_FIELDS" => $s_hidden_fields)
"S_HIDDEN_FIELDS" => $s_hidden_fields,
"S_PENDING_HIDDEN_FIELDS" => $s_hidden_fields)
);
//
@ -376,6 +457,10 @@ else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GR
"L_YIM" => $lang['YIM'],
"L_MSNM" => $lang['MSNM'],
"L_ICQ" => $lang['ICQ'],
"L_SELECT" => $lang['Select'],
"L_REMOVESELECTED" => $lang['Remove_selected'],
"L_ADDMEMBER" => $lang['Add_member'],
"L_FIND_USERNAME" => $lang['Find_username'],
"S_MODE_SELECT" => $select_sort_mode,
"S_ORDER_SELECT" => $select_sort_order,
@ -482,8 +567,19 @@ else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GR
"U_VIEWPROFILE" => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $user_id))
);
if($is_moderator)
{
$template->assign_block_vars("memberrow.memberselect", array(
"USER_ID" => $group_members[$i]['user_id']));
}
}
}
if($is_moderator)
{
$template->assign_block_vars("modoption", array());
$template->assign_block_vars("addmember", array());
}
/*
$pagination = generate_pagination("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id", $users_list, $board_config['topics_per_page'], $start)."&nbsp;";

View file

@ -0,0 +1,9 @@
Congratulations,
You have been added to the "{GROUP_NAME}" group on {SITENAME}.
This action was done by the group moderator or the site administrator, contact them for more information.
You can view your groups information here:
{U_GROUPCP}
{EMAIL_SIG}

View file

@ -526,6 +526,9 @@ $lang['No_group_members'] = "This group has no members";
$lang["Group_joined"] = "You have successfully subscribed to this group, you will be notifed when your subscription is approved by the group moderator.";
$lang['Group_request'] = "A request to join your group has been made";
$lang['Group_approved'] = "Your request has been approved";
$lang['Group_added'] = "You have been added!";
$lang['Could_not_add_user'] = "Could not add the selected user. Please go back and make sure you typed the correct username.";
$lang['Confirm_unsub'] = "Are you sure you want to unsubscribe from this group?";
$lang['Confirm_unsub_pending'] = "Are you sure you want to unsubscribe from this group? You subscription has not yet been approved or denied!";
@ -535,6 +538,8 @@ $lang['Usub_success'] = "You have been successfully unsubscribed from this group
$lang['Approve_selected'] = "Approve Selected";
$lang['Deny_selected'] = "Deny Selected";
$lang['Not_logged_in'] = "You must be logged in to join a group.";
$lang['Remove_selected'] = "Remove Selected";
$lang['Add_member'] = "Add Member";
$lang['This_open_group'] = "This is an open group, click to request membership";
$lang['This_closed_group'] = "This is a closed group, no more users accepted";

View file

@ -28,12 +28,13 @@
<br clear="all">
<form action="{S_PENDING_ACTION}" method="POST">
<form action="{S_PENDING_ACTION}" method="POST" name="post">
{S_PENDING_HIDDEN_FIELDS}
<table border="0" cellpadding="1" cellspacing="0" width="98%" align="center">
<tr>
<td class="tablebg"><table width="100%" cellpadding="4" cellspacing="1" border="0">
<tr>
<td class="cat" colspan="6"><span class="cattitle">Group Moderator</span></td>
<td class="cat" colspan="7"><span class="cattitle">Group Moderator</span></td>
</tr>
<tr>
<th width="8%">&nbsp;</th>
@ -41,7 +42,8 @@
<th width="8%"><b>{L_EMAIL}</b></td>
<th><b>{L_FROM}</b></td>
<th><b>{L_POSTS}</b></td>
<th width="8%"><b>{L_WEBSITE}</b></td>
<th width="8%" colspan="2"><b>{L_WEBSITE}</b></td>
</tr>
<tr>
<td class="row1" width="8%" align="center"> {MOD_PM_IMG} </td>
@ -49,7 +51,7 @@
<td class="row1" width="8%" align="center" valign="middle"> {MOD_EMAIL_IMG} </td>
<td class="row1" align="center" valign="middle"><span class="gen">{MOD_FROM}</span></td>
<td class="row1" align="center" valign="middle"><span class="gen">{MOD_POSTS}</span></td>
<td class="row1" width="8%" align="center"> {MOD_WWW_IMG} </a></td>
<td class="row1" width="8%" align="center" colspan="2"> {MOD_WWW_IMG} </a></td>
</tr>
<tr>
<td class="cat" colspan="7"><span class="cattitle">Group Members</span></td>
@ -61,6 +63,7 @@
<th><b>{L_FROM}</b></td>
<th><b>{L_POSTS}</b></td>
<th><b>{L_WEBSITE}</b></td>
<th width="10%">{L_SELECT}</th>
</tr>
<!-- BEGIN memberrow -->
<tr>
@ -70,8 +73,20 @@
<td class="{memberrow.ROW_CLASS}" align="center"><span class="gen">{memberrow.FROM}</span></td>
<td class="{memberrow.ROW_CLASS}" align="center"><span class="gen">{memberrow.POSTS}</span></td>
<td class="{memberrow.ROW_CLASS}" width="8%" align="center"> {memberrow.WWW_IMG} </a></td>
<td class="{memberrow.ROW_CLASS}" align="center">
<!-- BEGIN memberselect -->
<input type="checkbox" name="member[]" value="{memberrow.memberselect.USER_ID}" /> <span class="gen">{L_SELECT}</span>
<!-- END memberselect -->&nbsp;
</td>
</tr>
<!-- END memberrow -->
<!-- BEGIN modoption -->
<tr>
<td class="cat" colspan="7" align="right"><span class="cattitle">
<input type="submit" name="remove" value="{L_REMOVESELECTED}" class="mainoption" />
</td>
</tr>
<!-- END modoption -->
<!-- BEGIN pendingmembers -->
<tr>
<td class="cat" colspan="7"><span class="cattitle">Pending Members</span></td>
@ -103,14 +118,21 @@
<!-- BEGIN nomembers -->
<tr>
<td class="row1" colspan="6" align="center">{L_NO_MEMBERS}</td>
<td class="row1" colspan="7" align="center">{L_NO_MEMBERS}</td>
</tr>
<!-- END nomembers -->
<tr>
<td class="cat" colspan="6"><table width="100%" cellspacing="0" cellpadding="0" border="0">
<td class="cat" colspan="7"><table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td><span class="gen">&nbsp;<!-- {L_PAGE} <b>{ON_PAGE}</b> {L_OF} <b>{TOTAL_PAGES}</b></span></td>
<td align="right"><span class="gen">{PAGINATION}&nbsp;</span> --></td>
<td colspan="7"><span class="gen">&nbsp;
<!-- BEGIN addmember -->
<input type="text" class="post" name="username" maxlength="50" size="20" />
&nbsp;
<input type="submit" name="usersubmit" value="{L_FIND_USERNAME}" onClick="window.open('privmsg.php?mode=searchuser', '_phpbbsearch', 'HEIGHT=250,resizable=yes,WIDTH=400');return false;" />
<input type="submit" name="add" value="{L_ADDMEMBER}" />
</span>
<!-- END addmember -->
</td>
</tr>
</table></td>
</tr>

View file

@ -24,7 +24,8 @@
</table>
</form>
<form action="{S_PENDING_ACTION}" method="POST">
<form action="{S_PENDING_ACTION}" method="POST" name="post">
{S_PENDING_HIDDEN_FIELDS}
<table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline">
<tr>
<th class="thCornerL" height="25">Private Message</th>
@ -32,7 +33,8 @@
<th class="thTop">{L_POSTS}</th>
<th class="thTop">{L_FROM}</th>
<th class="thTop">{L_EMAIL}</th>
<th colspan="2" class="thCornerR">{L_WEBSITE}</th>
<th class="thTop">{L_WEBSITE}</th>
<th class="thCornerR">{L_SELECT}</th>
</tr>
<tr>
<td class="catSides" colspan="7" height="28"><span class="cattitle">Group Moderator</span></td>
@ -56,9 +58,21 @@
<td class="{memberrow.ROW_CLASS}" align="center"><span class="gen"> {memberrow.FROM}
</span></td>
<td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.EMAIL_IMG}</span></td>
<td class="{memberrow.ROW_CLASS}" align="center" colspan="2"> {memberrow.WWW_IMG}</td>
<td class="{memberrow.ROW_CLASS}" align="center"> {memberrow.WWW_IMG}</td>
<td class="{memberrow.ROW_CLASS}" align="center">
<!-- BEGIN memberselect -->
<input type="checkbox" name="member[]" value="{memberrow.memberselect.USER_ID}" /> <span class="gen">{L_SELECT}</span>
<!-- END memberselect -->&nbsp;
</td>
</tr>
<!-- END memberrow -->
<!-- BEGIN modoption -->
<tr>
<td class="cat" colspan="8" align="right"><span class="cattitle">
<input type="submit" name="remove" value="{L_REMOVESELECTED}" class="mainoption" />
</td>
</tr>
<!-- END modoption -->
<!-- BEGIN pendingmembers -->
<tr>
<td class="catSides" colspan="6" height="28"><span class="cattitle">Pending Members</span></td>
@ -95,7 +109,16 @@
</table>
<table width="100%" cellspacing="2" border="0" align="center" cellpadding="2">
<tr>
<td align="right" valign="top"><span class="gensmall">{S_TIMEZONE}</span></td>
<td align="left" valign="top"><span class="genmed">
<!-- BEGIN addmember -->
<input type="text" class="post" name="username" maxlength="50" size="20" />
&nbsp;
<input type="submit" name="usersubmit" value="{L_FIND_USERNAME}" class="liteoption" onClick="window.open('privmsg.php?mode=searchuser', '_phpbbsearch', 'HEIGHT=250,resizable=yes,WIDTH=400');return false;" />
<input type="submit" name="add" value="{L_ADDMEMBER}" class="mainoption" />
</span>
<!-- END addmember -->
&nbsp;</td>
<td align="right" valign="top"><span class="gensmall">{S_TIMEZONE}</span></td>
</tr>
</table>
</form>