2017 © Pedro Peláez
 

library menubuilder

A Menu Builder and renderer for Laravel4, Sentry2, and Twitter Bootstrap

image

monstergfx/menubuilder

A Menu Builder and renderer for Laravel4, Sentry2, and Twitter Bootstrap

  • Friday, May 2, 2014
  • by MonsterGfx
  • Repository
  • 1 Watchers
  • 4 Stars
  • 39 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 1 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

L4-Smarty-Menubuilder

A Menubuilder for Laravel 4, Twitter Bootstrap, Cartalyst/Sentry 2, and Dark/SmartyView., (*1)

Introduction

In developing a number of projects using Laravel4, Sentry2, and Smarty, I needed a way to manage menus in the GUI. In the past, I've built menu tables in the database and menu editors, but in general I don't need that level of flexibility (or overhead)., (*2)

So this time around, I was looking for a way to define my menus in code and generate menus automatically. What I came up with was this Menubuilder, which I am now rebuilding into a package which I will use in multiple projects., (*3)

Note that this project is tailored very closely to my requirements and may not be suitable outside of my context., (*4)

Pull requests are welcome. Please note that I am using git flow for my workflow. Don't know what that is? Check out http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/., (*5)

Or have a look at one of these screen casts:, (*6)

(The links above were found at https://github.com/nvie/gitflow)., (*7)

Usage

Defining your menus in code

Somewhere in your code (it doesn't matter where), define a menu by inserting a comment like this:, (*8)

// @menu <menu text>|<menu icon>|>sort order>

or, in a docblock:, (*9)

/**
 * @menu <menu text>|<menu icon>|>sort order>
 */

For example,, (*10)

// @menu Administration|icon-star|5

The line above defines a menu with the title "Administration", a Twitter Bootstrap start icon, and a sort order of 5 (ie. it comes after 0, 1, 2, 3, and 4)., (*11)

Menu items are inserted into your code in a similar way:, (*12)

// @menuitem <menu>|<item text>|<item icon>|<route>|<permissions>|<sort order>

or, (*13)

 /**
  * @menuitem <menu>|<item text>|<item icon>|<route>|<permissions>|<sort order>
  */

For example,, (*14)

// @menuitem Administration|List Users|icon-user|list-users|user.list|3

This defines a menu item under the "Administration" menu with the text "List Users", a Twitter Bootstrap "user" icon, routes to "list-users", requires the "user.list" permission, and has a sort order of 3., (*15)

Taken together, the two examples above give a menu that looks something like this:, (*16)

+------------------+
| * Administration |
+------------------+
| x List Users     |
+------------------+

(where the 'x' is the user icon)., (*17)

Generating the menus

The menus are generated via an artisan command:, (*18)

php artisan menu:make

This command will scan your source files and extract all the @menu and @menuitem lines, parse them, and write a configuration file: app/config/menus.php., (*19)

This configuration will then be used at run time to generate menus., (*20)

Using the menubuilder

The menubuild provides a method to generate the appropriate menus: Menubuilder::build()., (*21)

I use it in a default view composer to ensure that the menus are built automatically for each page:, (*22)

View::composer('*',function($view){
    // add the menus (if any)
    $view->with('menus', Menu::build());
    // add other stuff here...
});

The build() method returns an array that looks something like this:, (*23)

Array
(
    [Administration] => Array
        (
            [icon] => icon-star
            [sort] => 5
            [items] => Array
                (
                    [0] => Array
                        (
                            [text] => List Users
                            [icon] => icon-user
                            [route] => list-users
                            [permission] => user.list
                            [sort] => 1
                        )
                    [1] => Array
                        (
                            [text] => Add New User
                            [icon] => icon-user
                            [route] => create-user
                            [permission] => user.edit
                            [sort] => 1
                        )
                )
        )
)

This menu can be passed to a view to be rendered as you see fit., (*24)

The Versions

02/05 2014

dev-develop

dev-develop http://github.com/MonsterGfx/L4-Smarty-Menubuilder

A Menu Builder and renderer for Laravel4, Sentry2, and Twitter Bootstrap

  Sources   Download

BSD-3-Clause

The Requires

 

by Dave Thomas

bootstrap menu laravel4

05/03 2014

dev-master

9999999-dev http://github.com/MonsterGfx/L4-Smarty-Menubuilder

A Menu Builder and renderer for Laravel4, Sentry2, and Twitter Bootstrap

  Sources   Download

BSD-3-Clause

The Requires

 

by Dave Thomas

bootstrap menu laravel4

05/03 2014

v0.1.1beta

0.1.1.0-beta http://github.com/MonsterGfx/L4-Smarty-Menubuilder

A Menu Builder and renderer for Laravel4, Sentry2, and Twitter Bootstrap

  Sources   Download

BSD-3-Clause

The Requires

 

by Dave Thomas

bootstrap menu laravel4

16/07 2013

v0.1.0beta

0.1.0.0-beta

A Menu Builder and renderer for Laravel, Twitter Bootstrap, and Dark/SmartyView

  Sources   Download

BSD-3-Clause

The Requires

 

by Dave Thomas