1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

Merge pull request #3913 from marc1706/ticket/14168

[ticket/14168] Refactor attachment management functions into classes

* marc1706/ticket/14168: (36 commits)
  [ticket/14168] Correctly state return type of upload and upload_attachment
  [ticket/14168] Use attachment manager instead of separate classes
  [ticket/14168] Fix docblock in manager
  [ticket/14168] Add more test cases for attachment manager
  [ticket/14168] Add new test method and more tests
  [ticket/14168] Fix tabs in manager and add test file
  [ticket/14168] Fix tests after rebase
  [ticket/14168] Add attachment manager service
  [ticket/14168] Use correct docblock
  [ticket/14168] Add services_attachment.yml to services.yml
  [ticket/14168] Minor coding style fixes
  [ticket/14168] Move attachment service definitions to services_attachment
  [ticket/14168] Improve code coverage in upload class
  [ticket/14168] Move image check and don't use trigger_error()
  [ticket/14168] Add tests for init_error() during upload
  [ticket/14168] Add basic test file for attachments upload
  [ticket/14168] Fix CS issue
  [ticket/14168] No longer use deprecated functions in core files
  [ticket/14168] Move phpbb_unlink() into attachment delete class
  [ticket/14168] Reset sequence before tests in delete tests
  ...
This commit is contained in:
Tristan Darricau
2015-10-14 08:40:01 +02:00
23 changed files with 2006 additions and 550 deletions

View File

@@ -39,6 +39,9 @@ class acp_attachments
/** @var \phpbb\filesystem\filesystem_interface */
protected $filesystem;
/** @var \phpbb\attachment\manager */
protected $attachment_manager;
public $id;
public $u_action;
protected $new_config;
@@ -55,6 +58,7 @@ class acp_attachments
$this->user = $user;
$this->phpbb_container = $phpbb_container;
$this->filesystem = $phpbb_filesystem;
$this->attachment_manager = $phpbb_container->get('attachment.manager');
$user->add_lang(array('posting', 'viewtopic', 'acp/attachments'));
@@ -922,11 +926,11 @@ class acp_attachments
$delete_files = array();
while ($row = $db->sql_fetchrow($result))
{
phpbb_unlink($row['physical_filename'], 'file');
$this->attachment_manager->unlink($row['physical_filename'], 'file');
if ($row['thumbnail'])
{
phpbb_unlink($row['physical_filename'], 'thumbnail');
$this->attachment_manager->unlink($row['physical_filename'], 'thumbnail');
}
$delete_files[$row['attach_id']] = $row['real_filename'];
@@ -1091,7 +1095,7 @@ class acp_attachments
}
$db->sql_freeresult($result);
if ($num_deleted = delete_attachments('attach', $delete_files))
if ($num_deleted = $this->attachment_manager->delete('attach', $delete_files))
{
if (sizeof($delete_files) != $num_deleted)
{

View File

@@ -1788,7 +1788,7 @@ class acp_forums
*/
function delete_forum_content($forum_id)
{
global $db, $config, $phpbb_root_path, $phpEx, $phpbb_dispatcher;
global $db, $config, $phpbb_root_path, $phpEx, $phpbb_container, $phpbb_dispatcher;
include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
@@ -1809,7 +1809,10 @@ class acp_forums
}
$db->sql_freeresult($result);
delete_attachments('topic', $topic_ids, false);
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_manager->delete('topic', $topic_ids, false);
unset($attachment_manager);
// Delete shadow topics pointing to topics in this forum
delete_topic_shadows($forum_id);

View File

@@ -543,7 +543,10 @@ class acp_users
if (confirm_box(true))
{
delete_attachments('user', $user_id);
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_manager->delete('user', $user_id);
unset($attachment_manager);
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_USER_DEL_ATTACH', false, array($user_row['username']));
trigger_error($user->lang['USER_ATTACHMENTS_REMOVED'] . adm_back_link($this->u_action . '&u=' . $user_id));
@@ -2139,7 +2142,10 @@ class acp_users
}
$db->sql_freeresult($result);
delete_attachments('attach', $marked);
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_manager->delete('attach', $marked);
unset($attachment_manager);
$message = (sizeof($log_attachments) == 1) ? $user->lang['ATTACHMENT_DELETED'] : $user->lang['ATTACHMENTS_DELETED'];