plutonex/themes

Theme Managing Library for Laravel 4 php framework

Installs: 26

Dependents: 0

Stars: 15

Watchers: 1

Forks: 3

Open Issues: 1

Language: PHP

1.0.2 2013-08-10 11:22 UTC

README

Theme library for Laravel 4.

How to install

Add dependency to the Laravel composer.json file

"require": {
        "plutonex/themes": "1.0.*"
    }

and add Service Provider to the app/config/app.php file under array key 'providers'

'Plutonex\Themes\ThemesServiceProvider',

You are required to create a 'themes' folder under the public directory of laravel app. For example all your themes should be developed under /public/themes/

Your themes should be basic laravel views inside the themes directory within a directory with theme name. For example, if you want to create a theme called 'myTheme', the layouts of the theme should be within the path /public/themes/myTheme/layouts

Tip

You can create sub directories under your theme folder, like 'partials' to keep parts of the theme file in common and 'assets' folder to keep all your assets.

How to use inside Routes

There are many ways to use this library. The easiest way is to set the theme and layout inside a app/routes.php

    Route::get('/', function()
    {
        pxTheme::setTheme('myTheme');
        pxTheme::setLayout('default');

        return View::make('hello');
    });

    Route::group(array('prefix' => 'admin'),function()
    {
        pxTheme::setTheme('adminTheme');
        pxTheme::setLayout('default');

        Route::get('dashboard', function()
        {
            return View::make('admin.dashboard');
        }

        Route::get('users', function()
        {
            pxTheme::setLayout('list');

            return View::make('admin.dashboard');
        }

    });

You can either choose to set theme and layout as shown above or simply bind your URI pattern with theme and layout.

 // app/routes.php 

 // Theme::when({pattern},{layout},{theme});

 Theme::when('/','homePage','myTheme');
 Theme::when('/*','default','myTheme');

 Theme::when('admin','default','adminTheme');
 Theme::when('admin/*','appLayout','adminTheme');

Blade Helpers

@px.theme('themeName')

This helps you set the theme within a blade view template

@px.layout('layoutName')

This helps you set the theme layout within a blade view

@px.include('path.to.view')

This helps include a view file within the current theme directory