2017 © Pedro PelĂĄez
 

library theme

Add theming support to your Laravel 5.* projects

image

karlomikus/theme

Add theming support to your Laravel 5.* projects

  • Thursday, February 9, 2017
  • by karlomikus1
  • Repository
  • 4 Watchers
  • 64 Stars
  • 319 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 5 Forks
  • 2 Open issues
  • 6 Versions
  • 4 % Grown

The README.md

Laravel Theme

Build Status Latest Stable Version License, (*1)

Add theming support to your Laravel 5.* projects., (*2)

Features

  • Custom theme locations
  • Support for theme inheritence with theme fallback
  • Theme assets loading
  • Artisan console commands

Install

Require it via terminal like so: ``` bash $ composer require karlomikus/theme, (*3)


Or add the package to your composer file: ``` json "karlomikus/theme": "1.*"

Next add new service provider and facade to your config/app.php file:, (*4)

``` php // Service provider Karlomikus\Theme\ThemeServiceProvider::class // Facade 'Theme' => Karlomikus\Theme\Facade\Theme::class, (*5)


Next you need to publish the config file: ``` bash $ php artisan vendor:publish

This will create a theme.php file in your config directory in which you can define your default path to themes directory., (*6)

Theme setup

Create new folder in your themes directory (default: public/themes) and add views folder (which will hold all your custom views) and theme.json file (contains information about a theme)., (*7)

``` json { "name": "Theme name", "author": "Karlo MikuĆĄ", "description": "Default theme description", "version": "1.0", "namespace": "theme-folder", "parent": null }, (*8)


This are all available attributes, but the required ones only include: `name`, `author` and `namespace`. Value of `namespace` must be the name of the theme's folder. If you want your theme to depend on other theme views, just include a parent theme namespace in `parent` attribute. Example folder structure:
  • public/
    • themes/
      • theme-1/
        • views/
        • theme.json

## Usage The library will firstly check all available valid themes in theme directory. You can then set a theme by it's namespace: ``` php Theme::set('theme-namespace');

Then you call views like you usually do in laravel:, (*9)

``` php view('home');, (*10)


This will firstly check if there is a home.blade.php in current theme directory. If none is found then it checks parent theme, and finally falls back to default laravel views location. You can also inject theme instance using ThemeInterface. ``` php use Karlomikus\Theme\Contracts\ThemeInterface; private $theme; public function __construct(ThemeInterface $theme) { $this->theme = $theme }

Theme path

You can set default path to themes folder in config/theme.php file. Please note that currently themes folder must be somewhere inside public folder., (*11)

Available methods

Here's the list of methods you can access:, (*12)

``` php // Activate/set theme Theme::set('theme-namespace');, (*13)

// Get all available themes as an array Theme::all();, (*14)

// Get currently active Theme::get();, (*15)

// Get theme by namespace Theme::get('specific-namespace');, (*16)

// Override default theme path Theme::setDefaultThemePath('new/path/to/themes');, (*17)

// Check if theme exists Theme::has('theme-namespace');, (*18)

// Render theme path URL theme_url('assets/style.css');, (*19)


### Artisan commands Get a table of all found themes: ``` bash $ php artisan theme:list +------------------+-------------+------------+ | Name | Author | Namespace | +------------------+-------------+------------+ | Bootstrap theme | Karlo Mikus | bootstrap | | Default theme | Test Author | default | | Foundation theme | Lorem Ipsum | foundation | | Test theme | Dolor Sitha | test | +------------------+-------------+------------+

Create a theme directory with config file: ``` bash $ php artisan theme:make, (*20)

Template name:, (*21)

Theme name, (*22)

Template author:, (*23)

Firstn Lastn, (*24)

Theme created succesfully! ```, (*25)

Changelog

Please see CHANGELOG for more information what has changed recently., (*26)

TODO

  • Contact me for ideas

The Versions

09/02 2017

dev-master

9999999-dev https://github.com/karlomikus/theme

Add theming support to your Laravel 5.* projects

  Sources   Download

MIT

The Requires

  • php >=5.5.9

 

The Development Requires

by Karlo MikuĆĄ

laravel theme views

03/10 2016

v1.0.4

1.0.4.0 https://github.com/karlomikus/theme

Add theming support to your Laravel 5.* projects

  Sources   Download

MIT

The Requires

  • php >=5.5.9

 

The Development Requires

by Karlo MikuĆĄ

laravel theme views

30/09 2016

v1.0.3

1.0.3.0 https://github.com/karlomikus/theme

Add theming support to your Laravel 5.* projects

  Sources   Download

MIT

The Requires

  • php >=5.5.9

 

The Development Requires

by Karlo MikuĆĄ

laravel theme views

05/03 2016

v1.0.2

1.0.2.0 https://github.com/karlomikus/theme

Add theming support to your Laravel 5.* projects

  Sources   Download

MIT

The Requires

  • php >=5.5.9

 

The Development Requires

by Karlo MikuĆĄ

laravel theme views

31/10 2015

v1.0.1

1.0.1.0 https://github.com/karlomikus/theme

Add theming support to your Laravel 5.* projects

  Sources   Download

MIT

The Requires

  • php >=5.5.9

 

The Development Requires

by Karlo MikuĆĄ

laravel theme views

21/10 2015

v1.0.0

1.0.0.0 https://github.com/karlomikus/theme

Add theming support to your Laravel 5.* projects

  Sources   Download

MIT

The Requires

  • php >=5.5.9

 

The Development Requires

by Karlo MikuĆĄ

laravel theme views