| @@ -6,8 +6,11 @@ | ||
| 6 | 6 | { |
| 7 | 7 | private array $params = []; |
| 8 | 8 | private object $paramObject; |
| 9 | 9 | |
| 10 | + /** | |
| 11 | + * @param null $params We expect a json encoded object, but it could directly be an object with protected data in Joomla 3 | |
| 12 | + */ | |
| 10 | 13 | public function __construct($params = null) |
| 11 | 14 | { |
| 12 | 15 | if (is_string($params)) { |
| 13 | 16 | $this->params = json_decode($params, true); |
| @@ -17,8 +20,13 @@ | ||
| 17 | 20 | $this->paramObject = $params; |
| 18 | 21 | } |
| 19 | 22 | } |
| 20 | 23 | |
| 24 | + /** | |
| 25 | + * @param mixed $default | |
| 26 | + * | |
| 27 | + * @return mixed | |
| 28 | + */ | |
| 21 | 29 | public function get(string $path, $default = null) |
| 22 | 30 | { |
| 23 | 31 | if (empty($this->paramObject)) { |
| 24 | 32 | if (empty($this->params[$path]) && !(isset($this->params[$path]) && $this->params[$path] === '0')) { |
| @@ -26,8 +34,9 @@ | ||
| 26 | 34 | } |
| 27 | 35 | |
| 28 | 36 | return $this->params[$path]; |
| 29 | 37 | } else { |
| 38 | + // Handle the object based parameters | |
| 30 | 39 | $value = $this->paramObject->get($path, 'noval'); |
| 31 | 40 | if ($value === 'noval') { |
| 32 | 41 | $value = $this->paramObject->get('data.'.$path, $default); |
| 33 | 42 | } |