Package Data | |
---|---|
Maintainer Username: | Mr.Buzz |
Maintainer Contact: | mr.thinhbuzz@gmail.com (ThinhBuzz) |
Package Create Date: | 2015-08-07 |
Package Last Update: | 2016-01-04 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-14 15:12:23 |
Package Statistics | |
---|---|
Total Downloads: | 117 |
Monthly Downloads: | 1 |
Daily Downloads: | 0 |
Total Stars: | 8 |
Total Watchers: | 2 |
Total Forks: | 5 |
Total Open Issues: | 0 |
Detect device use package serbanghita/Mobile-Detect. If you want to be simple, use a version 1. Note: v2.* switch language to vietnamese
This is package support the management view files and assets under separate folders. Compatible with Laravel 5.*
The first run command:
composer require buzz/laravel-theme 2.*
and then open config/app.php
add LaravelThemeServiceProvider
to array providers
'providers' => [
//.....
'Illuminate\Validation\ValidationServiceProvider',
'Illuminate\View\ViewServiceProvider,
//.....
'Buzz\LaravelTheme\LaravelThemeServiceProvider',
],
Add Theme
alias (when set auto_alias => false
in theme config):
'aliases' => [
//.....
'Validator' => 'Illuminate\Support\Facades\Validator',
'View' => 'Illuminate\Support\Facades\View',
//.....
'Theme' => 'Buzz\LaravelTheme\ThemeFacade',
],
Publish config file config/theme.php
with command:
php artisan vendor:publish --provider="Buzz\LaravelTheme\LaravelThemeServiceProvider"
├── public/
└── themes/
├── theme_name/
| ├── js/
| ├── css/
|
└── another_theme_name/
├── resources/
└── themes/
├── theme_name/
| ├── index.blade.php
| ├── footer.blade.php
|
└── another_theme_name/
package does not change the way you render view, you still use the View::make
or view()
as default of laravel, read more on views document. If the render view and the view does not exist in the resources/themes/theme-name
, it will render view in resources/views
.
Use themeAsset()
instead of asset()
when link to assets in theme, example:
<link rel="stylesheet" href="{!! themeAsset('css/bootstrap.css') !!}">
//render <link rel="stylesheet" href="http://domain/themes/theme-name/css/bootstrap.css">
You can change the theme in the following ways:
app('theme')->set($themeName)
Or use function helper
setTheme($themeName);//function helper
or use Facade
Theme::set($themeName);//use facade
Theme::client();//return object of MobileDetect
Theme::pathTheme($name = null);//return path to current theme or name input
Theme::currentTheme();//return name of current theme
Theme::reset();//reset default theme
Theme::set();//set theme
Theme::allTheme($except = [], $config = true);//get list theme in folder themes
themeAsset($name = false);//link to asset current theme or by theme name
setTheme($name);// change theme by theme name
By default package use provider config
of laravel, you can change to provider you want by edit config 'config_provider' => 'provider_name'
P/s: excuse me my English.