diff --git a/framework/core/src/Admin/AdminServiceProvider.php b/framework/core/src/Admin/AdminServiceProvider.php index 103bd35df..65be464cc 100644 --- a/framework/core/src/Admin/AdminServiceProvider.php +++ b/framework/core/src/Admin/AdminServiceProvider.php @@ -9,8 +9,6 @@ namespace Flarum\Admin; -use Flarum\Extension\Event\Disabled; -use Flarum\Extension\Event\Enabled; use Flarum\Foundation\AbstractServiceProvider; use Flarum\Foundation\ErrorHandling\Registry; use Flarum\Foundation\ErrorHandling\Reporter; @@ -118,7 +116,7 @@ class AdminServiceProvider extends AbstractServiceProvider $events = $this->app->make('events'); $events->listen( - [Enabled::class, Disabled::class, ClearingCache::class], + ClearingCache::class, function () { $recompile = new RecompileFrontendAssets( $this->app->make('flarum.assets.admin'), diff --git a/framework/core/src/Extend/Frontend.php b/framework/core/src/Extend/Frontend.php index 3fd5e8554..224080823 100644 --- a/framework/core/src/Extend/Frontend.php +++ b/framework/core/src/Extend/Frontend.php @@ -9,8 +9,6 @@ namespace Flarum\Extend; -use Flarum\Extension\Event\Disabled; -use Flarum\Extension\Event\Enabled; use Flarum\Extension\Extension; use Flarum\Foundation\Event\ClearingCache; use Flarum\Frontend\Assets; @@ -23,7 +21,7 @@ use Flarum\Locale\LocaleManager; use Flarum\Settings\Event\Saved; use Illuminate\Contracts\Container\Container; -class Frontend implements ExtenderInterface +class Frontend implements ExtenderInterface, LifecycleInterface { private $frontend; @@ -115,13 +113,9 @@ class Frontend implements ExtenderInterface $events = $container->make('events'); $events->listen( - [Enabled::class, Disabled::class, ClearingCache::class], - function () use ($container, $abstract) { - $recompile = new RecompileFrontendAssets( - $container->make($abstract), - $container->make(LocaleManager::class) - ); - $recompile->flush(); + ClearingCache::class, + function () use ($container) { + $this->recompile($container); } ); @@ -185,4 +179,27 @@ class Frontend implements ExtenderInterface { return $extension ? $extension->getId() : 'site-custom'; } + + public function onEnable(Container $container, Extension $extension) + { + if (! empty($this->js) || ! empty($this->css)) { + $this->recompile($container); + } + } + + public function onDisable(Container $container, Extension $extension) + { + if (! empty($this->js) || ! empty($this->css)) { + $this->recompile($container); + } + } + + private function recompile($container) + { + $recompile = new RecompileFrontendAssets( + $container->make('flarum.assets.'.$this->frontend), + $container->make(LocaleManager::class) + ); + $recompile->flush(); + } } diff --git a/framework/core/src/Forum/ForumServiceProvider.php b/framework/core/src/Forum/ForumServiceProvider.php index 1903783d6..d333b7505 100644 --- a/framework/core/src/Forum/ForumServiceProvider.php +++ b/framework/core/src/Forum/ForumServiceProvider.php @@ -9,8 +9,6 @@ namespace Flarum\Forum; -use Flarum\Extension\Event\Disabled; -use Flarum\Extension\Event\Enabled; use Flarum\Formatter\Formatter; use Flarum\Foundation\AbstractServiceProvider; use Flarum\Foundation\ErrorHandling\Registry; @@ -134,7 +132,7 @@ class ForumServiceProvider extends AbstractServiceProvider $events = $this->app->make('events'); $events->listen( - [Enabled::class, Disabled::class, ClearingCache::class], + ClearingCache::class, function () { $recompile = new RecompileFrontendAssets( $this->app->make('flarum.assets.forum'),