mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-09 10:16:36 +02:00
[ticket/13654] Moving reporting into controller
Moving report.php's content into different services and controllers to better comply with the MVC model. Also implementing: * Replacement for reasons_display() * Adding assign_meta_refresh_var() to \controller\helper * Adding separate routes for easy configuration * Updating unit tests to expect to correct results * Add BC tests PHPBB3-13654
This commit is contained in:
104
phpBB/phpbb/report/report_handler.php
Normal file
104
phpBB/phpbb/report/report_handler.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\report;
|
||||
|
||||
abstract class report_handler implements report_handler_interface
|
||||
{
|
||||
/**
|
||||
* @var \phpbb\db\driver\driver_interface
|
||||
*/
|
||||
protected $db;
|
||||
|
||||
/**
|
||||
* @var \phpbb\event\dispatcher_interface
|
||||
*/
|
||||
protected $dispatcher;
|
||||
|
||||
/**
|
||||
* @var \phpbb\config\db
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* @var \phpbb\auth\auth
|
||||
*/
|
||||
protected $auth;
|
||||
|
||||
/**
|
||||
* @var \phpbb\user
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* @var \phpbb\notification\manager
|
||||
*/
|
||||
protected $notifications;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $report_data;
|
||||
|
||||
/**
|
||||
* Construtor
|
||||
*
|
||||
* @param \phpbb\db\driver\driver_interface $db
|
||||
* @param \phpbb\event\dispatcher_interface $dispatcher
|
||||
* @param \phpbb\config\db $config
|
||||
* @param \phpbb\auth\auth $auth
|
||||
* @param \phpbb\user $user
|
||||
* @param \phpbb\notification\manager $notification
|
||||
*/
|
||||
public function __construct(\phpbb\db\driver\driver_interface $db, \phpbb\event\dispatcher_interface $dispatcher, \phpbb\config\db $config, \phpbb\auth\auth $auth, \phpbb\user $user, \phpbb\notification\manager $notification)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->dispatcher = $dispatcher;
|
||||
$this->config = $config;
|
||||
$this->auth = $auth;
|
||||
$this->user = $user;
|
||||
$this->notifications = $notification;
|
||||
$this->report_data = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a report entity in the database
|
||||
*
|
||||
* @param array $report_data
|
||||
* @return int the ID of the created entity
|
||||
*/
|
||||
protected function create_report(array $report_data)
|
||||
{
|
||||
$sql_ary = array(
|
||||
'reason_id' => (int) $report_data['reason_id'],
|
||||
'post_id' => $report_data['post_id'],
|
||||
'pm_id' => $report_data['pm_id'],
|
||||
'user_id' => (int) $this->user->data['user_id'],
|
||||
'user_notify' => (int) $report_data['user_notify'],
|
||||
'report_closed' => 0,
|
||||
'report_time' => (int) time(),
|
||||
'report_text' => (string) $report_data['report_text'],
|
||||
'reported_post_text' => $report_data['reported_post_text'],
|
||||
'reported_post_uid' => $report_data['reported_post_uid'],
|
||||
'reported_post_bitfield' => $report_data['reported_post_bitfield'],
|
||||
'reported_post_enable_bbcode' => $report_data['reported_post_enable_bbcode'],
|
||||
'reported_post_enable_smilies' => $report_data['reported_post_enable_smilies'],
|
||||
'reported_post_enable_magic_url' => $report_data['reported_post_enable_magic_url'],
|
||||
);
|
||||
|
||||
$sql = 'INSERT INTO ' . REPORTS_TABLE . ' ' . $this->db->sql_build_array('INSERT', $sql_ary);
|
||||
$this->db->sql_query($sql);
|
||||
|
||||
return $this->db->sql_nextid();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user