brenelz / laravel-childthemes by brenelz

This package allows you to create multiple themes and only overwrite the default when you need to instead of copying entire theme.
9
4
1
Package Data
Maintainer Username: brenelz
Maintainer Contact: brenelz@brenelz.com (Brenley Dueck)
Package Create Date: 2014-12-09
Package Last Update: 2014-12-14
Home Page:
Language: PHP
License: Unknown
Last Refreshed: 2024-04-27 03:02:51
Package Statistics
Total Downloads: 9
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 4
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

Laravel Child Themes

Create multiple themes in Laravel and only overwrite the default when you need to instead of copying the entire theme.

For example you could have the following directory structure.

  • views/DefaultTheme/
    • master.blade.php
    • index.blade.php
    • contact.blade.php
  • views/HolidayTheme/
    • master.blade.php

In this case if you have the DefaultTheme as the default, and the HolidayTheme as the active - it will render the HolidayTheme master page but keep the index and contact views untouched from the DefaultTheme.

Please note that child themes are not limited to blade. They are bound to the Laravel ViewFactory so Twig and other template engines will work as well.

ThemeHelper Facade

Recently I have added a ThemeHelper facade and changed up the config file. In some cases you don't want to copy the entire blade file but instead just want to swap out strings based on which theme is active.

To use this new feature just put something like the following in your view files.

<h1>{{ThemeHelper::get('siteName')}}</h1>

It will then output whatever site name you have defined in your config for the active theme.

Installation

Add the following to the require section of your composer.json file and run an update:

"brenelz/laravel-childthemes": "dev-master",

The final step is adding the service provider to your Laravel application's app.php:

'Brenelz\Childthemes\ChildthemesServiceProvider',