Download the PHP package roland/laravel-theme-manager without Composer
On this page you can find all versions of the php package roland/laravel-theme-manager. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-theme-manager
This package is a theme management package for Laravel with a set of tools to help you easily and quickly build a theme management system for your laravel based project. The goal of this package is to remain as flexible as possible and provide a way to use it internally.
Supports
Version | Laravel Version | PHP Version |
---|---|---|
1.0 | 5.5 | 7.1, 7.2 |
This package supports Blade, PHP and Twig template engines.
Features
This package provides tools for the following:
- Change themes on runtime.
- Get theme meta infomations.
- Support fallback templates.
- Preview a theme using URL query parameter.
- Extend the theme functionalities.
Installation
To get started with this package, add the following lines to your composer.json
file and run composer update
.
Or, Run composer require
from your terminal to install the package via the Composer package manager:
Service Provider & Facade
If you disabled the laravel's automatic package discovery feature these will help you.
Publish Configuration
Much of the package comes preconfigured, so that you can start building your API right away after you installed. You can either use .env
file or config/themes.php
to configure most of the package.
You also can publish the configuration file with the following Artisan command:
Enable or disable the package
You can set the value to true or false to enable or disable the package.
Default theme provider
Here you may specify which of the theme provider connections below you wish to use as your default provider.
Available drivers: "file"
Default theme
Here you may specify the default theme.
Themes path
Here you may specify a path for themes.
Basic Usage
Create a theme
To create a theme, first, add a themes
folder to the resources
folder of your app.
Inside the themes
folder, any folder you create with a theme.json
the file represents a theme.
The folder structure will look like this:
Theme information file (theme.json)
This package only recognize a folder as a theme when a file called theme.json
exists.
This is the basic structure of the theme information file. You can add any number of key, value pairs to the file and retrieve later.
Basic methods
To simply display a view (welcome) using the current theme. Otherwise fallback (index).
return Theme::view(['welcome', 'index']);
To set the current theme on runtime.
return Theme::use('mytheme')->view(['welcome']);
To set the current theme and update the default config theme.
Theme::set('mytheme');
Add theme
parameter to preview a theme on runtime.
https://localhost/?theme=mytheme
You also can change the theme provider at runtime.
return Theme::driver('file')->view(['welcome']);
To check whether a theme exists or not.
Theme::exists('mytheme');
To check all themes.
Theme::all();
Ps: it will return a json with all the installed themes
Return theme's information as json
.
Pass data to views.
Advanced
We allow you extend or add more theme providers using extend
function on runtime without a hassle.
Configure Middleware
- Publish the package: ``
- On add to protected
'theme' => \App\Http\Middleware\CheckTheme::class,
-
Use middleware on the routes
Route example:
Route::get('/', ['uses' => 'TestController@home'])->middleware('theme:ThemeName');
ps. using the theme will allow you to use the deafult Laravel with the currect theme :)
License
This package is licensed under the The MIT License (MIT).