From 54c1503d8e447abe209a5777c89ad69fccea1d54 Mon Sep 17 00:00:00 2001 From: pilishen Date: Wed, 26 Jul 2023 15:39:41 +0800 Subject: [PATCH] allow-badges-in-sub-folders --- src/GamifyServiceProvider.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/GamifyServiceProvider.php b/src/GamifyServiceProvider.php index af2335a..aa7dcaf 100644 --- a/src/GamifyServiceProvider.php +++ b/src/GamifyServiceProvider.php @@ -9,6 +9,7 @@ use QCod\Gamify\Console\MakeBadgeCommand; use QCod\Gamify\Console\MakePointCommand; use QCod\Gamify\Events\ReputationChanged; +use Illuminate\Support\Facades\File; class GamifyServiceProvider extends ServiceProvider { @@ -77,9 +78,14 @@ protected function getBadges() $badges = []; - foreach (glob(app_path('/Gamify/Badges/') . '*.php') as $file) { - if (is_file($file)) { - $badges[] = app($badgeRootNamespace . '\\' . pathinfo($file, PATHINFO_FILENAME)); + foreach (File::allFiles(app_path('/Gamify/Badges')) as $file) { + + if ($file->getExtension() === 'php') { + + $subPath = str_replace('/', '\\', $file->getRelativePathName()); + $name = str_replace('.php', '', $subPath); + + $badges[] = app($badgeRootNamespace . '\\' . $name); } }