Completed
Push — develop ( 85588e...ca6c48 )
by Daniel
28s queued 11s
created

filemanager::get_upload_dir()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
<?php
2
3
/**
4
 *
5
 * @package sitemaker
6
 * @copyright (c) 2017 Daniel A. (blitze)
7
 * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
8
 *
9
 */
10
11
namespace blitze\sitemaker\services;
12
13
/**
14
 * @package sitemaker
15
 */
16
class filemanager
17
{
18
	/** @var \phpbb\filesystem\filesystem */
19
	protected $filesystem;
20
21
	/** @var \phpbb\user */
22
	protected $user;
23
24
	/** @var string */
25
	protected $phpbb_root_path;
26
27
	/** @var string */
28
	protected $user_dir = false;
29
30
	/** @var string */
31
	protected $upload_dir = 'images/sitemaker_uploads/source/';
32
33
	/**
34
	 * Constructor
35
	 *
36
	 * @param \phpbb\filesystem\filesystem	$filesystem			File system
37
	 * @param \phpbb\user					$user				User object
38
	 * @param string						$phpbb_root_path	phpBB root path
39
	 */
40
	public function __construct(\phpbb\filesystem\filesystem $filesystem, \phpbb\user $user, $phpbb_root_path)
41
	{
42
		$this->filesystem = $filesystem;
43
		$this->user = $user;
44
		$this->phpbb_root_path = $phpbb_root_path;
45
	}
46
47
	/**
48
	 * @return string
49
	 */
50
	public function get_upload_destination()
51
	{
52
		return $this->upload_dir . $this->get_user_dir();
53
	}
54
55
	/**
56
	 * @return string
57
	 */
58
	public function get_user_dir()
59
	{
60
		if (!$this->user_dir)
61
		{
62
			$this->set_user_dir();
63
		}
64
65
		return $this->user_dir;
66
	}
67
68
	/**
69
	 * @return string
70
	 */
71
	protected function set_user_dir()
72
	{
73
		// if user is not founder, they must have a directory
74
		$this->user_dir = ($this->user->data['user_type'] != USER_FOUNDER) ? 'users/' . $this->user->data['username'] . '/' : '';
75
76
		$destination = $this->phpbb_root_path . $this->upload_dir . $this->user_dir;
77
78
		if (!is_dir($destination))
79
		{
80
			$this->filesystem->mkdir($destination, 0755);
81
		}
82
	}
83
}
84