PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.9
Advanced Access Manager – Access Governance for WordPress v5.9
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / Application / Core / Config.php
advanced-access-manager / Application / Core Last commit date
Api 7 years ago ConfigPress 7 years ago Object 7 years ago Policy 7 years ago Subject 7 years ago API.php 7 years ago Cache.php 7 years ago Compatibility.php 7 years ago Config.php 7 years ago ConfigPress.php 7 years ago Console.php 7 years ago Exporter.php 7 years ago Gateway.php 7 years ago Importer.php 7 years ago JwtAuth.php 7 years ago Login.php 7 years ago Media.php 7 years ago Object.php 7 years ago Request.php 7 years ago Server.php 7 years ago Subject.php 7 years ago
Config.php
164 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * AAM Core Config
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Core_Config {
17
18 /**
19 * Core settings database option
20 *
21 * aam-utilities slug is used because AAM Utilities with v3.4 became a core
22 * feature instead of independent extension.
23 */
24 const OPTION = 'aam-utilities';
25
26 /**
27 * Core config
28 *
29 * @var array
30 *
31 * @access protected
32 */
33 protected static $config = array();
34
35 /**
36 * Load core AAM settings
37 *
38 * @return void
39 *
40 * @access public
41 */
42 public static function bootstrap() {
43 // TODO: Remove in July 2019
44 add_filter(
45 'aam-configpress-compatibility-filter',
46 'AAM_Core_Compatibility::checkConfigPressCompatibility'
47 );
48
49 if (is_multisite()) {
50 self::$config = AAM_Core_Compatibility::normalizeConfigOptions(
51 AAM_Core_API::getOption(self::OPTION, array(), 'site')
52 );
53 } else {
54 self::$config = AAM_Core_Compatibility::getConfig();
55 }
56 }
57
58 /**
59 * Get config option
60 *
61 * @param string $option
62 * @param mixed $default
63 *
64 * @return mixed
65 *
66 * @access public
67 * @static
68 */
69 public static function get($option, $default = null) {
70 if (array_key_exists($option, self::$config)) {
71 $response = self::$config[$option];
72 } else {
73 $response = self::readConfigPress($option, $default);
74 }
75
76 return ($response ? self::normalize($response) : $response);
77 }
78
79 /**
80 * Normalize config option
81 *
82 * @param string $setting
83 *
84 * @return string
85 *
86 * @access protected
87 * @static
88 */
89 protected static function normalize($setting) {
90 return str_replace(array('{ABSPATH}'), array(ABSPATH), $setting);
91 }
92
93 /**
94 * Set config
95 *
96 * @param string $option
97 * @param mixed $value
98 *
99 * @return boolean
100 *
101 * @access public
102 */
103 public static function set($option, $value) {
104 self::$config[$option] = $value;
105
106 //save config to database
107 if (is_multisite()) {
108 $result = AAM_Core_API::updateOption(self::OPTION, self::$config, 'site');
109 } else {
110 $result = AAM_Core_API::updateOption(self::OPTION, self::$config);
111 }
112
113
114 return $result;
115 }
116
117 /**
118 * Delete config option
119 *
120 * @param string $option
121 *
122 * @access public
123 * @static
124 */
125 public static function delete($option) {
126 if (array_key_exists($option, self::$config)) {
127 unset(self::$config[$option]);
128
129 if (is_multisite()) {
130 AAM_Core_API::updateOption(self::OPTION, self::$config, 'site');
131 } else {
132 AAM_Core_API::updateOption(self::OPTION, self::$config);
133 }
134 }
135 }
136
137 /**
138 * Get ConfigPress parameter
139 *
140 * @param string $param
141 * @param mixed $default
142 *
143 * @return mixed
144 *
145 * @access public
146 * @static
147 */
148 protected static function readConfigPress($param, $default = null) {
149 $config = AAM_Core_ConfigPress::get('aam.' . $param, $default);
150
151 if (is_array($config) && isset($config['userFunc'])) {
152 if (is_callable($config['userFunc'])) {
153 $response = call_user_func($config['userFunc']);
154 } else {
155 $response = $default;
156 }
157 } else {
158 $response = $config;
159 }
160
161 return $response;
162 }
163
164 }