blue-twilight/app/Providers/AppServiceProvider.php

56 lines
1.2 KiB
PHP

<?php
namespace App\Providers;
use App\Facade\Theme;
use App\Helpers\ThemeHelper;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$this->app->singleton('theme', function($app)
{
return new ThemeHelper();
});
$this->addThemeInfoToView();
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
private function addThemeInfoToView()
{
$themeInfo = Theme::info();
$themeInfoKeys = array('name', 'version');
// Add each valid theme info element to the view - prefixing with theme_
// e.g. $themeInfo['name'] becomes $theme_name in the view
foreach ($themeInfoKeys as $key)
{
if (isset($themeInfo[$key]))
{
View::share('theme_' . $key, $themeInfo[$key]);
}
}
// Also add a theme_url key
View::share('theme_url', sprintf('themes/%s', Theme::current()));
}
}