浏览代码

use function for default value so that it can be overridden

Tim Fry 1 年之前
父节点
当前提交
6897f6e723

+ 44 - 31
app_defaults.php

@@ -74,11 +74,7 @@ if (!function_exists('register_maintenance_applications')) {
 
 
 		$result = $database->select($sql);
 		$result = $database->select($sql);
 		if (!empty($result)) {
 		if (!empty($result)) {
-			if (version_compare(PHP_VERSION, '8.0', '<')) {
-				$registered_applications = array_map(function ($row) { return $row['default_setting_value']; }, $result);
-			} else {
-				$registered_applications = array_map(fn($row) => $row['default_setting_value'], $result);
-			}
+			$registered_applications = array_map(function ($row) { return $row['default_setting_value']; }, $result);
 		}
 		}
 		else {
 		else {
 			$registered_applications = [];
 			$registered_applications = [];
@@ -97,13 +93,13 @@ if (!function_exists('register_maintenance_applications')) {
 		//initialize the array
 		//initialize the array
 		$found_applications = [];
 		$found_applications = [];
 
 
-		//iterate over each class and check for it implementing the maintenance interfaces
+		//iterate over each class and check for it implementing the maintenance trait
 		foreach ($declared_classes as $class) {
 		foreach ($declared_classes as $class) {
 			// Check if the class implements the interfaces and is not already in the default settings
 			// Check if the class implements the interfaces and is not already in the default settings
-			if ((in_array('database_maintenance', class_implements($class)) ||
-				in_array('filesystem_maintenance', class_implements($class))) &&
-				!in_array($class, $registered_applications)) {
-				// Add the class to the array
+			if (has_trait($class, 'database_maintenance') || has_trait($class, 'filesystem_maintenance')) {
+//				&& !in_array($class, $registered_applications)) {
+//
+				// Add the class to the array so it can be added and default settings can be applied
 				$found_applications[] = $class;
 				$found_applications[] = $class;
 			}
 			}
 		}
 		}
@@ -113,55 +109,72 @@ if (!function_exists('register_maintenance_applications')) {
 			$array = [];
 			$array = [];
 			$index = 0;
 			$index = 0;
 			foreach ($found_applications as $application) {
 			foreach ($found_applications as $application) {
-				//format the array for what the database object needs for saving data in the global default settings
-				$array['default_settings'][$index]['default_setting_uuid'] = uuid();
-				$array['default_settings'][$index]['default_setting_category'] = 'maintenance';
-				$array['default_settings'][$index]['default_setting_subcategory'] = 'application';
-				$array['default_settings'][$index]['default_setting_name'] = 'array';
-				$array['default_settings'][$index]['default_setting_value'] = $application;
-				$array['default_settings'][$index]['default_setting_enabled'] = 'true';
-				$array['default_settings'][$index]['default_setting_description'] = '';
+				//check if the application is registered
+				if (!in_array($application, $registered_applications)) {
+					//format the array for what the database object needs for saving data in the global default settings
+					$array['default_settings'][$index]['default_setting_uuid'] = uuid();
+					$array['default_settings'][$index]['default_setting_category'] = 'maintenance';
+					$array['default_settings'][$index]['default_setting_subcategory'] = 'application';
+					$array['default_settings'][$index]['default_setting_name'] = 'array';
+					$array['default_settings'][$index]['default_setting_value'] = $application;
+					$array['default_settings'][$index]['default_setting_enabled'] = 'true';
+					$array['default_settings'][$index]['default_setting_description'] = '';
+					$index++;
+				}
 				//get the application settings from the object for database maintenance
 				//get the application settings from the object for database maintenance
-				$obj = new $application();
-				if ($obj instanceof database_maintenance) {
-					$category = $obj->database_retention_category();
-					$subcategory = $obj->database_retention_subcategory();
+				if (has_trait($application, 'database_maintenance')) {
+					$category = $application::$database_retention_category;
+					$subcategory = $application::$database_retention_subcategory;
+					//check if the default setting already exists in global settings
 					$uuid = default_setting_uuid($category, $subcategory);
 					$uuid = default_setting_uuid($category, $subcategory);
 					if (empty($uuid)) {
 					if (empty($uuid)) {
-						$index++;
+						//does not exist so create it
 						$array['default_settings'][$index]['default_setting_category'] = $category;
 						$array['default_settings'][$index]['default_setting_category'] = $category;
 						$array['default_settings'][$index]['default_setting_subcategory'] = $subcategory;
 						$array['default_settings'][$index]['default_setting_subcategory'] = $subcategory;
 						$array['default_settings'][$index]['default_setting_uuid'] = uuid();
 						$array['default_settings'][$index]['default_setting_uuid'] = uuid();
 						$array['default_settings'][$index]['default_setting_name'] = 'numeric';
 						$array['default_settings'][$index]['default_setting_name'] = 'numeric';
-						$array['default_settings'][$index]['default_setting_value'] = $obj->database_retention_default_value();
+						$array['default_settings'][$index]['default_setting_value'] = $application::database_retention_default_value();
 						$array['default_settings'][$index]['default_setting_enabled'] = 'true';
 						$array['default_settings'][$index]['default_setting_enabled'] = 'true';
 						$array['default_settings'][$index]['default_setting_description'] = '';
 						$array['default_settings'][$index]['default_setting_description'] = '';
+						$index++;
+					} else {
+						//already exists
 					}
 					}
 				}
 				}
 				//get the application settings from the object for filesystem maintenance
 				//get the application settings from the object for filesystem maintenance
-				if ($obj instanceof filesystem_maintenance) {
-					$category = $obj->filesystem_retention_category();
-					$subcategory = $obj->filesystem_retention_subcategory();
+				if (has_trait($application, 'filesystem_maintenance')) {
+					$category = $application::$filesystem_retention_category;
+					$subcategory = $application::$filesystem_retention_subcategory;
+					//check if the default setting already exists in global settings
 					$uuid = default_setting_uuid($category, $subcategory);
 					$uuid = default_setting_uuid($category, $subcategory);
 					if (empty($uuid)) {
 					if (empty($uuid)) {
-						$index++;
 						$array['default_settings'][$index]['default_setting_category'] = $category;
 						$array['default_settings'][$index]['default_setting_category'] = $category;
 						$array['default_settings'][$index]['default_setting_subcategory'] = $subcategory;
 						$array['default_settings'][$index]['default_setting_subcategory'] = $subcategory;
 						$array['default_settings'][$index]['default_setting_uuid'] = uuid();
 						$array['default_settings'][$index]['default_setting_uuid'] = uuid();
 						$array['default_settings'][$index]['default_setting_name'] = 'numeric';
 						$array['default_settings'][$index]['default_setting_name'] = 'numeric';
-						$array['default_settings'][$index]['default_setting_value'] = $obj->filesystem_retention_default_value();
+						$array['default_settings'][$index]['default_setting_value'] = $application::filesystem_retention_default_value();
 						$array['default_settings'][$index]['default_setting_enabled'] = 'true';
 						$array['default_settings'][$index]['default_setting_enabled'] = 'true';
 						$array['default_settings'][$index]['default_setting_description'] = '';
 						$array['default_settings'][$index]['default_setting_description'] = '';
+						$index++;
 					}
 					}
 				}
 				}
-				$index++;
 			}
 			}
-			$database->save($array);
+			if (count($array) > 0) {
+				$database->save($array);
+			}
 		}
 		}
 	}
 	}
 }
 }
 
 
 if ($domains_processed == 1) {
 if ($domains_processed == 1) {
+	//require the function for process
+	if (!function_exists('has_trait')) {
+		if (file_exists(dirname(__DIR__, 2) . '/app/maintenance/resources/functions.php')) {
+			require_once dirname(__DIR__, 2) . '/app/maintenance/resources/functions.php';
+		} else {
+			return;
+		}
+	}
 	//run in a function to avoid variable name collisions
 	//run in a function to avoid variable name collisions
 	register_maintenance_applications();
 	register_maintenance_applications();
 }
 }

