Преглед на файлове

add new helper function to return all matching maintenance records

Tim Fry преди 1 година
родител
ревизия
1133d48477
променени са 1 файла, в които са добавени 37 реда и са изтрити 0 реда
  1. 37 0
      resources/classes/maintenance.php

+ 37 - 0
resources/classes/maintenance.php

@@ -556,6 +556,43 @@ class maintenance {
 		return $uuid;
 	}
 
+	/**
+	 * Searches the database using prepared data structures and returns all matching uuids ignoring domain name and user name
+	 * @param database $database Database object
+	 * @param string $table Either 'default' or 'domain'
+	 * @param string $category Category value to match
+	 * @param string $subcategory Subcategory value to match
+	 * @param string $status Either 'true' or 'false'
+	 * @return array
+	 */
+	public static function get_all_uuids(database $database, string $table, string $category, string $subcategory, string $status): array {
+		$uuids = [];
+		$sql = "select {$table}_setting_uuid from v_{$table}_settings s";
+		$sql .= " where s.{$table}_setting_category = :category";
+		$sql .= " and s.{$table}_setting_subcategory = :subcategory";
+		$sql .= " and s.{$table}_setting_enabled = '$status'";
+
+		//set search params
+		$params = [];
+		$params['category'] = $category;
+		$params['subcategory'] = $subcategory;
+		$result = $database->select($sql, $params);
+		if (!empty($result)) {
+			if (is_array($result)) {
+				$uuids = array_map(function ($value) use ($table) {
+					if (is_array($value)) {
+						return $value["{$table}_setting_uuid"];
+					} else {
+						return $value;
+					}
+				}, $result);
+			} else {
+				$uuids[] = $result;
+			}
+		}
+		return $uuids;
+	}
+
 	/**
 	 * Returns the record set of the UUID in the table or an empty array
 	 * @param database $database