From 4d28b28bdfd9eef6b686ae32542788609c15bae1 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Tue, 19 May 2015 15:41:29 +0100 Subject: [PATCH] Better handling of the custom theme settings. --- app/Composers/ThemeComposer.php | 39 +++++++++++++++++++ app/Providers/ViewComposerServiceProvider.php | 1 + resources/views/partials/stylesheet.blade.php | 10 +++-- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 app/Composers/ThemeComposer.php diff --git a/app/Composers/ThemeComposer.php b/app/Composers/ThemeComposer.php new file mode 100644 index 00000000..6e5dc170 --- /dev/null +++ b/app/Composers/ThemeComposer.php @@ -0,0 +1,39 @@ + + * (c) Joseph Cohen + * (c) Graham Campbell + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace CachetHQ\Cachet\Composers; + +use CachetHQ\Cachet\Facades\Setting; +use Illuminate\View\View; + +class ThemeComposer +{ + /** + * Bind data to the view. + * + * @param \Illuminate\View\View $view + */ + public function compose(View $view) + { + $view->with('themeBackgroundColor', Setting::get('style_background_color') ?: null); + $view->with('themeTextColor', Setting::get('style_text_color') ?: null); + + $viewData = $view->getData(); + $themeView = array_only($viewData, preg_grep('/^theme/', array_keys($viewData))); + $hasThemeSettings = array_filter($themeView, function ($data) { + return $data != null; + }); + + $view->with('themeSetup', !empty($hasThemeSettings)); + } +} diff --git a/app/Providers/ViewComposerServiceProvider.php b/app/Providers/ViewComposerServiceProvider.php index 71ace0a4..a56b2a09 100644 --- a/app/Providers/ViewComposerServiceProvider.php +++ b/app/Providers/ViewComposerServiceProvider.php @@ -32,6 +32,7 @@ class ViewComposerServiceProvider extends ServiceProvider { $this->app->view->composer('*', 'CachetHQ\Cachet\Composers\LoggedUserComposer'); $this->app->view->composer('index', 'CachetHQ\Cachet\Composers\IndexComposer'); + $this->app->view->composer('index', 'CachetHQ\Cachet\Composers\ThemeComposer'); $this->app->view->composer('dashboard.*', 'CachetHQ\Cachet\Composers\DashboardComposer'); $this->app->view->composer([ 'setup', diff --git a/resources/views/partials/stylesheet.blade.php b/resources/views/partials/stylesheet.blade.php index ed5b647d..410b7af1 100644 --- a/resources/views/partials/stylesheet.blade.php +++ b/resources/views/partials/stylesheet.blade.php @@ -1,10 +1,12 @@ +@if($themeSetup) +@endif