From 520fbf4f963092cb1abec96f6e2ade84f3837220 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms Date: Fri, 29 Nov 2024 08:08:37 +0000 Subject: make table of unregistered plugins sortable, fixes #4927 Closes #4927 Merge request studip/studip!3698 --- app/controllers/admin/plugin.php | 6 +++++- app/views/admin/plugin/unregistered.php | 10 +++++----- lib/classes/PluginAdministration.php | 9 ++++++--- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/plugin.php b/app/controllers/admin/plugin.php index 37b08cc..bc073a8 100644 --- a/app/controllers/admin/plugin.php +++ b/app/controllers/admin/plugin.php @@ -509,7 +509,11 @@ class Admin_PluginController extends AuthenticatedController public function unregistered_action() { - $this->unknown_plugins = $this->plugin_admin->scanPluginDirectory(); + $plugins = $this->plugin_admin->scanPluginDirectory(); + usort($plugins, function ($a, $b) { + return $a['pluginname'] <=> $b['pluginname']; + }); + $this->unknown_plugins = $plugins; } /** diff --git a/app/views/admin/plugin/unregistered.php b/app/views/admin/plugin/unregistered.php index 8d0b3db..800d247 100644 --- a/app/views/admin/plugin/unregistered.php +++ b/app/views/admin/plugin/unregistered.php @@ -4,16 +4,16 @@ * @var array $unknown_plugins */ ?> - +
- - - - + + + + diff --git a/lib/classes/PluginAdministration.php b/lib/classes/PluginAdministration.php index 747d74e..f906842 100644 --- a/lib/classes/PluginAdministration.php +++ b/lib/classes/PluginAdministration.php @@ -405,9 +405,12 @@ class PluginAdministration $basepath = Config::get()->PLUGINS_PATH; $plugin_manager = PluginManager::getInstance(); $iterator = new RegexIterator( - new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($basepath, FilesystemIterator::FOLLOW_SYMLINKS | FilesystemIterator::UNIX_PATHS)), - '/plugin\.manifest$/', RecursiveRegexIterator::MATCH); + new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($basepath, FilesystemIterator::FOLLOW_SYMLINKS | FilesystemIterator::UNIX_PATHS) + ), + '/plugin\.manifest$/', + RegexIterator::MATCH + ); foreach ($iterator as $manifest_file) { $manifest = $plugin_manager->getPluginManifest($manifest_file->getPath()); if (!isset($manifest['pluginclassname'])) { -- cgit v1.0