(file) Return to admin_forumauth.php CVS log (file) (dir) Up to [RizwankCVS] / geekymedia_web / phpBB2 / admin

  1 rizwank 1.1 <?php
  2             /***************************************************************************
  3              *                            admin_forumauth.php
  4              *                            -------------------
  5              *   begin                : Saturday, Feb 13, 2001
  6              *   copyright            : (C) 2001 The phpBB Group
  7              *   email                : support@phpbb.com
  8              *
  9              *   $Id: admin_forumauth.php,v 1.23.2.4 2002/05/21 16:52:08 psotfx 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 rizwank 1.1 
 23             define('IN_PHPBB', 1);
 24             
 25             if( !empty($setmodules) )
 26             {
 27             	$filename = basename(__FILE__);
 28             	$module['Forums']['Permissions']   = $filename;
 29             
 30             	return;
 31             }
 32             
 33             //
 34             // Load default header
 35             //
 36             $no_page_header = TRUE;
 37             $phpbb_root_path = './../';
 38             require($phpbb_root_path . 'extension.inc');
 39             require('./pagestart.' . $phpEx);
 40             
 41             //
 42             // Start program - define vars
 43 rizwank 1.1 //
 44             //                View      Read      Post      Reply     Edit     Delete    Sticky   Announce    Vote      Poll
 45             $simple_auth_ary = array(
 46             	0  => array(AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
 47             	1  => array(AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
 48             	2  => array(AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
 49             	3  => array(AUTH_ALL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL),
 50             	4  => array(AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL),
 51             	5  => array(AUTH_ALL, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
 52             	6  => array(AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
 53             );
 54             
 55             $simple_auth_types = array($lang['Public'], $lang['Registered'], $lang['Registered'] . ' [' . $lang['Hidden'] . ']', $lang['Private'], $lang['Private'] . ' [' . $lang['Hidden'] . ']', $lang['Moderators'], $lang['Moderators'] . ' [' . $lang['Hidden'] . ']');
 56             
 57             $forum_auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate');
 58             
 59             $field_names = array(
 60             	'auth_view' => $lang['View'],
 61             	'auth_read' => $lang['Read'],
 62             	'auth_post' => $lang['Post'],
 63             	'auth_reply' => $lang['Reply'],
 64 rizwank 1.1 	'auth_edit' => $lang['Edit'],
 65             	'auth_delete' => $lang['Delete'],
 66             	'auth_sticky' => $lang['Sticky'],
 67             	'auth_announce' => $lang['Announce'], 
 68             	'auth_vote' => $lang['Vote'], 
 69             	'auth_pollcreate' => $lang['Pollcreate']);
 70             
 71             $forum_auth_levels = array('ALL', 'REG', 'PRIVATE', 'MOD', 'ADMIN');
 72             $forum_auth_const = array(AUTH_ALL, AUTH_REG, AUTH_ACL, AUTH_MOD, AUTH_ADMIN);
 73             
 74             if(isset($HTTP_GET_VARS[POST_FORUM_URL]) || isset($HTTP_POST_VARS[POST_FORUM_URL]))
 75             {
 76             	$forum_id = (isset($HTTP_POST_VARS[POST_FORUM_URL])) ? intval($HTTP_POST_VARS[POST_FORUM_URL]) : intval($HTTP_GET_VARS[POST_FORUM_URL]);
 77             	$forum_sql = "AND forum_id = $forum_id";
 78             }
 79             else
 80             {
 81             	unset($forum_id);
 82             	$forum_sql = '';
 83             }
 84             
 85 rizwank 1.1 if( isset($HTTP_GET_VARS['adv']) )
 86             {
 87             	$adv = intval($HTTP_GET_VARS['adv']);
 88             }
 89             else
 90             {
 91             	unset($adv);
 92             }
 93             
 94             //
 95             // Start program proper
 96             //
 97             if( isset($HTTP_POST_VARS['submit']) )
 98             {
 99             	$sql = '';
100             
101             	if(!empty($forum_id))
102             	{
103             		if(isset($HTTP_POST_VARS['simpleauth']))
104             		{
105             			$simple_ary = $simple_auth_ary[$HTTP_POST_VARS['simpleauth']];
106 rizwank 1.1 
107             			for($i = 0; $i < count($simple_ary); $i++)
108             			{
109             				$sql .= ( ( $sql != '' ) ? ', ' : '' ) . $forum_auth_fields[$i] . ' = ' . $simple_ary[$i];
110             			}
111             
112             			$sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id";
113             		}
114             		else
115             		{
116             			for($i = 0; $i < count($forum_auth_fields); $i++)
117             			{
118             				$value = $HTTP_POST_VARS[$forum_auth_fields[$i]];
119             
120             				if ( $forum_auth_fields[$i] == 'auth_vote' )
121             				{
122             					if ( $HTTP_POST_VARS['auth_vote'] == AUTH_ALL )
123             					{
124             						$value = AUTH_REG;
125             					}
126             				}
127 rizwank 1.1 
128             				$sql .= ( ( $sql != '' ) ? ', ' : '' ) .$forum_auth_fields[$i] . ' = ' . $value;
129             			}
130             
131             			$sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id";
132             		}
133             
134             		if ( $sql != '' )
135             		{
136             			if ( !$db->sql_query($sql) )
137             			{
138             				message_die(GENERAL_ERROR, 'Could not update auth table', '', __LINE__, __FILE__, $sql);
139             			}
140             		}
141             
142             		$forum_sql = '';
143             		$adv = 0;
144             	}
145             
146             	$template->assign_vars(array(
147             		'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("admin_forumauth.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">')
148 rizwank 1.1 	);
149             	$message = $lang['Forum_auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_forumauth'],  '<a href="' . append_sid("admin_forumauth.$phpEx") . '">', "</a>");
150             	message_die(GENERAL_MESSAGE, $message);
151             
152             } // End of submit
153             
154             //
155             // Get required information, either all forums if
156             // no id was specified or just the requsted if it
157             // was
158             //
159             $sql = "SELECT f.*
160             	FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c
161             	WHERE c.cat_id = f.cat_id
162             	$forum_sql
163             	ORDER BY c.cat_order ASC, f.forum_order ASC";
164             if ( !($result = $db->sql_query($sql)) )
165             {
166             	message_die(GENERAL_ERROR, "Couldn't obtain forum list", "", __LINE__, __FILE__, $sql);
167             }
168             
169 rizwank 1.1 $forum_rows = $db->sql_fetchrowset($result);
170             $db->sql_freeresult($result);
171             
172             if( empty($forum_id) )
173             {
174             	//
175             	// Output the selection table if no forum id was
176             	// specified
177             	//
178             	$template->set_filenames(array(
179             		'body' => 'admin/auth_select_body.tpl')
180             	);
181             
182             	$select_list = '<select name="' . POST_FORUM_URL . '">';
183             	for($i = 0; $i < count($forum_rows); $i++)
184             	{
185             		$select_list .= '<option value="' . $forum_rows[$i]['forum_id'] . '">' . $forum_rows[$i]['forum_name'] . '</option>';
186             	}
187             	$select_list .= '</select>';
188             
189             	$template->assign_vars(array(
190 rizwank 1.1 		'L_AUTH_TITLE' => $lang['Auth_Control_Forum'],
191             		'L_AUTH_EXPLAIN' => $lang['Forum_auth_explain'],
192             		'L_AUTH_SELECT' => $lang['Select_a_Forum'],
193             		'L_LOOK_UP' => $lang['Look_up_Forum'],
194             
195             		'S_AUTH_ACTION' => append_sid("admin_forumauth.$phpEx"),
196             		'S_AUTH_SELECT' => $select_list)
197             	);
198             
199             }
200             else
201             {
202             	//
203             	// Output the authorisation details if an id was
204             	// specified
205             	//
206             	$template->set_filenames(array(
207             		'body' => 'admin/auth_forum_body.tpl')
208             	);
209             
210             	$forum_name = $forum_rows[0]['forum_name'];
211 rizwank 1.1 
212             	@reset($simple_auth_ary);
213             	while( list($key, $auth_levels) = each($simple_auth_ary))
214             	{
215             		$matched = 1;
216             		for($k = 0; $k < count($auth_levels); $k++)
217             		{
218             			$matched_type = $key;
219             
220             			if ( $forum_rows[0][$forum_auth_fields[$k]] != $auth_levels[$k] )
221             			{
222             				$matched = 0;
223             			}
224             		}
225             
226             		if ( $matched )
227             		{
228             			break;
229             		}
230             	}
231             
232 rizwank 1.1 	//
233             	// If we didn't get a match above then we
234             	// automatically switch into 'advanced' mode
235             	//
236             	if ( !isset($adv) && !$matched )
237             	{
238             		$adv = 1;
239             	}
240             
241             	$s_column_span == 0;
242             
243             	if ( empty($adv) )
244             	{
245             		$simple_auth = '<select name="simpleauth">';
246             
247             		for($j = 0; $j < count($simple_auth_types); $j++)
248             		{
249             			$selected = ( $matched_type == $j ) ? ' selected="selected"' : '';
250             			$simple_auth .= '<option value="' . $j . '"' . $selected . '>' . $simple_auth_types[$j] . '</option>';
251             		}
252             
253 rizwank 1.1 		$simple_auth .= '</select>';
254             
255             		$template->assign_block_vars('forum_auth_titles', array(
256             			'CELL_TITLE' => $lang['Simple_mode'])
257             		);
258             		$template->assign_block_vars('forum_auth_data', array(
259             			'S_AUTH_LEVELS_SELECT' => $simple_auth)
260             		);
261             
262             		$s_column_span++;
263             	}
264             	else
265             	{
266             		//
267             		// Output values of individual
268             		// fields
269             		//
270             		for($j = 0; $j < count($forum_auth_fields); $j++)
271             		{
272             			$custom_auth[$j] = '&nbsp;<select name="' . $forum_auth_fields[$j] . '">';
273             
274 rizwank 1.1 			for($k = 0; $k < count($forum_auth_levels); $k++)
275             			{
276             				$selected = ( $forum_rows[0][$forum_auth_fields[$j]] == $forum_auth_const[$k] ) ? ' selected="selected"' : '';
277             				$custom_auth[$j] .= '<option value="' . $forum_auth_const[$k] . '"' . $selected . '>' . $lang['Forum_' . $forum_auth_levels[$k]] . '</option>';
278             			}
279             			$custom_auth[$j] .= '</select>&nbsp;';
280             
281             			$cell_title = $field_names[$forum_auth_fields[$j]];
282             
283             			$template->assign_block_vars('forum_auth_titles', array(
284             				'CELL_TITLE' => $cell_title)
285             			);
286             			$template->assign_block_vars('forum_auth_data', array(
287             				'S_AUTH_LEVELS_SELECT' => $custom_auth[$j])
288             			);
289             
290             			$s_column_span++;
291             		}
292             	}
293             
294             	$adv_mode = ( empty($adv) ) ? '1' : '0';
295 rizwank 1.1 	$switch_mode = append_sid("admin_forumauth.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&adv=". $adv_mode);
296             	$switch_mode_text = ( empty($adv) ) ? $lang['Advanced_mode'] : $lang['Simple_mode'];
297             	$u_switch_mode = '<a href="' . $switch_mode . '">' . $switch_mode_text . '</a>';
298             
299             	$s_hidden_fields = '<input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '">';
300             
301             	$template->assign_vars(array(
302             		'FORUM_NAME' => $forum_name,
303             
304             		'L_FORUM' => $lang['Forum'], 
305             		'L_AUTH_TITLE' => $lang['Auth_Control_Forum'],
306             		'L_AUTH_EXPLAIN' => $lang['Forum_auth_explain'],
307             		'L_SUBMIT' => $lang['Submit'],
308             		'L_RESET' => $lang['Reset'],
309             
310             		'U_SWITCH_MODE' => $u_switch_mode,
311             
312             		'S_FORUMAUTH_ACTION' => append_sid("admin_forumauth.$phpEx"),
313             		'S_COLUMN_SPAN' => $s_column_span,
314             		'S_HIDDEN_FIELDS' => $s_hidden_fields)
315             	);
316 rizwank 1.1 
317             }
318             
319             include('./page_header_admin.'.$phpEx);
320             
321             $template->pparse('body');
322             
323             include('./page_footer_admin.'.$phpEx);
324             
325             ?>

Rizwan Kassim
Powered by
ViewCVS 0.9.2