Update settings class to use the php filter_var function for boolean

Using the built-in filter type for boolean seems like a better option as they are faster, already hardened, and more widely tested.
I found this better method used originally by Mark J. Crane in 2022 in the content.php page so I included it here.
This commit is contained in:
Tim Fry 2025-03-03 16:58:55 -04:00
parent 30db89c702
commit 8ba43ffe62
1 changed files with 4 additions and 34 deletions

View File

@ -166,8 +166,8 @@ class settings {
* @param string $uuid uuid of the setting if available. If set to an empty string then a new uuid will be created.
* @param string $category Category of the setting.
* @param string $subcategory Subcategory of the setting.
* @param string $type Type of the setting (array, numeric, text, etc)
* @param string $value (optional) Value to set. Default is empty string.
* @param string $type Type of the setting (array, numeric, text, etc)
* @param bool $enabled (optional) True or False. Default is True.
* @param string $description (optional) Description. Default is empty string.
*/
@ -248,17 +248,7 @@ class settings {
$subcategory = $row['default_setting_subcategory'];
if (isset($row['default_setting_value']) && $row['default_setting_value'] !== '') {
if ($name == "boolean") {
if (gettype($row['default_setting_value']) === 'string') {
if ($row['default_setting_value'] === 'true') {
$this->settings[$category][$subcategory] = true;
}
else {
$this->settings[$category][$subcategory] = false;
}
}
elseif (gettype($row['default_setting_value']) === 'boolean') {
$this->settings[$category][$subcategory] = $row['default_setting_value'];
}
$this->settings[$category][$subcategory] = filter_var($row['default_setting_value'], FILTER_VALIDATE_BOOLEAN);
}
elseif ($name == "array") {
if (!isset($this->settings[$category][$subcategory]) || !is_array($this->settings[$category][$subcategory])) {
@ -318,17 +308,7 @@ class settings {
$subcategory = $row['domain_setting_subcategory'];
if (isset($row['domain_setting_value']) && $row['domain_setting_value'] !== '') {
if ($name == "boolean") {
if (gettype($row['domain_setting_value']) === 'string') {
if ($row['domain_setting_value'] === 'true') {
$this->settings[$category][$subcategory] = true;
}
else {
$this->settings[$category][$subcategory] = false;
}
}
elseif (gettype($row['domain_setting_value']) === 'boolean') {
$this->settings[$category][$subcategory] = $row['domain_setting_value'];
}
$this->settings[$category][$subcategory] = filter_var($row['domain_setting_value'], FILTER_VALIDATE_BOOLEAN);
}
if ($name == "array") {
if (!isset($this->settings[$category][$subcategory]) || !is_array($this->settings[$category][$subcategory])) {
@ -377,17 +357,7 @@ class settings {
$subcategory = $row['user_setting_subcategory'];
if (isset($row['user_setting_value']) && $row['user_setting_value'] !== '') {
if ($name == "boolean") {
if (gettype($row['user_setting_value']) === 'string') {
if ($row['user_setting_value'] === 'true') {
$this->settings[$category][$subcategory] = true;
}
else {
$this->settings[$category][$subcategory] = false;
}
}
elseif (gettype($row['user_setting_value']) === 'boolean') {
$this->settings[$category][$subcategory] = $row['user_setting_value'];
}
$this->settings[$category][$subcategory] = filter_var($row['user_setting_value'], FILTER_VALIDATE_BOOLEAN);
}
elseif ($name == "array") {
$this->settings[$category][$subcategory][] = $row['user_setting_value'];