root/phpBB2/groupcp.php

Revision 324, 57.4 kB (checked in by Nafania, 1 year ago)

Много мелких изменений. Если используется xbtt, то надо обязательно скачать новую версию на форуме.
Добавлен файл cron.php - если есть возможность, то пускайте cron таски через него. Особенно если используете массовую рассылку почты.

Line 
1 <?php
2 /***************************************************************************</span>
3 <span class="code-comment"> *                               groupcp.php
4  *                            -------------------
5  *   begin                : Saturday, Feb 13, 2001
6  *   copyright            : (C) 2001 The phpBB Group
7  *   email                : support@phpbb.com
8  *
9  *   $Id: groupcp.php,v 1.58.2.25 2005/09/17 18:36:48 grahamje Exp $
10  *
11  *
12  ***************************************************************************/
13
14 /***************************************************************************
15  *
16  *   This program is free software; you can redistribute it and/or modify
17  *   it under the terms of the GNU General Public License as published by
18  *   the Free Software Foundation; either version 2 of the License, or
19  *   (at your option) any later version.
20  *
21  ***************************************************************************/
22
23 if ( !defined('IN_PHPBB2_BRIDGE') ) {</span>
24 <span class="code-keyword">    trigger_error('Invalid access');
25 }
26
27 define('IN_PHPBB', true);
28 $root_path = './';</span>
29 <span class="code-lang">include($root_path . 'extension.inc');
30
31 // -------------------------</span>
32 <span class="code-comment">//
33 function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$joined, &$poster_avatar, &$profile_img, &$profile, &$search_img, &$search, &$pm_img, &$pm, &$email_img, &$email, &$www_img, &$www, &$icq_status_img, &$icq_img, &$icq, &$aim_img, &$aim, &$msn_img, &$msn, &$yim_img, &$yim, &$userdata, &$online_status_img, &$online_status)</span>
34 <span class="code-keyword">{
35         global $lang, $images, $config, $phpEx, $online_color, $offline_color, $hidden_color, $root_path;
36         // www.phpBB-SEO.com SEO TOOLKIT BEGIN
37         global $seo;
38         // www.phpBB-SEO.com SEO TOOLKIT END
39
40         $from = ( !empty($row['user_from']) ) ? $row['user_from'] : '&nbsp;';
41         $joined = create_date($row['added']);
42         $posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0;
43
44         $poster_avatar = '';
45         if ($row['uid'] != ANONYMOUS )
46         {
47             $poster_avatar = $row['avatar'];
48         }
49
50         if ( !empty($row['user_viewemail']) || $group_mod )
51         {
52                 $email_uri = 'mailto:' . $row['email'];
53
54                 $email_img = '<a href="' . $email_uri . '"><img src="' . $images['icon_email'] . '" alt="' . $lang['send_email'] . '" title="' . $lang['send_email'] . '" border="0" /></a>';
55                 $email = '<a href="' . $email_uri . '">' . $lang['send_email'] . '</a>';
56         }
57         else
58         {
59                 $email_img = '&nbsp;';
60                 $email = '&nbsp;';
61         }
62
63         // www.phpBB-SEO.com SEO TOOLKIT BEGIN
64         $seo->set_user_url($row['username'], $row['uid']);
65         // www.phpBB-SEO.com SEO TOOLKIT END
66
67         $temp_url = append_sid($root_path . "userdetails.php?id=" . $row['uid']);
68         $profile_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_profile'] . '" alt="' . $lang['read_profile'] . '" title="' . $lang['read_profile'] . '" border="0" /></a>';
69         $profile = '<a href="' . $temp_url . '">' . $lang['read_profile'] . '</a>';
70
71         $temp_url = append_sid($root_path . "message.php?action=send&amp;receiver=" . $row['uid']);
72         $pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['send_private_message'] . '" title="' . $lang['send_private_message'] . '" border="0" /></a>';
73         $pm = '<a href="' . $temp_url . '">' . $lang['send_private_message'] . '</a>';
74
75         if ( !empty($row['icq']) )
76         {
77                 $icq_status_img = '<a href="http://wwp.icq.com/' . $row['icq'] . '#pager"><img src="http://web.icq.com/whitepages/online?icq=' . $row['icq'] . '&img=5" width="18" height="18" border="0" /></a>';
78                 $icq_img = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['icq'] . '" title="' . $lang['icq'] . '" border="0" /></a>';
79                 $icq '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['icq'] . '">' . $lang['icq'] . '</a>';
80         }
81         else
82         {
83                 $icq_status_img = '';
84                 $icq_img = '';
85                 $icq = '';
86         }
87
88         $aim_img = ( $row['aim'] ) ? '<a href="aim:goim?screenname=' . $row['aim'] . '&amp;message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['aim'] . '" title="' . $lang['aim'] . '" border="0" /></a>' : '';
89         $aim = ( $row['aim'] ) ? '<a href="aim:goim?screenname=' . $row['aim'] . '&amp;message=Hello+Are+you+there?">' . $lang['aim'] . '</a>' : '';
90
91         $temp_url = append_sid($root_path . "userdetails.php?id=" . $row['uid']);
92         $msn_img = ( $row['msn'] ) ? '<a href="' . $temp_url . '"><img src="' . $images['icon_msnm'] . '" alt="' . $lang['msnm'] . '" title="' . $lang['msnm'] . '" border="0" /></a>' : '';
93         $msn = ( $row['msn'] ) ? '<a href="' . $temp_url . '">' . $lang['msnm'] . '</a>' : '';
94
95         $yim_img = ( $row['yahoo'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['yahoo'] . '&amp;.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['yim'] . '" title="' . $lang['yim'] . '" border="0" /></a>' : '';
96         $yim = ( $row['yahoo'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['yahoo'] . '&amp;.src=pg">' . $lang['yim'] . '</a>' : '';
97
98         $temp_url = append_sid($root_path . "phpbb2.php?page=search&search_author=" . urlencode($row['username']) . "&amp;showresults=posts");
99         $search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . sprintf($lang['search_user_posts'], $row['username']) . '" title="' . sprintf($lang['search_user_posts'], $row['username']) . '" border="0" /></a>';
100         $search = '<a href="' . $temp_url . '">' . sprintf($lang['search_user_posts'], $row['username']) . '</a>';
101         // Start add - Online/Offline/Hidden Mod
102         if ($row['user_session_time'] >= (time() - $config['online_time']))
103         {
104                 $online_status_img = '<a href="' . append_sid($root_path . "index.php?viewonline=1") . '"><img src="' . $images['icon_online'] . '" alt="' . sprintf($lang['is_online'], $row['username']) . '" title="' . sprintf($lang['is_online'], $row['username']) . '" /></a>';
105                 $online_status = '<strong><a href="' . append_sid($root_path . "index.php?viewonline=1") . '" title="' . sprintf($lang['is_online'], $row['username']) . '"' . $online_color . '>' . $lang['online'] . '</a></strong>';
106         }
107         else
108         {
109                 $online_status_img = '<img src="' . $images['icon_offline'] . '" alt="' . sprintf($lang['is_offline'], $row['username']) . '" title="' . sprintf($lang['is_offline'], $row['username']) . '" />';
110                 $online_status = '<span title="' . sprintf($lang['is_offline'], $row['username']) . '"' . $offline_color . '><strong>' . $lang['offline'] . '</strong></span>';
111         }
112         // End add - Online/Offline/Hidden Mod
113
114         return;
115 }
116 //</span>
117 <span class="code-comment">// --------------------------
118
119 //
120 // Start session management
121 //
122 $userdata = session_pagestart($user_ip);
123 init_userprefs($userdata);
124 //</span>
125 <span class="code-comment">// End session management
126 //
127
128 if ( isset($_GET[POST_GROUPS_URL]) || isset($_POST[POST_GROUPS_URL]) )</span>
129 <span class="code-keyword">{
130         $group_id = ( isset($_POST[POST_GROUPS_URL]) ) ? intval($_POST[POST_GROUPS_URL]) : intval($_GET[POST_GROUPS_URL]);
131 }
132 else
133 {
134         $group_id = '';
135 }
136
137 if ( isset($_POST['mode']) || isset($_GET['mode']) )
138 {
139         $mode = ( isset($_POST['mode']) ) ? $_POST['mode'] : $_GET['mode'];
140         $mode = htmlspecialchars($mode);
141 }
142 else
143 {
144         $mode = '';
145 }
146
147 $confirm = ( isset($_POST['confirm']) ) ? TRUE : 0;
148 $cancel = ( isset($_POST['cancel']) ) ? TRUE : 0;
149
150 $start = ( isset($_GET['start']) ) ? intval($_GET['start']) : 0;
151 $start = ($start < 0) ? 0 : $start;
152
153 //</span>
154 <span class="code-comment">// Default var values
155 //
156 $is_moderator = FALSE;</span>
157 <span class="code-lang">
158 if ( isset($_POST['groupstatus']) && $group_id )
159 {
160         if ( !$userdata['session_logged_in'] )
161         {
162                 //redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id"));
163                 loggedinorreturn();
164                 //redirect(append_sid($root_path . "login.php?returnto=" . rawurlencode("phpbb2.$phpEx?page=groupcp&" . POST_GROUPS_URL . "=$group_id")));
165         }
166
167         $sql = "SELECT group_moderator
168                 FROM " . GROUPS_TABLE . "
169                 WHERE group_id = $group_id";
170         $result = $db->sql_query($sql);
171
172         $row = $db->sql_fetchrow($result);
173
174         if ( $row['group_moderator'] != $userdata['uid'] && $userdata['user_level'] != ADMIN )
175         {
176                 meta_refresh(3, append_sid($root_path . "phpbb2.php?"));
177
178                 //$message = $lang['not_group_moderator'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
179                 $message = $lang['not_group_moderator'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
180
181                 trigger_error($message);
182                 return;
183         }
184
185         $sql = "UPDATE " . GROUPS_TABLE . "
186                 SET group_type = " . intval($_POST['group_type']) . "
187                 WHERE group_id = $group_id";
188         $result = $db->sql_query($sql);
189         meta_refresh(3, append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id"));
190
191         //$message = $lang['group_type_updated'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
192         $message = $lang['group_type_updated'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
193
194         trigger_error($message);
195         return;
196
197 }
198 else if ( isset($_POST['joingroup']) && $group_id )
199 {
200         //
201         // First, joining a group
202         // If the user isn't logged in redirect them to login
203         //
204         if ( !$userdata['session_logged_in'] )
205         {
206                 //redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id"));
207                 loggedinorreturn();
208                 //redirect(append_sid($root_path . "login.php?returnto=" . rawurlencode("phpbb2.$phpEx?page=groupcp&" . POST_GROUPS_URL . "=$group_id")));
209         }
210
211         $sql = "SELECT ug.user_id, g.group_type
212                 FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
213                 WHERE g.group_id = $group_id
214                         AND g.group_type <> " . GROUP_HIDDEN . "
215                         AND ug.group_id = g.group_id";
216         $result = $db->sql_query($sql);
217
218         if (        $row = $db->sql_fetchrow($result) )
219         {
220                 if ( $row['group_type'] == GROUP_OPEN )
221                 {
222                         do
223                         {
224                                 if ( $userdata['uid'] == $row['user_id'] )
225                                 {
226                                         meta_refresh(3, append_sid($root_path . "phpbb2.php?"));
227
228                                         //$message = $lang['already_member_group'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
229                                         $message = $lang['already_member_group'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
230
231                                         trigger_error($message);
232                                         return;
233                                 }
234                         } while ( $row = $db->sql_fetchrow($result) );
235                 }
236                 else
237                 {
238                         meta_refresh(3, append_sid($root_path . "phpbb2.php?"));
239
240                         //$message = $lang['this_closed_group'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
241                         $message = $lang['this_closed_group'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
242
243                         trigger_error($message);
244                         return;
245                 }
246         }
247         else
248         {
249                 trigger_error($lang['no_groups_exist']);
250                 return;
251         }
252
253         $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
254                 VALUES ($group_id, " . $userdata['uid'] . ", 1)";
255         $result = $db->sql_query($sql);
256
257         $sql = "SELECT u.email, u.name AS username, u.language, g.group_name
258                 FROM ".USERS_TABLE . " u, " . GROUPS_TABLE . " g
259                 WHERE u.uid = g.group_moderator
260                         AND g.group_id = $group_id";
261         $result = $db->sql_query($sql);
262
263         $moderator = $db->sql_fetchrow($result);
264
265         meta_refresh(3, append_sid($root_path . "phpbb2.php?"));
266
267         //$message = $lang['group_joined'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
268         $message = $lang['group_joined'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
269
270         trigger_error($message);
271         return;
272 }
273 else if ( isset($_POST['unsub']) || isset($_POST['unsubpending']) && $group_id )
274 {
275         //
276         // Second, unsubscribing from a group
277         // Check for confirmation of unsub.
278         //
279         if ( $cancel )
280         {
281                 //redirect(append_sid("groupcp.$phpEx"));
282                 redirect(append_sid($root_path . "phpbb2.php?page=groupcp"));
283         }
284         elseif ( !$userdata['session_logged_in'] )
285         {
286               loggedinorreturn();
287               //redirect(append_sid($root_path . "login.php?returnto=" . rawurlencode("phpbb2.$phpEx?page=groupcp&" . POST_GROUPS_URL . "=$group_id")));
288         }
289
290         if ( $confirm )
291         {
292                 $sql = "DELETE FROM " . USER_GROUP_TABLE . "
293                         WHERE user_id = " . $userdata['uid'] . "
294                                 AND group_id = $group_id";
295                 $result = $db->sql_query($sql);
296
297                 if ( $userdata['user_level'] != ADMIN && $userdata['user_level'] == MOD )
298                 {
299                         $sql = "SELECT COUNT(auth_mod) AS is_auth_mod
300                                 FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug
301                                 WHERE ug.user_id = " . $userdata['uid'] . "
302                                         AND aa.group_id = ug.group_id
303                                         AND aa.auth_mod = 1";
304                         $result = $db->sql_query($sql);
305
306                         if ( !($row = $db->sql_fetchrow($result)) || $row['is_auth_mod'] == 0 )
307                         {
308                                 $sql = "UPDATE " . USERS_TABLE . "
309                                         SET user_level = " . USER . "
310                                         WHERE uid = " . $userdata['uid'];
311                                 $result = $db->sql_query($sql);
312                         }
313                 }
314
315                 meta_refresh(3, append_sid($root_path . "phpbb2.php?"));
316
317                 //$message = $lang['unsub_success'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
318                 $message = $lang['unsub_success'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
319
320                 trigger_error($message);
321                 return;
322         }
323         else
324         {
325                 $unsub_msg = ( isset($_POST['unsub']) ) ? $lang['confirm_unsub'] : $lang['confirm_unsub_pending'];
326
327                 $s_hidden_fields = '<input type="hidden" name="' . POST_GROUPS_URL . '" value="' . $group_id . '" /><input type="hidden" name="unsub" value="1" />';
328
329                 $template->assign_vars(array(
330                         'MESSAGE_TITLE' => $lang['confirm'],
331                         'MESSAGE_TEXT' => $unsub_msg,
332                         'S_CONFIRM_ACTION' => append_sid($root_path . "phpbb2.php?page=groupcp"),
333                         'S_HIDDEN_FIELDS' => $s_hidden_fields)
334                 );
335
336                 stdhead($lang['forums'] . ' :: ' . $lang['group_control_panel'], false);
337
338                 $template->set_filenames(array(
339                         'body' => 'forum/confirm_body.tpl')
340                 );
341
342                 return;
343         }
344
345 }
346 else if ( $group_id )
347 {
348         //
349         // Did the group moderator get here through an email?
350         // If so, check to see if they are logged in.
351         //
352         if ( isset($_GET['validate']) )
353         {
354                 if ( !$userdata['session_logged_in'] )
355                 {
356                         loggedinorreturn();
357 //                        redirect(append_sid($root_path . "login.php?returnto=" . rawurlencode("phpbb2.$phpEx?page=groupcp&" . POST_GROUPS_URL . "=$group_id")));</span>
358 <span class="code-comment">                }
359         }
360
361         //
362         // For security, get the ID of the group moderator.
363         //
364         switch($db_type)
365         {
366                 case 'postgresql':
367                         $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
368                                 FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa
369                                 WHERE g.group_id = $group_id
370                                         AND aa.group_id = g.group_id
371                                         UNION (
372                                                 SELECT g.group_moderator, g.group_type, NULL
373                                                 FROM " . GROUPS_TABLE . " g
374                                                 WHERE g.group_id = $group_id
375                                                         AND NOT EXISTS (
376                                                         SELECT aa.group_id
377                                                         FROM " . AUTH_ACCESS_TABLE . " aa
378                                                         WHERE aa.group_id = g.group_id
379                                                 )
380                     )
381                 ORDER BY aa.auth_mod DESC";
382                         break;
383
384                 case 'oracle':
385                         $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
386                                 FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa
387                                 WHERE g.group_id = $group_id
388                     AND aa.group_id (+) = g.group_id
389                 ORDER BY aa.auth_mod DESC";
390                         break;
391
392                 default:
393                         $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
394                                 FROM ( " . GROUPS_TABLE . " g
395                                 LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id )
396                 WHERE g.group_id = $group_id
397                 ORDER BY aa.auth_mod DESC";
398                         break;
399         }
400         $result = $db->sql_query($sql);
401
402         if ( $group_info = $db->sql_fetchrow($result) )
403         {
404                 $group_moderator = $group_info['group_moderator'];
405
406                 if ( $group_moderator == $userdata['uid'] || $userdata['user_level'] == ADMIN )
407                 {
408                         $is_moderator = TRUE;
409                 }
410
411                 //
412                 // Handle Additions, removals, approvals and denials
413                 //
414                 if ( !empty($_POST['add']) || !empty($_POST['remove']) || isset($_POST['approve']) || isset($_POST['deny']) )
415                 {
416                         if ( !$userdata['session_logged_in'] )
417                         {
418                                 //redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id"));
419                                 loggedinorreturn();
420 //                                redirect(append_sid($root_path . "login.php?returnto=" . rawurlencode("phpbb2.$phpEx?page=groupcp&" . POST_GROUPS_URL . "=$group_id")));</span>
421 <span class="code-comment">                        }
422
423                         if ( !$is_moderator )
424                         {
425                                 meta_refresh(3, append_sid($root_path . "phpbb2.php?"));
426
427                                 //$message = $lang['not_group_moderator'] . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
428                                 $message = $lang['not_group_moderator'] . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
429
430                                 trigger_error($message);
431                                 return;
432                         }
433
434                         if ( isset($_POST['add']) )
435                         {
436                                 $username = ( isset($_POST['username']) ) ? phpbb_clean_username($_POST['username']) : '';
437
438                                 $sql = "SELECT uid, email, language, user_level
439                                         FROM " . USERS_TABLE . "
440                                         WHERE name = '" . str_replace("\'", "''", $username) . "'";
441                                 $result = $db->sql_query($sql);
442
443                                 if ( !($row = $db->sql_fetchrow($result)) )
444                                 {
445                                         meta_refresh(3, append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id"));
446
447                                         //$message = $lang['could_not_add_user'] . "<br /><br />" . sprintf($lang['click_return_group'], "<a href=\"" . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . "\">", "</a>") . "<br /><br />" . sprintf($lang['click_return_index'], "<a href=\"" . append_sid("index.$phpEx") . "\">", "</a>");
448                                         $message = $lang['could_not_add_user'] . "<br /><br />" . sprintf($lang['click_return_group'], "<a href=\"" . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . "\">", "</a>") . "<br /><br />" . sprintf($lang['click_return_index'], "<a href=\"" . append_sid($root_path . "phpbb2.php?") . "\">", "</a>");
449
450                                         trigger_error($message);
451                                         return;
452                                 }
453
454                                 if ( $row['uid'] == ANONYMOUS )
455                                 {
456                                         meta_refresh(3, append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id"));
457
458                                         //$message = $lang['could_not_anon_user'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
459                                         $message = $lang['could_not_anon_user'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
460
461                                         trigger_error($message);
462                                         return;
463                                 }
464
465                                 $sql = "SELECT ug.user_id, u.user_level
466                                         FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
467                                         WHERE u.uid = " . $row['uid'] . "
468                                                 AND ug.user_id = u.uid
469                                                 AND ug.group_id = $group_id";
470                                 $result = $db->sql_query($sql);
471
472                                 if ( !($db->sql_fetchrow($result)) )
473                                 {
474                                         $sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
475                                                 VALUES (" . $row['uid'] . ", $group_id, 0)";
476                                         $db->sql_query($sql);
477
478                                         if ( $row['user_level'] != ADMIN && $row['user_level'] != MOD && $group_info['auth_mod'] )
479                                         {
480                                                 $sql = "UPDATE " . USERS_TABLE . "
481                                                         SET user_level = " . MOD . "
482                                                         WHERE uid = " . $row['uid'];
483                                                 $db->sql_query($sql);
484                                         }
485
486                                         //
487                                         // Get the group name
488                                         // Email the user and tell them they're in the group
489                                         //
490                                         $group_sql = "SELECT group_name
491                                                 FROM " . GROUPS_TABLE . "
492                                                 WHERE group_id = $group_id";
493                                         $result = $db->sql_query($group_sql);
494
495                                         $group_name_row = $db->sql_fetchrow($result);
496
497                                         $group_name = $group_name_row['group_name'];
498                                 }
499                                 else
500                                 {
501                                         meta_refresh(3, append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id"));
502
503                                         //$message = $lang['user_is_member_group'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
504                                         $message = $lang['user_is_member_group'] . '<br /><br />' . sprintf($lang['click_return_group'], '<a href="' . append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_index'], '<a href="' . append_sid($root_path . "phpbb2.php?") . '">', '</a>');
505
506                                         trigger_error($message);
507                                         return;
508                                 }
509                         }
510                         else
511                         {
512                                 if ( ( ( isset($_POST['approve']) || isset($_POST['deny']) ) && isset($_POST['pending_members']) ) || ( isset($_POST['remove']) && isset($_POST['members']) ) )
513                                 {
514
515                                         $members = ( isset($_POST['approve']) || isset($_POST['deny']) ) ? $_POST['pending_members'] : $_POST['members'];
516
517                                         $sql_in = '';
518                                         for($i = 0; $i < count($members); $i++)
519                                         {
520                                                 $sql_in .= ( ( $sql_in != '' ) ? ', ' : '' ) . intval($members[$i]);
521                                         }
522
523                                         if ( isset($_POST['approve']) )
524                                         {
525                                                 if ( $group_info['auth_mod'] )
526                                                 {
527                                                         $sql = "UPDATE " . USERS_TABLE . "
528                                                                 SET user_level = " . MOD . "
529                                                                 WHERE uid IN ($sql_in)
530                                                                         AND user_level NOT IN (" . MOD . ", " . ADMIN . ")";
531                                                         $db->sql_query($sql);
532                                                 }
533
534                                                 $sql = "UPDATE " . USER_GROUP_TABLE . "
535                                                         SET user_pending = 0
536                                                         WHERE user_id IN ($sql_in)
537                                                                 AND group_id = $group_id";
538                                         }
539                                         else if ( isset($_POST['deny']) || isset($_POST['remove']) )
540                                         {
541                                                 if ( $group_info['auth_mod'] )
542                                                 {
543                                                         $sql = "SELECT ug.user_id, ug.group_id
544                                                                 FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug
545                                                                 WHERE ug.user_id IN  ($sql_in)
546                                                                         AND aa.group_id = ug.group_id
547                                                                         AND aa.auth_mod = 1
548                                                                 GROUP BY ug.user_id, ug.group_id
549                                                                 ORDER BY ug.user_id, ug.group_id";
550                                                         $result = $db->sql_query($sql);
551
552                                                         if ( $row = $db->sql_fetchrow($result) )
553                                                         {
554                                                                 $group_check = array();
555                                                                 $remove_mod_sql = '';
556
557                                                                 do
558                                                                 {
559                                                                         $group_check[$row['user_id']][] = $row['group_id'];
560                                                                 }
561                                                                 while ( $row = $db->sql_fetchrow($result) );
562
563                                                                 while( list($user_id, $group_list) = @each($group_check) )
564                                                                 {
565                                                                         if ( count($group_list) == 1 )
566                                                                         {
567                                                                                 $remove_mod_sql .= ( ( $remove_mod_sql != '' ) ? ', ' : '' ) . $user_id;
568                                                                         }
569                                                                 }
570
571                                                                 if ( $remove_mod_sql != '' )
572                                                                 {
573                                                                         $sql = "UPDATE " . USERS_TABLE . "
574                                                                                 SET user_level = " . USER . "
575                                                                                 WHERE uid IN ($remove_mod_sql)
576                                                                                         AND user_level NOT IN (" . ADMIN . ")";
577                                                                         $db->sql_query($sql);
578                                                                 }
579                                                         }
580                                                 }
581
582                                                 $sql = "DELETE FROM " . USER_GROUP_TABLE . "
583                                                         WHERE user_id IN ($sql_in)
584                                                                 AND group_id = $group_id";
585                                         }
586
587                                         $db->sql_query($sql);
588
589                                 }
590                         }
591                 }
592                 //
593                 // END approve or deny
594                 //
595         }
596         else
597         {
598                 trigger_error($lang['no_groups_exist']);
599                 return;
600         }
601
602         //
603         // Get group details
604         //
605         $sql = "SELECT *
606                 FROM " . GROUPS_TABLE . "
607                 WHERE group_id = $group_id
608                         AND group_single_user = 0";
609         $result = $db->sql_query($sql);
610
611         if ( !($group_info = $db->sql_fetchrow($result)) )
612         {
613                 trigger_error($lang['group_not_exist']);
614                 return;
615         }
616
617         //
618         // Get moderator details for this group
619         //
620         $sql = "SELECT u.name AS username, u.uid, u.user_posts, u.added, u.email, u.icq, u.aim, u.yahoo, u.msn, u.user_session_time, u.user_lastvisit, u.avatar
621                 FROM " . USERS_TABLE . " u
622                 WHERE u.uid = " . $group_info['group_moderator'];
623         $result = $db->sql_query($sql);
624
625         $group_moderator = $db->sql_fetchrow($result);
626
627         //
628         // Get user information for this group
629         //
630         $sql = "SELECT u.name AS username, u.uid, u.user_posts, u.added, u.email, u.icq, u.aim, u.yahoo, u.msn, ug.user_pending, u.user_session_time, u.user_lastvisit, u.avatar
631                 FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
632                 WHERE ug.group_id = $group_id
633                         AND u.uid = ug.user_id
634                         AND ug.user_pending = 0
635                         AND ug.user_id <> " . $group_moderator['uid'] . "
636                 ORDER BY u.name";
637         $result = $db->sql_query($sql);
638
639         $group_members = $db->sql_fetchrowset($result);
640         $members_count = count($group_members);
641         $db->sql_freeresult($result);
642
643         $sql = "SELECT u.name AS username, u.uid, u.user_posts, u.added, u.user_posts, u.email, u.icq, u.aim, u.yahoo, u.msn, u.user_session_time, u.user_lastvisit, u.avatar
644                 FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
645                 WHERE ug.group_id = $group_id
646                         AND g.group_id = ug.group_id
647                         AND ug.user_pending = 1
648                         AND u.uid = ug.user_id
649                 ORDER BY u.name";
650         $result = $db->sql_query($sql);
651
652         $modgroup_pending_list = $db->sql_fetchrowset($result);
653         $modgroup_pending_count = count($modgroup_pending_list);
654         $db->sql_freeresult($result);
655
656         $is_group_member = 0;
657         if ( $members_count )
658         {
659                 for($i = 0; $i < $members_count; $i++)
660                 {
661                         if ( $group_members[$i]['uid'] == $userdata['uid'] && $userdata['session_logged_in'] )
662                         {
663                                 $is_group_member = TRUE;
664                         }
665                 }
666         }
667
668         $is_group_pending_member = 0;
669         if ( $modgroup_pending_count )
670         {
671                 for($i = 0; $i < $modgroup_pending_count; $i++)
672                 {
673                         if ( $modgroup_pending_list[$i]['uid'] == $userdata['uid'] && $userdata['session_logged_in'] )
674                         {
675                                 $is_group_pending_member = TRUE;
676                         }
677                 }
678         }
679
680         if ( $userdata['user_level'] == ADMIN )
681         {
682                 $is_moderator = TRUE;
683         }
684
685         if ( $userdata['uid'] == $group_info['group_moderator'] )
686         {
687                 $is_moderator = TRUE;
688
689                 $group_details $lang['are_group_moderator'];
690
691                 $s_hidden_fields = '<input type="hidden" name="' . POST_GROUPS_URL . '" value="' . $group_id . '" />';
692         }
693         else if ( $is_group_member || $is_group_pending_member )
694         {
695                 $template->assign_block_vars('switch_unsubscribe_group_input', array());
696
697                 $group_details =  ( $is_group_pending_member ) ? $lang['pending_this_group'] : $lang['member_this_group'];
698
699                 $s_hidden_fields = '<input type="hidden" name="' . POST_GROUPS_URL . '" value="' . $group_id . '" />';
700         }
701         else if ( $userdata['uid'] == ANONYMOUS )
702         {
703                 $group_details $lang['login_to_join'];
704                 $s_hidden_fields = '';
705         }
706         else
707         {
708                 if ( $group_info['group_type'] == GROUP_OPEN )
709                 {
710                         $template->assign_block_vars('switch_subscribe_group_input', array());
711
712                         $group_details $lang['this_open_group'];
713                         $s_hidden_fields = '<input type="hidden" name="' . POST_GROUPS_URL . '" value="' . $group_id . '" />';
714                 }
715                 else if ( $group_info['group_type'] == GROUP_CLOSED )
716                 {
717                         $group_details $lang['this_closed_group'];
718                         $s_hidden_fields = '';
719                 }
720                 else if ( $group_info['group_type'] == GROUP_HIDDEN )
721                 {
722                         $group_details $lang['this_hidden_group'];
723                         $s_hidden_fields = '';
724                 }
725         }
726
727         stdhead($lang['forums'] . ' :: ' . $lang['group_control_panel'], false);
728
729         //
730         // Load templates
731         //
732         $template->set_filenames(array(
733                 'pendinginfo' => 'forum/groupcp_pending_info.tpl')
734         );
735         //make_jumpbox('viewforum.'.$phpEx);
736         make_jumpbox('phpbb2.php?page=viewforum');
737
738         //
739         // Add the moderator
740         //
741         $username = $group_moderator['username'];
742         $user_id = $group_moderator['uid'];
743
744         generate_user_info($group_moderator, $config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim, $userdata, $online_status_img, $online_status);
745
746         $s_hidden_fields .= '';
747
748         // www.phpBB-SEO.com SEO TOOLKIT BEGIN
749         $seo->set_user_url($username, $user_id);
750         // www.phpBB-SEO.com SEO TOOLKIT END
751
752         $template->assign_vars(array(
753                 'GROUP_NAME' => $group_info['group_name'],
754                 'GROUP_DESC' => $group_info['group_description'],
755                 'GROUP_DETAILS' => $group_details,
756                 'MOD_ROW_COLOR' => '#' . $theme['td_color1'],
757                 'MOD_ROW_CLASS' => $theme['td_class1'],
758                 'MOD_USERNAME' => $username,
759                 'MOD_FROM' => $from,
760                 'MOD_JOINED' => $joined,
761                 'MOD_POSTS' => $posts,
762                 'MOD_AVATAR_IMG' => $poster_avatar,
763                 'MOD_PROFILE_IMG' => $profile_img,
764                 'MOD_PROFILE' => $profile,
765                 'MOD_SEARCH_IMG' => $search_img,
766                 'MOD_SEARCH' => $search,
767                 'MOD_PM_IMG' => $pm_img,
768                 'MOD_PM' => $pm,
769                 'MOD_EMAIL_IMG' => $email_img,
770                 'MOD_EMAIL' => $email,
771                 'MOD_WWW_IMG' => $www_img,
772                 'MOD_WWW' => $www,
773                 'MOD_ICQ_STATUS_IMG' => $icq_status_img,
774                 'MOD_ICQ_IMG' => $icq_img,
775                 'MOD_ICQ' => $icq,
776                 'MOD_AIM_IMG' => $aim_img,
777                 'MOD_AIM' => $aim,
778                 'MOD_MSN_IMG' => $msn_img,
779                 'MOD_MSN' => $msn,
780                 'MOD_YIM_IMG' => $yim_img,
781                 'MOD_YIM' => $yim,
782                 // Start add - Online/Offline/Hidden Mod
783                 'MOD_ONLINE_STATUS_IMG' => $online_status_img,
784                 'MOD_ONLINE_STATUS' => $online_status,
785                 // End add - Online/Offline/Hidden Mod
786
787                 //'U_MOD_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$user_id"),
788                 'U_MOD_VIEWPROFILE' => append_sid($root_path . "userdetails.php?id=$user_id"),
789                 // FIXME:
790                 //'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"),
791                 'U_SEARCH_USER' => append_sid($root_path . "phpbb2.php?page=search&mode=searchuser"),
792
793                 'S_GROUP_OPEN_TYPE' => GROUP_OPEN,
794                 'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED,
795                 'S_GROUP_HIDDEN_TYPE' => GROUP_HIDDEN,
796                 'S_GROUP_OPEN_CHECKED' => ( $group_info['group_type'] == GROUP_OPEN ) ? ' checked="checked"' : '',
797                 'S_GROUP_CLOSED_CHECKED' => ( $group_info['group_type'] == GROUP_CLOSED ) ? ' checked="checked"' : '',
798                 'S_GROUP_HIDDEN_CHECKED' => ( $group_info['group_type'] == GROUP_HIDDEN ) ? ' checked="checked"' : '',
799                 'S_HIDDEN_FIELDS' => $s_hidden_fields,
800                 //'S_GROUPCP_ACTION' => append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id"))
801                 'S_GROUPCP_ACTION' => append_sid($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id"))
802         );
803
804         //
805         // Dump out the remaining users
806         //
807         for($i = $start; $i < min($config['topics_per_page'] + $start, $members_count); $i++)
808         {
809                 $username = $group_members[$i]['username'];
810                 $user_id = $group_members[$i]['uid'];
811
812             // www.phpBB-SEO.com SEO TOOLKIT BEGIN
813             $seo->set_user_url($username, $user_id);
814             // www.phpBB-SEO.com SEO TOOLKIT END
815
816                 generate_user_info($group_members[$i], $config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim, $userdata, $online_status_img, $online_status);
817
818                 if ( $group_info['group_type'] != GROUP_HIDDEN || $is_group_member || $is_moderator )
819                 {
820                         $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
821                         $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
822
823                         $template->assign_block_vars('member_row', array(
824                                 'ROW_COLOR' => '#' . $row_color,
825                                 'ROW_CLASS' => $row_class,
826                                 'USERNAME' => $username,
827                                 'FROM' => $from,
828                                 'JOINED' => $joined,
829                                 'POSTS' => $posts,
830                                 'USER_ID' => $user_id,
831                                 'AVATAR_IMG' => $poster_avatar,
832                                 'PROFILE_IMG' => $profile_img,
833                                 'PROFILE' => $profile,
834                                 'SEARCH_IMG' => $search_img,
835                                 'SEARCH' => $search,
836                                 'PM_IMG' => $pm_img,
837                                 'PM' => $pm,
838                                 'EMAIL_IMG' => $email_img,
839                                 'EMAIL' => $email,
840                                 'WWW_IMG' => $www_img,
841                                 'WWW' => $www,
842                                 'ICQ_STATUS_IMG' => $icq_status_img,
843                                 'ICQ_IMG' => $icq_img,
844                                 'ICQ' => $icq,
845                                 'AIM_IMG' => $aim_img,
846                                 'AIM' => $aim,
847                                 'MSN_IMG' => $msn_img,
848                                 'MSN' => $msn,
849                                 'YIM_IMG' => $yim_img,
850                                 'YIM' => $yim,
851                                 // Start add - Online/Offline/Hidden Mod
852                                 'ONLINE_STATUS_IMG' => $online_status_img,
853                                 'ONLINE_STATUS' => $online_status,
854                                 // End add - Online/Offline/Hidden Mod
855
856                                 //'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$user_id"))
857                                 'U_VIEWPROFILE' => append_sid($root_path . "userdetails.php?id=$user_id"))
858                         );
859
860                         if ( $is_moderator )
861                         {
862                                 $template->assign_block_vars('member_row.switch_mod_option', array());
863                         }
864                 }
865         }
866
867         if ( !$members_count )
868         {
869                 //
870                 // No group members
871                 //
872                 $template->assign_block_vars('switch_no_members', array());
873         }
874
875         $current_page = ( !$members_count ) ? 1 : ceil( $members_count / $config['topics_per_page'] );
876
877         $template->assign_vars(array(
878                 //'PAGINATION' => generate_pagination("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id", $members_count, $config['topics_per_page'], $start),
879                 'PAGINATION' => generate_pagination($root_path . "phpbb2.php?page=groupcp&" . POST_GROUPS_URL . "=$group_id", $members_count, $config['topics_per_page'], $start),
880                 'PAGE_NUMBER' => sprintf($lang['page_of'], ( floor( $start / $config['topics_per_page'] ) + 1 ), $current_page ))
881         );
882
883         if ( $group_info['group_type'] == GROUP_HIDDEN && !$is_group_member && !$is_moderator )
884         {
885                 //
886                 // No group members
887                 //
888                 $template->assign_block_vars('switch_hidden_group', array());
889         }
890
891         //
892         // We've displayed the members who belong to the group, now we
893         // do that pending memebers...
894         //
895         if ( $is_moderator )
896         {
897                 //
898                 // Users pending in ONLY THIS GROUP (which is moderated by this user)
899                 //
900                 if ( $modgroup_pending_count )
901                 {
902                         for($i = 0; $i < $modgroup_pending_count; $i++)
903                         {
904                                 $username = $modgroup_pending_list[$i]['username'];
905                                 $user_id = $modgroup_pending_list[$i]['user_id'];
906
907                                 generate_user_info($modgroup_pending_list[$i], $config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim, $userdata, $online_status_img, $online_status);
908
909                                 $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
910                                 $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
911
912                                 $user_select = '<input type="checkbox" name="member[]" value="' . $user_id . '">';
913
914                         // www.phpBB-SEO.com SEO TOOLKIT BEGIN
915                         $seo->set_user_url($username, $user_id);
916                         // www.phpBB-SEO.com SEO TOOLKIT END
917
918                                 $template->assign_block_vars('pending_members_row', array(
919                                         'ROW_CLASS' => $row_class,
920                                         'ROW_COLOR' => '#' . $row_color,
921                                         'USERNAME' => $username,
922                                         'FROM' => $from,
923                                         'JOINED' => $joined,
924                                         'POSTS' => $posts,
925                                         'USER_ID' => $user_id,
926                                         'AVATAR_IMG' => $poster_avatar,
927                                         'PROFILE_IMG' => $profile_img,
928                                         'PROFILE' => $profile,
929                                         'SEARCH_IMG' => $search_img,
930                                         'SEARCH' => $search,
931                                         'PM_IMG' => $pm_img,
932                                         'PM' => $pm,
933                                         'EMAIL_IMG' => $email_img,
934                                         'EMAIL' => $email,
935                                         'WWW_IMG' => $www_img,
936                                         'WWW' => $www,
937                                         'ICQ_STATUS_IMG' => $icq_status_img,
938                                         'ICQ_IMG' => $icq_img,
939                                         'ICQ' => $icq,
940                                         'AIM_IMG' => $aim_img,
941                                         'AIM' => $aim,
942                                         'MSN_IMG' => $msn_img,
943                                         'MSN' => $msn,
944                                         'YIM_IMG' => $yim_img,
945                                         'YIM' => $yim,
946                                         // Start add - Online/Offline/Hidden Mod
947                                         'ONLINE_STATUS_IMG' => $online_status_img,
948                                         'ONLINE_STATUS' => $online_status,
949                                         // End add - Online/Offline/Hidden Mod
950
951                                         //'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$user_id"))
952                                         'U_VIEWPROFILE' => append_sid($root_path . "userdetails.php?id=$user_id"))
953                                 );
954                         }
955
956                         $template->assign_block_vars('switch_pending_members', array() );
957
958                         $tpl = $template->assign_display('pendinginfo');
959                         $template->assign_vars(array(
960                                 'PENDING_USER_BOX' => $tpl)
961                         );
962
963                 }
964         }
965
966         if ( $is_moderator )
967         {
968                 $template->assign_block_vars('switch_mod_option', array());
969                 $template->assign_block_vars('switch_add_member', array());
970         }
971
972         $template->set_filenames(array(
973                 'body' => 'forum/groupcp_info_body.tpl')
974         );
975 }
976 else
977 {
978         //
979         // Show the main groupcp.php screen where the user can select a group.
980         //
981         // Select all group that the user is a member of or where the user has
982         // a pending membership.
983         //
984         $in_group = array();
985
986         if ( $userdata['session_logged_in'] )
987         {
988                 $sql = "SELECT g.group_id, g.group_name, g.group_type, ug.user_pending
989                         FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
990                         WHERE ug.user_id = " . $userdata['uid'] . "
991                                 AND ug.group_id = g.group_id
992                                 AND g.group_single_user <> " . TRUE . "
993                         ORDER BY g.group_name, ug.user_id";
994                 $result = $db->sql_query($sql);
995
996                 if ( $row = $db->sql_fetchrow($result) )
997                 {
998                         $in_group = array();
999                         $s_member_groups_opt = '';
1000                         $s_pending_groups_opt = '';
1001
1002                         do
1003                         {
1004                                 $in_group[] = $row['group_id'];
1005                                 if ( $row['user_pending'] )
1006                                 {
1007                                         $s_pending_groups_opt .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
1008                                 }
1009                                 else
1010                                 {
1011                                         $s_member_groups_opt .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
1012                                 }
1013                         }
1014                         while( $row = $db->sql_fetchrow($result) );
1015
1016                         $s_pending_groups = '<select name="' . POST_GROUPS_URL . '">' . $s_pending_groups_opt . "</select>";
1017                         $s_member_groups = '<select name="' . POST_GROUPS_URL . '">' . $s_member_groups_opt . "</select>";
1018                 }
1019         }
1020
1021         //
1022         // Select all other groups i.e. groups that this user is not a member of
1023         //
1024         $ignore_group_sql =        ( count($in_group) ) ? "AND group_id NOT IN (" . implode(', ', $in_group) . ")" : '';
1025         $sql = "SELECT group_id, group_name, group_type
1026                 FROM " . GROUPS_TABLE . " g
1027                 WHERE group_single_user <> " . TRUE . "
1028                         $ignore_group_sql
1029                 ORDER BY g.group_name";
1030         $result = $db->sql_query($sql);
1031
1032         $s_group_list_opt = '';
1033         while( $row = $db->sql_fetchrow($result) )
1034         {
1035                 if  ( $row['group_type'] != GROUP_HIDDEN || $userdata['user_level'] == ADMIN )
1036                 {
1037                         $s_group_list_opt .='<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
1038                 }
1039         }
1040         $s_group_list = '<select name="' . POST_GROUPS_URL . '">' . $s_group_list_opt . '</select>';
1041
1042         if ( $s_group_list_opt != '' || $s_pending_groups_opt != '' || $s_member_groups_opt != '' )
1043         {
1044                 //
1045                 // Load and process templates
1046                 //
1047                 stdhead($lang['forums'] . ' :: ' . $lang['group_control_panel'], false);
1048
1049                 //make_jumpbox('viewforum.'.$phpEx);
1050                 make_jumpbox('phpbb2.php?page=viewforum');
1051
1052                 if ( $s_pending_groups_opt != '' || $s_member_groups_opt != '' )
1053                 {
1054                         $template->assign_block_vars('switch_groups_joined', array() );
1055                 }
1056
1057                 if ( $s_member_groups_opt != '' )
1058                 {
1059                         $template->assign_block_vars('switch_groups_joined.switch_groups_member', array() );
1060                 }
1061
1062                 if ( $s_pending_groups_opt != '' )
1063                 {
1064                         $template->assign_block_vars('switch_groups_joined.switch_groups_pending', array() );
1065                 }
1066
1067                 if ( $s_group_list_opt != '' )
1068                 {
1069                         $template->assign_block_vars('switch_groups_remaining', array() );
1070                 }
1071
1072                 $s_hidden_fields = '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
1073
1074                 $template->assign_vars(array(
1075                         'S_USERGROUP_ACTION' => append_sid($root_path . 'phpbb2.php?'),
1076                         //'S_HIDDEN_FIELDS' => $s_hidden_fields,
1077                         'S_HIDDEN_FIELDS' => '<input type="hidden" name="option" value="com_forum"><input type="hidden" name="page" value="groupcp">',
1078
1079
1080                         'GROUP_LIST_SELECT' => $s_group_list,
1081                         'GROUP_PENDING_SELECT' => $s_pending_groups,
1082                         'GROUP_MEMBER_SELECT' => $s_member_groups)
1083                 );
1084
1085                 $template->set_filenames(array(
1086                         'body' => 'forum/groupcp_user_body.tpl')
1087                 );
1088         }
1089         else
1090         {
1091                 trigger_error($lang['no_groups_exist']);
1092                 return;
1093         }
1094
1095 }
1096
1097 return;
1098
1099 ?>
Note: See TracBrowser for help on using the browser.