WordpressConfig.php
3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php
/**
* WordpressConfig.php
*
* The WordpressConfig class file.
*
* PHP versions 5
*
* @author Alexander Schneider <alexanderschneider85@gmail.com>
* @copyright 2008-2017 Alexander Schneider
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
* @version SVN: $id$
* @link http://wordpress.org/extend/plugins/user-access-manager/
*/
declare(strict_types=1);
namespace UserAccessManager\Config;
use UserAccessManager\Wrapper\Wordpress;
/**
* Class WordpressConfig
*
* @package UserAccessManager\Config
*/
class WordpressConfig
{
/**
* @var Wordpress
*/
private $wordpress;
/**
* @var string
*/
private $baseFile;
/**
* @var null|bool
*/
private $isPermalinksActive = null;
/**
* @var null|array
*/
private $mimeTypes = null;
/**
* WordpressClass constructor.
* @param Wordpress $wordpress
* @param string $baseFile
*/
public function __construct(Wordpress $wordpress, string $baseFile)
{
$this->wordpress = $wordpress;
$this->baseFile = $baseFile;
}
/**
* Returns true if a user is at the admin panel.
* @return bool
*/
public function atAdminPanel(): bool
{
return $this->wordpress->isAdmin();
}
/**
* Returns true if permalinks are active otherwise false.
* @return bool
*/
public function isPermalinksActive(): ?bool
{
if ($this->isPermalinksActive === null) {
$permalinkStructure = $this->wordpress->getOption('permalink_structure');
$this->isPermalinksActive = (empty($permalinkStructure) === false);
}
return $this->isPermalinksActive;
}
/**
* Returns the upload directory.
* @return null|string
*/
public function getUploadDirectory(): ?string
{
$wordpressUploadDir = $this->wordpress->getUploadDir();
if (empty($wordpressUploadDir['error'])) {
return $wordpressUploadDir['basedir'] . DIRECTORY_SEPARATOR;
}
return null;
}
/**
* Returns the full supported mine types.
* @return array
*/
public function getMimeTypes(): ?array
{
if ($this->mimeTypes === null) {
$mimeTypes = $this->wordpress->getAllowedMimeTypes();
$fullMimeTypes = [];
foreach ($mimeTypes as $extensions => $mineType) {
$extensions = explode('|', $extensions);
foreach ($extensions as $extension) {
$fullMimeTypes[$extension] = $mineType;
}
}
$this->mimeTypes = $fullMimeTypes;
}
return $this->mimeTypes;
}
/**
* Returns the module url path.
* @return string
*/
public function getUrlPath(): string
{
return $this->wordpress->pluginsUrl('', $this->baseFile) . '/';
}
/**
* Returns the module real path.
* @return string
*/
public function getRealPath(): string
{
$dirName = dirname($this->baseFile);
return $this->wordpress->getPluginDir() . DIRECTORY_SEPARATOR
. $this->wordpress->pluginBasename($dirName) . DIRECTORY_SEPARATOR;
}
}