From 60458494e0c25e1f00cd927477b878a2f4e50b9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20Schro=CC=88der?= Date: Wed, 30 Apr 2014 03:45:54 +0200 Subject: [PATCH] get setting classes method --- application/core/Settings/SettingManager.php | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/application/core/Settings/SettingManager.php b/application/core/Settings/SettingManager.php index 8450ca23..c2936085 100644 --- a/application/core/Settings/SettingManager.php +++ b/application/core/Settings/SettingManager.php @@ -5,6 +5,7 @@ namespace ManiaControl\Settings; use ManiaControl\Callbacks\CallbackListener; use ManiaControl\Callbacks\CallbackManager; use ManiaControl\ManiaControl; +use ManiaControl\Plugins\PluginManager; /** * Class managing Settings and Configurations @@ -439,6 +440,30 @@ class SettingManager implements CallbackListener { return $settings; } + /** + * Get all Setting Classes + * + * @return array + */ + public function getSettingClasses($hidePluginClasses = true) { + $mysqli = $this->maniaControl->database->mysqli; + $query = "SELECT DISTINCT `class` FROM `" . self::TABLE_SETTINGS . "` + ORDER BY `class` ASC;"; + $result = $mysqli->query($query); + if ($mysqli->error) { + trigger_error($mysqli->error); + return null; + } + $settingClasses = array(); + while ($setting = $result->fetch_object()) { + if (!$hidePluginClasses || !PluginManager::isPluginClass($setting->class)) { + array_push($settingClasses, $setting->class); + } + } + $result->free(); + return $settingClasses; + } + /** * Delete all unused Settings that haven't been initialized during the current Startup *