Verzeichnisstruktur phpBB-2.0.0


Veröffentlicht
03.04.2002

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

admin_forumauth.php

Zuletzt modifiziert: 09.10.2024, 12:51 - Dateigröße: 9.21 KiB


001  <?php
002  /***************************************************************************
003   *                            admin_forumauth.php
004   *                            -------------------
005   *   begin                : Saturday, Feb 13, 2001
006   *   copyright            : (C) 2001 The phpBB Group
007   *   email                : support@phpbb.com
008   *
009   *   $Id$
010   *
011   *
012   ***************************************************************************/
013   
014  /***************************************************************************
015   *
016   *   This program is free software; you can redistribute it and/or modify
017   *   it under the terms of the GNU General Public License as published by
018   *   the Free Software Foundation; either version 2 of the License, or
019   *   (at your option) any later version.
020   *
021   ***************************************************************************/
022   
023  define('IN_PHPBB', 1);
024   
025  if( !empty($setmodules) )
026  {
027      $filename = basename(__FILE__);
028      $module['Forums']['Permissions']   = $filename;
029   
030      return;
031  }
032   
033  //
034  // Load default header
035  //
036  $no_page_header = TRUE;
037  $phpbb_root_path = './../';
038  require($phpbb_root_path . 'extension.inc');
039  require('./pagestart.' . $phpEx);
040   
041  //
042  // Start program - define vars
043  //
044  //                View      Read      Post      Reply     Edit     Delete    Sticky   Announce    Vote      Poll
045  $simple_auth_ary = array(
046      0  => array(AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
047      1  => array(AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
048      2  => array(AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
049      3  => array(AUTH_ALL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL),
050      4  => array(AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL),
051      5  => array(AUTH_ALL, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
052      6  => array(AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
053  );
054   
055  $simple_auth_types = array($lang['Public'], $lang['Registered'], $lang['Registered'] . ' [' . $lang['Hidden'] . ']', $lang['Private'], $lang['Private'] . ' [' . $lang['Hidden'] . ']', $lang['Moderators'], $lang['Moderators'] . ' [' . $lang['Hidden'] . ']');
056   
057  $forum_auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate');
058   
059  $field_names = array(
060      'auth_view' => $lang['View'],
061      'auth_read' => $lang['Read'],
062      'auth_post' => $lang['Post'],
063      'auth_reply' => $lang['Reply'],
064      'auth_edit' => $lang['Edit'],
065      'auth_delete' => $lang['Delete'],
066      'auth_sticky' => $lang['Sticky'],
067      'auth_announce' => $lang['Announce'], 
068      'auth_vote' => $lang['Vote'], 
069      'auth_pollcreate' => $lang['Pollcreate']);
070   
071  $forum_auth_levels = array('ALL', 'REG', 'PRIVATE', 'MOD', 'ADMIN');
072  $forum_auth_const = array(AUTH_ALL, AUTH_REG, AUTH_ACL, AUTH_MOD, AUTH_ADMIN);
073   
074  if(isset($HTTP_GET_VARS[POST_FORUM_URL]) || isset($HTTP_POST_VARS[POST_FORUM_URL]))
075  {
076      $forum_id = (isset($HTTP_POST_VARS[POST_FORUM_URL])) ? intval($HTTP_POST_VARS[POST_FORUM_URL]) : intval($HTTP_GET_VARS[POST_FORUM_URL]);
077      $forum_sql = "AND forum_id = $forum_id";
078  }
079  else
080  {
081      unset($forum_id);
082      $forum_sql = '';
083  }
084   
085  if( isset($HTTP_GET_VARS['adv']) )
086  {
087      $adv = intval($HTTP_GET_VARS['adv']);
088  }
089  else
090  {
091      unset($adv);
092  }
093   
094  //
095  // Start program proper
096  //
097  if( isset($HTTP_POST_VARS['submit']) )
098  {
099      $sql = '';
100   
101      if(!empty($forum_id))
102      {
103          if(isset($HTTP_POST_VARS['simpleauth']))
104          {
105              $simple_ary = $simple_auth_ary[intval($HTTP_POST_VARS['simpleauth'])];
106   
107              for($i = 0; $i < count($simple_ary); $i++)
108              {
109                  $sql .= ( ( $sql != '' ) ? ', ' : '' ) . $forum_auth_fields[$i] . ' = ' . $simple_ary[$i];
110              }
111   
112              if (is_array($simple_ary))
113              {
114                  $sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id";
115              }
116          }
117          else
118          {
119              for($i = 0; $i < count($forum_auth_fields); $i++)
120              {
121                  $value = intval($HTTP_POST_VARS[$forum_auth_fields[$i]]);
122   
123                  if ( $forum_auth_fields[$i] == 'auth_vote' )
124                  {
125                      if ( $HTTP_POST_VARS['auth_vote'] == AUTH_ALL )
126                      {
127                          $value = AUTH_REG;
128                      }
129                  }
130   
131                  $sql .= ( ( $sql != '' ) ? ', ' : '' ) .$forum_auth_fields[$i] . ' = ' . $value;
132              }
133   
134              $sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id";
135          }
136   
137          if ( $sql != '' )
138          {
139              if ( !$db->sql_query($sql) )
140              {
141                  message_die(GENERAL_ERROR, 'Could not update auth table', '', __LINE__, __FILE__, $sql);
142              }
143          }
144   
145          $forum_sql = '';
146          $adv = 0;
147      }
148   
149      $template->assign_vars(array(
150          'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("admin_forumauth.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">')
151      );
152      $message = $lang['Forum_auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_forumauth'],  '<a href="' . append_sid("admin_forumauth.$phpEx") . '">', "</a>");
153      message_die(GENERAL_MESSAGE, $message);
154   
155  } // End of submit
156   
157  //
158  // Get required information, either all forums if
159  // no id was specified or just the requsted if it
160  // was
161  //
162  $sql = "SELECT f.*
163      FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c
164      WHERE c.cat_id = f.cat_id
165      $forum_sql
166      ORDER BY c.cat_order ASC, f.forum_order ASC";
167  if ( !($result = $db->sql_query($sql)) )
168  {
169      message_die(GENERAL_ERROR, "Couldn't obtain forum list", "", __LINE__, __FILE__, $sql);
170  }
171   
172  $forum_rows = $db->sql_fetchrowset($result);
173  $db->sql_freeresult($result);
174   
175  if( empty($forum_id) )
176  {
177      //
178      // Output the selection table if no forum id was
179      // specified
180      //
181      $template->set_filenames(array(
182          'body' => 'admin/auth_select_body.tpl')
183      );
184   
185      $select_list = '<select name="' . POST_FORUM_URL . '">';
186      for($i = 0; $i < count($forum_rows); $i++)
187      {
188          $select_list .= '<option value="' . $forum_rows[$i]['forum_id'] . '">' . $forum_rows[$i]['forum_name'] . '</option>';
189      }
190      $select_list .= '</select>';
191   
192      $template->assign_vars(array(
193          'L_AUTH_TITLE' => $lang['Auth_Control_Forum'],
194          'L_AUTH_EXPLAIN' => $lang['Forum_auth_explain'],
195          'L_AUTH_SELECT' => $lang['Select_a_Forum'],
196          'L_LOOK_UP' => $lang['Look_up_Forum'],
197   
198          'S_AUTH_ACTION' => append_sid("admin_forumauth.$phpEx"),
199          'S_AUTH_SELECT' => $select_list)
200      );
201   
202  }
203  else
204  {
205      //
206      // Output the authorisation details if an id was
207      // specified
208      //
209      $template->set_filenames(array(
210          'body' => 'admin/auth_forum_body.tpl')
211      );
212   
213      $forum_name = $forum_rows[0]['forum_name'];
214   
215      @reset($simple_auth_ary);
216      while( list($key, $auth_levels) = each($simple_auth_ary))
217      {
218          $matched = 1;
219          for($k = 0; $k < count($auth_levels); $k++)
220          {
221              $matched_type = $key;
222   
223              if ( $forum_rows[0][$forum_auth_fields[$k]] != $auth_levels[$k] )
224              {
225                  $matched = 0;
226              }
227          }
228   
229          if ( $matched )
230          {
231              break;
232          }
233      }
234   
235      //
236      // If we didn't get a match above then we
237      // automatically switch into 'advanced' mode
238      //
239      if ( !isset($adv) && !$matched )
240      {
241          $adv = 1;
242      }
243   
244      $s_column_span == 0;
245   
246      if ( empty($adv) )
247      {
248          $simple_auth = '<select name="simpleauth">';
249   
250          for($j = 0; $j < count($simple_auth_types); $j++)
251          {
252              $selected = ( $matched_type == $j ) ? ' selected="selected"' : '';
253              $simple_auth .= '<option value="' . $j . '"' . $selected . '>' . $simple_auth_types[$j] . '</option>';
254          }
255   
256          $simple_auth .= '</select>';
257   
258          $template->assign_block_vars('forum_auth_titles', array(
259              'CELL_TITLE' => $lang['Simple_mode'])
260          );
261          $template->assign_block_vars('forum_auth_data', array(
262              'S_AUTH_LEVELS_SELECT' => $simple_auth)
263          );
264   
265          $s_column_span++;
266      }
267      else
268      {
269          //
270          // Output values of individual
271          // fields
272          //
273          for($j = 0; $j < count($forum_auth_fields); $j++)
274          {
275              $custom_auth[$j] = '&nbsp;<select name="' . $forum_auth_fields[$j] . '">';
276   
277              for($k = 0; $k < count($forum_auth_levels); $k++)
278              {
279                  $selected = ( $forum_rows[0][$forum_auth_fields[$j]] == $forum_auth_const[$k] ) ? ' selected="selected"' : '';
280                  $custom_auth[$j] .= '<option value="' . $forum_auth_const[$k] . '"' . $selected . '>' . $lang['Forum_' . $forum_auth_levels[$k]] . '</option>';
281              }
282              $custom_auth[$j] .= '</select>&nbsp;';
283   
284              $cell_title = $field_names[$forum_auth_fields[$j]];
285   
286              $template->assign_block_vars('forum_auth_titles', array(
287                  'CELL_TITLE' => $cell_title)
288              );
289              $template->assign_block_vars('forum_auth_data', array(
290                  'S_AUTH_LEVELS_SELECT' => $custom_auth[$j])
291              );
292   
293              $s_column_span++;
294          }
295      }
296   
297      $adv_mode = ( empty($adv) ) ? '1' : '0';
298      $switch_mode = append_sid("admin_forumauth.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&adv=". $adv_mode);
299      $switch_mode_text = ( empty($adv) ) ? $lang['Advanced_mode'] : $lang['Simple_mode'];
300      $u_switch_mode = '<a href="' . $switch_mode . '">' . $switch_mode_text . '</a>';
301   
302      $s_hidden_fields = '<input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '">';
303   
304      $template->assign_vars(array(
305          'FORUM_NAME' => $forum_name,
306   
307          'L_FORUM' => $lang['Forum'], 
308          'L_AUTH_TITLE' => $lang['Auth_Control_Forum'],
309          'L_AUTH_EXPLAIN' => $lang['Forum_auth_explain'],
310          'L_SUBMIT' => $lang['Submit'],
311          'L_RESET' => $lang['Reset'],
312   
313          'U_SWITCH_MODE' => $u_switch_mode,
314   
315          'S_FORUMAUTH_ACTION' => append_sid("admin_forumauth.$phpEx"),
316          'S_COLUMN_SPAN' => $s_column_span,
317          'S_HIDDEN_FIELDS' => $s_hidden_fields)
318      );
319   
320  }
321   
322  include('./page_header_admin.'.$phpEx);
323   
324  $template->pparse('body');
325   
326  include('./page_footer_admin.'.$phpEx);
327   
328  ?>