+ 2 - 2
maintenance.php

@@ -91,14 +91,14 @@ require_once dirname(__DIR__, 2) . '/resources/header.php';
 				$obj = new $class;
 				$obj = new $class;
 				$installed = array_search($class, $difference) ? 'No' : 'Yes';
 				$installed = array_search($class, $difference) ? 'No' : 'Yes';
 				if ($obj instanceof database_maintenance) {
 				if ($obj instanceof database_maintenance) {
-					$database_maintenance_retention = $settings->get($obj->database_retention_category(), $obj->database_retention_subcategory(), '');
+					$database_maintenance_retention = $settings->get($obj::$database_retention_category, $obj::$database_retention_subcategory, '');
 					$database_maintenance_enabled = empty($database_maintenance_retention) ? "No" : "Yes";
 					$database_maintenance_enabled = empty($database_maintenance_retention) ? "No" : "Yes";
 				} else {
 				} else {
 					$database_maintenance_enabled = "";
 					$database_maintenance_enabled = "";
 					$database_maintenance_retention = "";
 					$database_maintenance_retention = "";
 				}
 				}
 				if ($obj instanceof filesystem_maintenance) {
 				if ($obj instanceof filesystem_maintenance) {
-					$filesystem_maintenance_retention = $settings->get($obj->filesystem_retention_category(), $obj->filesystem_retention_subcategory(), '');
+					$filesystem_maintenance_retention = $settings->get($obj::$filesystem_retention_category, $obj::$filesystem_retention_subcategory, '');
 					$filesystem_maintenance_enabled = empty($filesystem_maintenance_retention) ? "No" : "Yes";
 					$filesystem_maintenance_enabled = empty($filesystem_maintenance_retention) ? "No" : "Yes";
 				} else {
 				} else {
 					$filesystem_maintenance_enabled = "";
 					$filesystem_maintenance_enabled = "";

+ 0 - 268
resources/classes/settings.php

@@ -1,268 +0,0 @@
-<?php
-
-/**
- * settings class
- * 
- */
-class settings {
-
-	private $domain_uuid;
-	private $user_uuid;
-	private $device_uuid;
-	private $device_profile_uuid;
-	private $category;
-	private $settings;
-	private $database;
-
-	/**
-	 * Called when the object is created
-	 * @param array setting_array
-	 * @depends database::new()
-	 */
-	public function __construct($setting_array = []) {
-
-		//open a database connection
-		if (isset($setting_array['database'])) {
-			$this->database = $setting_array['database'];
-		} else {
-			$this->database = database::new();
-		}
-
-		//set the values from the array
-		$this->domain_uuid = $setting_array['domain_uuid'] ?? null;
-		$this->user_uuid = $setting_array['user_uuid'] ?? null;
-		$this->device_uuid = $setting_array['device_uuid'] ?? null;
-		$this->device_profile_uuid = $setting_array['device_profile_uuid'] ?? null;
-		$this->category = $setting_array['category'] ?? null;
-		$this->reload();
-	}
-
-	public function reload(): void {
-		//set the default settings
-		$this->default_settings();
-
-		//set the domain settings
-		if (!empty($this->domain_uuid)) {
-			$this->domain_settings();
-		}
-
-		//set the user settings
-		if (!empty($this->user_uuid)) {
-			$this->user_settings();
-		}
-
-	}
-
-	/**
-	 * get the value
-	 * @param string category
-	 * @param string subcategory
-	 * @param mixed allows default value returned if category and subcategory not found
-	 */
-	public function get(string $category = null, string $subcategory = null, $default_value = null) {
-
-		if (empty($category)) {
-			return $this->settings;
-		}
-		elseif (empty($subcategory)) {
-			return $this->settings[$category];
-		}
-		else {
-			return $this->settings[$category][$subcategory] ?? $default_value;
-		}
-
-	}
-
-	/**
-	 * set the default, domain, user, device or device profile settings
-	 * @param string $table_prefix prefix for the table.
-	 * @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 bool $enabled (optional) True or False. Default is True.
-	 * @param string $description (optional) Description. Default is empty string.
-	 */
-	public function set(string $table_prefix, string $uuid, string $category, string $subcategory, string $type = 'text', string $value = "", bool $enabled = true, string $description = "") {
-		//set the table name
-		$table_name = $table_prefix.'_settings';
-
-		//init record as an array
-		$record = [];
-		if(!empty($this->domain_uuid)) {
-			$record[$table_name][0]['domain_uuid'] = $this->domain_uuid;
-		}
-		if(!empty($this->user_uuid)) {
-			$record[$table_name][0]['user_uuid'] = $this->user_uuid;
-		}
-		if(!empty($this->device_uuid)) {
-			$record[$table_name][0]['device_uuid'] = $this->device_uuid;
-		}
-		if(!empty($this->device_profile_uuid)) {
-			$record[$table_name][0]['device_profile_uuid'] = $this->device_profile_uuid;
-		}
-		if(!is_uuid($uuid)) {
-			$uuid = uuid();
-		}
-		//build the array
-		$record[$table_name][0][$table_prefix.'_setting_uuid'       ] = $uuid;
-		$record[$table_name][0][$table_prefix.'_setting_category'   ] = $category;
-		$record[$table_name][0][$table_prefix.'_setting_subcategory'] = $subcategory;
-		$record[$table_name][0][$table_prefix.'_setting_name'       ] = $type;
-		$record[$table_name][0][$table_prefix.'_setting_value'      ] = $value;
-		$record[$table_name][0][$table_prefix.'_setting_enabled'    ] = $enabled;
-		$record[$table_name][0][$table_prefix.'_setting_description'] = $description;
-
-		//grant temporary permissions
-		$p = new permissions;
-		$p->add($table_prefix.'_setting_add', 'temp');
-		$p->add($table_prefix.'_setting_edit', 'temp');
-
-		//execute insert
-		$this->database->app_name = $table_name;
-		$this->database->save($record);
-
-		//revoke temporary permissions
-		$p->delete($table_prefix.'_setting_add', 'temp');
-		$p->delete($table_prefix.'_setting_edit', 'temp');
-	}
-
-	/**
-	 * set the default settings
-	 * 
-	 */
-	private function default_settings() {
-
-		//get the default settings
-		$sql = "select * from v_default_settings ";
-		$sql .= "where default_setting_enabled = 'true' ";
-		if (!empty($this->category)) {
-			$sql .= "and default_setting_category = :default_setting_category ";
-			$parameters['default_setting_category'] = $this->category;
-		}
-		$sql .= "order by default_setting_order asc ";
-		$result = $this->database->select($sql, $parameters ?? null, 'all');
-		if (!empty($result)) {
-			foreach ($result as $row) {
-				$name = $row['default_setting_name'];
-				$category = $row['default_setting_category'];
-				$subcategory = $row['default_setting_subcategory'];
-				if (empty($subcategory)) {
-					if ($name == "array") {
-						if (!isset($this->settings[$category]) || !is_array($this->settings[$category])) {
-							$this->settings[$category] = array();
-						}
-						$this->settings[$category][] = $row['default_setting_value'];
-					}
-					else {
-						$this->settings[$category] = $row['default_setting_value'];
-					}
-				}
-				else {
-					if ($name == "array") {
-						if (!isset($this->settings[$category][$subcategory]) || !is_array($this->settings[$category][$subcategory])) {
-							$this->settings[$category][$subcategory] = array();
-						}
-						$this->settings[$category][$subcategory][] = $row['default_setting_value'];
-					}
-					else {
-						$this->settings[$category][$subcategory] = $row['default_setting_value'];
-					}
-				}
-			}
-		}
-		unset($sql, $result, $row);
-	}
-
-
-	/**
-	 * set the domain settings
-	 */
-	private function domain_settings() {
-
-		$sql = "select * from v_domain_settings ";
-		$sql .= "where domain_uuid = :domain_uuid ";
-		$sql .= "and domain_setting_enabled = 'true' ";
-		$parameters['domain_uuid'] = $this->domain_uuid;
-		$result = $this->database->select($sql, $parameters, 'all');
-		unset($sql, $parameters);
-		if (!empty($result)) {
-			foreach ($result as $row) {
-				$name = $row['domain_setting_name'];
-				$category = $row['domain_setting_category'];
-				$subcategory = $row['domain_setting_subcategory'];
-				if (empty($subcategory)) {
-					if ($name == "array") {
-						if (!isset($this->settings[$category]) || !is_array($this->settings[$category])) {
-						    $this->settings[$category] = array();
-						}
-						$this->settings[$category][] = $row['domain_setting_value'];
-					}
-					else {
-						$this->settings[$category] = $row['domain_setting_value'];
-					}
-				}
-				else {
-					if ($name == "array") {
-						if (!isset($this->settings[$category][$subcategory]) || !is_array($this->settings[$category][$subcategory])) {
-						    $this->settings[$category][$subcategory] = array();
-						}
-						$this->settings[$category][$subcategory][] = $row['domain_setting_value'];
-					}
-					else {
-						$this->settings[$category][$subcategory] = $row['domain_setting_value'];
-					}
-				}
-			}
-		}
-		unset($result, $row);
-
-	}
-
-
-	/**
-	 * set the user settings
-	 */
-	private function user_settings() {
-
-		$sql = "select * from v_user_settings ";
-		$sql .= "where domain_uuid = :domain_uuid ";
-		$sql .= "and user_uuid = :user_uuid ";
-		$sql .= " order by user_setting_order asc ";
-		$parameters['domain_uuid'] = $this->domain_uuid;
-		$parameters['user_uuid'] = $this->user_uuid;
-		$result = $this->database->select($sql, $parameters, 'all');
-		if (is_array($result)) {
-			foreach ($result as $row) {
-				if ($row['user_setting_enabled'] == 'true') {
-					$name = $row['user_setting_name'];
-					$category = $row['user_setting_category'];
-					$subcategory = $row['user_setting_subcategory'];
-					if (!empty($row['user_setting_value'])) {
-						if (empty($subcategory)) {
-							if ($name == "array") {
-								$this->settings[$category][] = $row['user_setting_value'];
-							}
-							else {
-								$this->settings[$category] = $row['user_setting_value'];
-							}
-						}
-						else {
-							if ($name == "array") {
-								$this->settings[$category][$subcategory][] = $row['user_setting_value'];
-							}
-							else {
-								$this->settings[$category][$subcategory] = $row['user_setting_value'];
-							}
-						}
-					}
-				}
-			}
-		}
-
-	}
-
-}
-
-?>

+ 14 - 17
resources/dashboard/maintenance.php

@@ -115,12 +115,12 @@
 //count the number of apps enabled
 //count the number of apps enabled
 	foreach ($maintainers as $maintenance_app) {
 	foreach ($maintainers as $maintenance_app) {
 		if (class_exists($maintenance_app)) {
 		if (class_exists($maintenance_app)) {
-			$app = new $maintenance_app();
+			$app = new $maintenance_app($database, $setting);
 			//check for database status
 			//check for database status
 			if ($app instanceof database_maintenance) {
 			if ($app instanceof database_maintenance) {
 				$total_maintenance_apps++;
 				$total_maintenance_apps++;
-				$category = $app->database_retention_category();
-				$subcategory = $app->database_retention_subcategory();
+				$category = $app::$database_retention_category;
+				$subcategory = $app::$database_retention_subcategory;
 				if (!empty($setting->get($category, $subcategory, ''))) {
 				if (!empty($setting->get($category, $subcategory, ''))) {
 					$total_running_maintenance_apps++;
 					$total_running_maintenance_apps++;
 				}
 				}
@@ -128,8 +128,8 @@
 			//check for filesystem status
 			//check for filesystem status
 			if ($app instanceof filesystem_maintenance) {
 			if ($app instanceof filesystem_maintenance) {
 				$total_maintenance_apps++;
 				$total_maintenance_apps++;
-				$category = $app->database_retention_category();
-				$subcategory = $app->database_retention_subcategory();
+				$category = $app::$database_retention_category;
+				$subcategory = $app::$database_retention_subcategory;
 				if(!empty($setting->get($category, $subcategory, ''))) {
 				if(!empty($setting->get($category, $subcategory, ''))) {
 					$total_running_maintenance_apps++;
 					$total_running_maintenance_apps++;
 				}
 				}
@@ -192,16 +192,13 @@
 			$database_checkbox_state = CHECKBOX_HIDDEN;
 			$database_checkbox_state = CHECKBOX_HIDDEN;
 			$param = [];
 			$param = [];
 			if (class_exists($maintenance_app)) {
 			if (class_exists($maintenance_app)) {
-				//create the object
-				$app = new $maintenance_app();
-
 				//check for database status
 				//check for database status
-				if ($app instanceof database_maintenance) {
-					$database_category = $app->database_retention_category();
-					$database_subcategory = $app->database_retention_subcategory();
-					$database_days = $setting->get($database_category, $database_subcategory, '');
+				if (has_trait($maintenance_app, 'database_maintenance')) {
+					$database_category = $maintenance_app::$database_retention_category;
+					$database_subcategory = $maintenance_app::$database_retention_subcategory;
+					$database_default_value = $maintenance_app::database_retention_default_value();
 					//uuid of setting
 					//uuid of setting
-					$database_setting_uuids = maintenance_service::find_uuid($database, $database_category, $database_subcategory);
+					$database_setting_uuids = maintenance_service::find_uuid($database, $database_category, $database_category);
 					$database_setting_uuid = $database_setting_uuids['uuid'];
 					$database_setting_uuid = $database_setting_uuids['uuid'];
 					$database_setting_table = $database_setting_uuids['table'];
 					$database_setting_table = $database_setting_uuids['table'];
 					if (empty($database_days)) {
 					if (empty($database_days)) {
@@ -212,10 +209,10 @@
 				}
 				}
 
 
 				//check for filesystem status
 				//check for filesystem status
-				if ($app instanceof filesystem_maintenance) {
-					$filesystem_category = $app->filesystem_retention_category();
-					$filesystem_subcategory = $app->filesystem_retention_subcategory();
-					$filesystem_default_value = $app->filesystem_retention_default_value();
+				if (has_trait($maintenance_app, 'filesystem_maintenance')) {
+					$filesystem_category = $maintenance_app::$filesystem_retention_category;
+					$filesystem_subcategory = $maintenance_app::$filesystem_retention_subcategory;
+					$filesystem_default_value = $maintenance_app::filesystem_retention_default_value();
 					$filesystem_days = $setting->get($filesystem_category, $filesystem_subcategory, '');
 					$filesystem_days = $setting->get($filesystem_category, $filesystem_subcategory, '');
 					//uuid of setting
 					//uuid of setting
 					$filesystem_setting_uuids = maintenance_service::find_uuid($database, $filesystem_category, $filesystem_subcategory);
 					$filesystem_setting_uuids = maintenance_service::find_uuid($database, $filesystem_category, $filesystem_subcategory);

+ 13 - 4
resources/interfaces/database_maintenance.php

@@ -31,17 +31,26 @@
  * @author Tim Fry <[email protected]>
  * @author Tim Fry <[email protected]>
  */
  */
 trait database_maintenance {
 trait database_maintenance {
-	//
-	//override the values in the class that is using the trait or leave as default
-	//
+
 	public static $database_maintenance_application = self::class;
 	public static $database_maintenance_application = self::class;
 	public static $database_retention_category = self::class;
 	public static $database_retention_category = self::class;
 	public static $database_retention_subcategory = 'database_retention_days';
 	public static $database_retention_subcategory = 'database_retention_days';
-	public static $database_retention_default_value = '30';
 
 
 	//class must implement this method
 	//class must implement this method
 	abstract public static function database_maintenance_sql(string $domain_uuid, string $retention_days): string;
 	abstract public static function database_maintenance_sql(string $domain_uuid, string $retention_days): string;
 
 
+	/**
+	 * Class can override this method to return the default value
+	 * @return string
+	 */
+	public static function database_retention_default_value(): string {
+		return '30';
+	}
+
+	/**
+	 * Class can override this method to do their own maintenance or just return the sql for this method
+	 * @return string
+	 */
 	public static function database_maintenance(database $database, settings $settings): void {
 	public static function database_maintenance(database $database, settings $settings): void {
 		//get retention days
 		//get retention days
 		$days = $settings->get(self::$database_retention_category, self::$database_retention_subcategory, '');
 		$days = $settings->get(self::$database_retention_category, self::$database_retention_subcategory, '');

+ 9 - 4
resources/interfaces/filesystem_maintenance.php

@@ -31,17 +31,22 @@
  * @author Tim Fry <[email protected]>
  * @author Tim Fry <[email protected]>
  */
  */
 trait filesystem_maintenance {
 trait filesystem_maintenance {
-	//
-	//override the values in the class that is using the trait or leave as default
-	//
+
 	public static $filesystem_maintenance_application = self::class;
 	public static $filesystem_maintenance_application = self::class;
 	public static $filesystem_retention_category = self::class;
 	public static $filesystem_retention_category = self::class;
 	public static $filesystem_retention_subcategory = 'filesystem_retention_days';
 	public static $filesystem_retention_subcategory = 'filesystem_retention_days';
-	public static $filesystem_retention_default_value = '30';
 
 
 	//class must implement this method
 	//class must implement this method
 	abstract public static function filesystem_maintenance_files(settings $settings, string $domain_uuid, string $domain_name, string $retention_days): array;
 	abstract public static function filesystem_maintenance_files(settings $settings, string $domain_uuid, string $domain_name, string $retention_days): array;
 
 
+	/**
+	 * Default setting for global default values when it is created
+	 * @return string
+	 */
+	public static function filesystem_retention_default_value(): string {
+		return '30';
+	}
+
 	/**
 	/**
 	 * Removes old files on a per-domain basis
 	 * Removes old files on a per-domain basis
 	 * @param database $database
 	 * @param database $database