Verzeichnisstruktur phpBB-3.0.0


Veröffentlicht
12.12.2007

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

report.php

Zuletzt modifiziert: 09.10.2024, 12:50 - Dateigröße: 4.13 KiB


001  <?php
002  /**
003  *
004  * @package phpBB3
005  * @version $Id$
006  * @copyright (c) 2005 phpBB Group
007  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
008  *
009  */
010   
011  /**
012  * @ignore
013  */
014  define('IN_PHPBB', true);
015  $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
016  $phpEx = substr(strrchr(__FILE__, '.'), 1);
017  include($phpbb_root_path . 'common.' . $phpEx);
018  include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
019   
020  // Start session management
021  $user->session_begin();
022  $auth->acl($user->data);
023  $user->setup('mcp');
024   
025  $forum_id        = request_var('f', 0);
026  $post_id        = request_var('p', 0);
027  $reason_id        = request_var('reason_id', 0);
028  $report_text    = utf8_normalize_nfc(request_var('report_text', '', true));
029  $user_notify    = ($user->data['is_registered']) ? request_var('notify', 0) : false;
030   
031  $submit = (isset($_POST['submit'])) ? true : false;
032   
033  if (!$post_id)
034  {
035      trigger_error('NO_POST_SELECTED');
036  }
037   
038  $redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;p=$post_id") . "#p$post_id";
039   
040  // Has the report been cancelled?
041  if (isset($_POST['cancel']))
042  {
043      redirect($redirect_url);
044  }
045   
046  // Grab all relevant data
047  $sql = 'SELECT t.*, p.*
048      FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . " t
049      WHERE p.post_id = $post_id
050          AND p.topic_id = t.topic_id";
051  $result = $db->sql_query($sql);
052  $report_data = $db->sql_fetchrow($result);
053  $db->sql_freeresult($result);
054   
055  if (!$report_data)
056  {
057      trigger_error('POST_NOT_EXIST');
058  }
059   
060  $forum_id = (int) ($report_data['forum_id']) ? $report_data['forum_id'] : $forum_id;
061  $topic_id = (int) $report_data['topic_id'];
062   
063  $sql = 'SELECT *
064      FROM ' . FORUMS_TABLE . '
065      WHERE forum_id = ' . $forum_id;
066  $result = $db->sql_query($sql);
067  $forum_data = $db->sql_fetchrow($result);
068  $db->sql_freeresult($result);
069   
070  if (!$forum_data)
071  {
072      trigger_error('FORUM_NOT_EXIST');
073  }
074   
075  // Check required permissions
076  $acl_check_ary = array('f_list' => 'POST_NOT_EXIST', 'f_read' => 'USER_CANNOT_READ', 'f_report' => 'USER_CANNOT_REPORT');
077   
078  foreach ($acl_check_ary as $acl => $error)
079  {
080      if (!$auth->acl_get($acl, $forum_id))
081      {
082          trigger_error($error);
083      }
084  }
085  unset($acl_check_ary);
086   
087  if ($report_data['post_reported'])
088  {
089      $message = $user->lang['ALREADY_REPORTED'];
090      $message .= '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>');
091      trigger_error($message);
092  }
093   
094  // Submit report?
095  if ($submit && $reason_id)
096  {
097      $sql = 'SELECT *
098          FROM ' . REPORTS_REASONS_TABLE . "
099          WHERE reason_id = $reason_id";
100      $result = $db->sql_query($sql);
101      $row = $db->sql_fetchrow($result);
102      $db->sql_freeresult($result);
103   
104      if (!$row || (!$report_text && strtolower($row['reason_title']) == 'other'))
105      {
106          trigger_error('EMPTY_REPORT');
107      }
108   
109      $sql_ary = array(
110          'reason_id'        => (int) $reason_id,
111          'post_id'        => $post_id,
112          'user_id'        => (int) $user->data['user_id'],
113          'user_notify'    => (int) $user_notify,
114          'report_closed'    => 0,
115          'report_time'    => (int) time(),
116          'report_text'    => (string) $report_text
117      );
118   
119      $sql = 'INSERT INTO ' . REPORTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
120      $db->sql_query($sql);
121      $report_id = $db->sql_nextid();
122   
123      if (!$report_data['post_reported'])
124      {
125          $sql = 'UPDATE ' . POSTS_TABLE . '
126              SET post_reported = 1
127              WHERE post_id = ' . $post_id;
128          $db->sql_query($sql);
129      }
130   
131      if (!$report_data['topic_reported'])
132      {
133          $sql = 'UPDATE ' . TOPICS_TABLE . '
134              SET topic_reported = 1
135              WHERE topic_id = ' . $report_data['topic_id'] . '
136                  OR topic_moved_id = ' . $report_data['topic_id'];
137          $db->sql_query($sql);
138      }
139   
140      meta_refresh(3, $redirect_url);
141   
142      $message = $user->lang['POST_REPORTED_SUCCESS'] . '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>');
143      trigger_error($message);
144  }
145   
146  // Generate the reasons
147  display_reasons($reason_id);
148   
149  $template->assign_vars(array(
150      'REPORT_TEXT'        => $report_text,
151      'S_REPORT_ACTION'    => append_sid("{$phpbb_root_path}report.$phpEx", 'f=' . $forum_id . '&amp;p=' . $post_id),
152   
153      'S_NOTIFY'            => $user_notify,
154      'S_CAN_NOTIFY'        => ($user->data['is_registered']) ? true : false)
155  );
156   
157  generate_forum_nav($forum_data);
158   
159  // Start output of page
160  page_header($user->lang['REPORT_POST']);
161   
162  $template->set_filenames(array(
163      'body' => 'report_body.html')
164  );
165   
166  page_footer();
167   
168  ?>