diff options
| -rw-r--r-- | phpBB/groupcp.php | 168 | ||||
| -rwxr-xr-x | phpBB/language/lang_english.php | 27 | ||||
| -rw-r--r-- | phpBB/profile.php | 3 | ||||
| -rw-r--r-- | phpBB/templates/PSO/groupcp_info_body.tpl | 21 | ||||
| -rw-r--r-- | phpBB/templates/PSO/groupcp_user_body.tpl | 48 |
5 files changed, 204 insertions, 63 deletions
diff --git a/phpBB/groupcp.php b/phpBB/groupcp.php index 1db56614cd..ac39f53cb6 100644 --- a/phpBB/groupcp.php +++ b/phpBB/groupcp.php @@ -52,14 +52,23 @@ include($phpbb_root_path . 'includes/page_header.'.$phpEx); // // What shall we do? hhmmmm // -if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || ( isset($HTTP_POST_VARS[POST_GROUPS_URL]) && isset($HTTP_POST_VARS['viewinfo']) ) ) +if( isset($HTTP_POST_VARS['joingroup']) ) +{ + + +} +else if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) { $group_id = ( isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) ? $HTTP_POST_VARS[POST_GROUPS_URL] : $HTTP_GET_VARS[POST_GROUPS_URL]; + // + // Get group details + // $sql = "SELECT * FROM " . GROUPS_TABLE . " - WHERE group_id = $group_id"; + WHERE group_id = $group_id + AND group_single_user = 0"; if(!$result = $db->sql_query($sql)) { message_die(GENERAL_ERROR, "Error getting group information", "", __LINE__, __FILE__, $sql); @@ -70,6 +79,26 @@ if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || ( isset($HTTP_POST_VARS[POST_GROUP } $group_info = $db->sql_fetchrow($result); + // + // Get user information for this group + // + $sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, u.user_avatar + FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug + WHERE ug.group_id = $group_id + AND u.user_id = ug.user_id + ORDER BY u.user_regdate"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Error getting user list for group", "", __LINE__, __FILE__, $sql); + } + if( $members_count = $db->sql_numrows($result) ) + { + $group_members = $db->sql_fetchrowset($result); + } + + // + // Load templates + // $template->set_filenames(array( "info" => "groupcp_info_body.tpl", "list" => "groupcp_list_body.tpl", @@ -83,26 +112,61 @@ if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || ( isset($HTTP_POST_VARS[POST_GROUP ); $template->assign_var_from_handle("JUMPBOX", "jumpbox"); + $is_group_member = 0; + if($members_count) + { + for($i = 0; $i < $members_count; $i++) + { + if($group_members[$i]['user_id'] == $userdata['user_id'] && $userdata['session_logged_in']) + { + $is_group_member = TRUE; + } + } + } + + if( $userdata['user_id'] == $group_info['group_moderator'] ) + { + $group_details = $lang['Are_group_moderator']; + $s_hidden_fields = ""; + } + else if($is_group_member) + { + $group_details = $lang['Member_this_group'] . " <input type=\"submit\" name=\"unsub\" value=\"" . $lang['Unsubscribe'] . "\">"; + $s_hidden_fields = ""; + } + else + { + if($group_info['group_type']) + { + // + // 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 + { + $group_details = $lang['This_closed_group']; + $s_hidden_fields = ""; + } + } + $template->assign_vars(array( - "L_GROUP_NAME" => "Group Name", - "L_GROUP_DESC" => "Group Description", + "L_GROUP_INFORMATION" => $lang['Group_Information'], + "L_GROUP_NAME" => $lang['Group_name'], + "L_GROUP_DESC" => $lang['Group_description'], + "L_GROUP_MEMBERSHIP" => $lang['Group_membership'], + "L_SUBSCRIBE" => $lang['Subscribe'], + "L_UNSUBSCRIBE" => $lang['Unsubscribe'], "GROUP_NAME" => $group_info['group_name'], "GROUP_DESC" => $group_info['group_description'], - "GROUP_MEMBERSHIP_DETAILS" => "") + "GROUP_DETAILS" => $group_details, + + "S_GROUP_INFO_ACTION" => append_sid("groupcp.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) ); - - $sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, u.user_avatar - FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug - WHERE ug.group_id = $group_id - AND u.user_id = ug.user_id - ORDER BY u.user_regdate"; - if(!$result = $db->sql_query($sql)) - { - message_die(GENERAL_ERROR, "Error getting user list for group", "", __LINE__, __FILE__, $sql); - } - // // Parse group info output // @@ -111,10 +175,8 @@ if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || ( isset($HTTP_POST_VARS[POST_GROUP // // Generate memberlist if there any! // - if( ( $users_list = $db->sql_numrows($result) ) > 0 ) + if( $members_count ) { - $group_members = $db->sql_fetchrowset($result); - $template->assign_vars(array( "L_SELECT_SORT_METHOD" => $lang['Select_sort_method'], "L_EMAIL" => $lang['Email'], @@ -133,7 +195,7 @@ if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || ( isset($HTTP_POST_VARS[POST_GROUP "S_MODE_ACTION" => append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id")) ); - for($i = 0; $i < $users_list; $i++) + for($i = 0; $i < $members_count; $i++) { $username = stripslashes($group_members[$i]['username']); $user_id = $group_members[$i]['user_id']; @@ -158,15 +220,7 @@ if( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || ( isset($HTTP_POST_VARS[POST_GROUP if($group_members[$i]['user_website'] != "") { - if(!eregi("^http\:\/\/", $group_members[$i]['user_website'])) - { - $website_url = "http://" . stripslashes($group_members[$i]['user_website']); - } - else - { - $website_url = stripslashes($group_members[$i]['user_website']); - } - $www_img = "<a href=\"$website_url\" target=\"_userwww\"><img src=\"" . $images['icon_www'] . "\" border=\"0\"/></a>"; + $www_img = "<a href=\"" . stripslashes($group_members[$i]['user_website']) . "\" target=\"_userwww\"><img src=\"" . $images['icon_www'] . "\" border=\"0\"/></a>"; } else { @@ -315,35 +369,59 @@ else ); $template->assign_var_from_handle("JUMPBOX", "jumpbox"); - - $s_group_list = '<select name="' . POST_GROUPS_URL . '">'; - for($i = 0; $i < count($group_list); $i++) - { - $s_group_list .= '<option value="' . $group_list[$i]['group_id'] . '">' . $group_list[$i]['group_name'] . '</option>'; - } - $s_group_list .= "</select>"; - $s_member_groups = '<select name="' . POST_GROUPS_URL . '">'; + $s_member_groups_opt = ""; $s_pending_groups = '<select name="' . POST_GROUPS_URL . '">'; + $s_pending_groups_opt = ""; + for($i = 0; $i < count($membergroup_list); $i++) { if($membergroup_list[$i]['user_pending']) { - $s_pending_groups .= '<option value="' . $membergroup_list[$i]['group_id'] . '">' . $membergroup_list[$i]['group_name'] . '</option>'; + $s_pending_groups_opt .= '<option value="' . $membergroup_list[$i]['group_id'] . '">' . $membergroup_list[$i]['group_name'] . '</option>'; } else { - $s_member_groups .= '<option value="' . $membergroup_list[$i]['group_id'] . '">' . $membergroup_list[$i]['group_name'] . '</option>'; + $s_member_groups_opt .= '<option value="' . $membergroup_list[$i]['group_id'] . '">' . $membergroup_list[$i]['group_name'] . '</option>'; } } - $s_pending_groups .= "</select>"; - $s_member_groups .= "</select>"; + if($s_member_groups_opt == "") + { + $s_member_groups_opt = "<option>" . $lang['None'] . "</option>"; + } + if($s_pending_groups_opt == "") + { + $s_pending_groups_opt = "<option>" . $lang['None'] . "</option>"; + } + $s_pending_groups .= $s_pending_groups_opt . "</select>"; + $s_member_groups .= $s_member_groups_opt . "</select>"; + // + // Remaining groups + // + $s_group_list = '<select name="' . POST_GROUPS_URL . '">'; + for($i = 0; $i < count($group_list); $i++) + { + if( !strstr($s_pending_groups, $group_list[$i]['group_name']) && !strstr($s_member_groups, $group_list[$i]['group_name']) ) + { + $s_group_list_opt .= '<option value="' . $group_list[$i]['group_id'] . '">' . $group_list[$i]['group_name'] . '</option>'; + } + } + if($s_group_list_opt == "") + { + $s_group_list_opt = "<option>" . $lang['None'] . "</option>"; + } + $s_group_list .= $s_group_list_opt . "</select>"; $template->assign_vars(array( - "L_YOU_BELONG_GROUPS" => "You belong to the following usergroups", - "L_SELECT_A_GROUP" => "To join a usergroup select one from the list", - "L_PENDING_GROUPS" => "You have memberships pending on these groups", + "L_GROUP_MEMBERSHIP_DETAILS" => $lang['Group_member_details'], + "L_JOIN_A_GROUP" => $lang['Group_member_join'], + "L_YOU_BELONG_GROUPS" => $lang['Current_memberships'], + "L_SELECT_A_GROUP" => $lang['Non_member_groups'], + "L_PENDING_GROUPS" => $lang['Memberships_pending'], + "L_SUBSCRIBE" => $lang['Subscribe'], + "L_UNSUBSCRIBE" => $lang['Unsubscribe'], + "L_VIEW_INFORMATION" => $lang['View_Information'], "GROUP_LIST_SELECT" => $s_group_list, "GROUP_PENDING_SELECT" => $s_pending_groups, @@ -351,8 +429,6 @@ else ); $template->pparse("user"); - - } // diff --git a/phpBB/language/lang_english.php b/phpBB/language/lang_english.php index 38f499ea4b..66b3307cf0 100755 --- a/phpBB/language/lang_english.php +++ b/phpBB/language/lang_english.php @@ -448,6 +448,33 @@ $lang['Descending'] = "Descending"; $lang['Order'] = "Order"; // +// Usergroups +// +$lang['Group_member_details'] = "Group Membership Details"; +$lang['Group_member_join'] = "Join a Group"; + +$lang['Group_Information'] = "Group Information"; +$lang['Group_name'] = "Group name"; +$lang['Group_description'] = "Group description"; +$lang['Group_membership'] = "Group membership"; + +$lang['Current_memberships'] = "Current memberships"; +$lang['Non_member_groups'] = "Non-member groups"; +$lang['Memberships_pending'] = "Memberships pending"; + +$lang['Join_group'] = "Join Group"; + +$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"; +$lang['Member_this_group'] = "You are a member of this group"; +$lang['Are_group_moderator'] = "You are the group moderator"; +$lang['None'] = "None"; + +$lang['Subscribe'] = "Subscribe"; +$lang['Unsubscribe'] = "Unsubscribe"; +$lang['View_Information'] = "View Information"; + +// // Search <= Should be blank for now // $lang['Search_for_any'] = "Search for any terms or use query as entered"; diff --git a/phpBB/profile.php b/phpBB/profile.php index 2d4c4908b8..13d50421f3 100644 --- a/phpBB/profile.php +++ b/phpBB/profile.php @@ -91,10 +91,11 @@ function template_select($default) } function theme_select($default) { - global $db, $lang; + global $db, $board_config, $lang; $sql = "SELECT themes_id, themes_name FROM " . THEMES_TABLE . " + WHERE themes_name LIKE '" . $board_config['default_template'] . "-%' ORDER BY themes_name"; if($result = $db->sql_query($sql)) { diff --git a/phpBB/templates/PSO/groupcp_info_body.tpl b/phpBB/templates/PSO/groupcp_info_body.tpl index 0db2350ca5..794fdae48f 100644 --- a/phpBB/templates/PSO/groupcp_info_body.tpl +++ b/phpBB/templates/PSO/groupcp_info_body.tpl @@ -5,10 +5,10 @@ </table></div> <div align="center"><table border="0" cellpadding="1" cellspacing="0" width="98%"> - <tr> + <tr><form method="POST" action="{S_GROUP_INFO_ACTION}"> <td class="tablebg"><table width="100%" cellpadding="4" cellspacing="1" border="0"> <tr> - <td class="cat" colspan="7"><span class="cattitle">Group Information</span></td> + <td class="cat" colspan="7"><span class="cattitle">{L_GROUP_INFORMATION}</span></td> </tr> <tr> <td class="row1" width="20%"><span class="gen">{L_GROUP_NAME}:</span></td> @@ -19,22 +19,11 @@ <td class="row2"><span class="gen">{GROUP_DESC}</span></td> </tr> <tr> - <td class="cat" colspan="7"><span class="cattitle">Group Membership Details</span></td> - </tr> - <tr> - <td class="row1" colspan="2" width="20%"><table width="60%" cellspacing="2" cellpadding="0" border="0"> - <tr> - <td><span class="gen">{GROUP_MEMBERSHIP_DETAILS}</span></td> - </tr> - <!-- IF $S_OPEN_GROUP --> - <tr> - <td></td> - </tr> - <!-- ENDIF --> - </table></td> + <td class="row1" width="20%"><span class="gen">{L_GROUP_MEMBERSHIP}:</span></td> + <td class="row2"><span class="gen">{GROUP_DETAILS}{S_HIDDEN_FIELDS}</span></td> </tr> </table></td> - </tr> + </form></tr> </table></div> <br clear="all"> diff --git a/phpBB/templates/PSO/groupcp_user_body.tpl b/phpBB/templates/PSO/groupcp_user_body.tpl new file mode 100644 index 0000000000..eaca001104 --- /dev/null +++ b/phpBB/templates/PSO/groupcp_user_body.tpl @@ -0,0 +1,48 @@ +<div align="center"><table width="98%" cellspacing="0" cellpadding="4" border="0"> + <tr> + <td align="left"><span class="gensmall"><a href="{U_INDEX}">{SITENAME} {L_INDEX}</a></span></td> + </tr> +</table></div> + +<div align="center"><table border="0" cellpadding="1" cellspacing="0" width="98%"> + <tr> + <td class="tablebg"><table width="100%" cellpadding="4" cellspacing="1" border="0"> + <tr> + <td class="cat" colspan="2" align="center"><span class="cattitle"><b>{L_GROUP_MEMBERSHIP_DETAILS}</b></span></td> + </tr> + <tr> + <td class="row1"><span class="gen">{L_YOU_BELONG_GROUPS}</span></td> + <td class="row2"><table width="100%" cellspacing="0" cellpadding="0" border="0"> + <tr><form method="post" action="{S_USERGROUP_ACTION}"> + <td width="40%" align="center"> {GROUP_MEMBER_SELECT} </td> + <td width="30%" align="center"> <input type="submit" name="viewinfo" value="{L_VIEW_INFORMATION}"> </td> + <td width="30%" align="center"> <input type="submit" name="unsubjoin" value="{L_UNSUBSCRIBE}"> </td> + </form></tr> + </table></td> + </tr> + <tr> + <td class="row1"><span class="gen">{L_PENDING_GROUPS}</span></td> + <td class="row2"><table width="100%" cellspacing="0" cellpadding="0" border="0"> + <tr><form method="post" action="{S_USERGROUP_ACTION}"> + <td width="40%" align="center"> {GROUP_PENDING_SELECT} </td> + <td width="30%" align="center"> <input type="submit" name="viewinfo" value="{L_VIEW_INFORMATION}"> </td> + <td width="30%" align="center"> <input type="submit" name="unsubpending" value="{L_UNSUBSCRIBE}"> </td> + </form></tr> + </table></td> + </tr> + <tr> + <td class="cat" colspan="2" align="center"><span class="cattitle"><b>{L_JOIN_A_GROUP}</b></span></td> + </tr> + <tr> + <td class="row1"><span class="gen">{L_SELECT_A_GROUP}</span></td> + <td class="row2"><table width="100%" cellspacing="0" cellpadding="0" border="0"> + <tr><form method="post" action="{S_USERGROUP_ACTION}"> + <td width="40%" align="center"> {GROUP_LIST_SELECT} </td> + <td width="30%" align="center"> <input type="submit" name="viewinfo" value="{L_VIEW_INFORMATION}"> </td> + <td width="30%" align="center"> <input type="submit" name="subnew" value="{L_SUBSCRIBE}"> </td> + </form></tr> + </table></td> + </tr> + </table></td> + </tr> +</table></div> |
