ctf0 / simple-menu
create a menu that support page (multiLocale 'title/ url/ prefix', nesting, template, static/dynamic, roles & permissions).
Fund package maintenance!
ctf0
Installs: 99
Dependents: 0
Suggesters: 0
Security: 0
Stars: 19
Watchers: 3
Forks: 2
Open Issues: 0
Language:Blade
- dev-master
- v4.1.6
- v4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.1
- v4.0.0
- v3.3.7
- v3.3.6
- v3.3.5
- v3.3.4
- v3.3.3
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.9
- v3.2.8
- v3.2.7
- v3.2.6
- v3.2.5
- v3.2.4
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.2
- v2.0.1
- v2.0.0
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2023-01-03 23:34:09 UTC
README
Create menus & pages that support (multiLocale "title, url, body, ...", nesting, template, static & dynamic data, roles & permissions).
- package requires Laravel v5.5+
- package rely heavily on caching so make sure to install one of the tag enabled drivers Memcached / Redis
Installation
-
composer require ctf0/simple-menu
-
after installation, run
php artisan sm:setup
to add- package routes to
routes/web.php
- package assets compiling to
webpack.mix.js
- package routes to
-
publish the packages assets with
php artisan vendor:publish
-
install JS dependencies
yarn add vue axios vue-tippy@v2 vuedraggable vue-notif vue-multi-ref vue-awesome@v2 list.js
-
add this one liner to your main js file and run
npm run watch
to compile yourjs/css
files.- if you are having issues Check.
// app.js window.Vue = require('vue') require('../vendor/SimpleMenu/js/manager') new Vue({ el: '#app' })
Config
config/simpleMenu.php
return [ /* * the menu list classes to be used for "render()" */ 'listClasses' => [ 'ul' => 'menu-list', 'li' => 'list-item', 'a' => 'is-active', ], /* * the path where we will save the routes list */ 'routeListPath' => storage_path('logs/simpleMenu.php'), /* * where to redirect when a route is available in one locale "en" but not in another "fr" ? */ 'unFoundLocalizedRoute' => 'root', /* * package models */ 'models'=> [ 'user' => App\User::class, 'page' => \ctf0\SimpleMenu\Models\Page::class, 'menu' => \ctf0\SimpleMenu\Models\Menu::class, ], /* * when adding a page which is a nest of a nother to a menu, ex. * * root * | child 1 * | child 2 "add this along with its childrens to another menu" * | child 3 * * do you want to clear its parent and make it a root ? */ 'clearPartialyNestedParent' => true, /* * when removing a root page from a menu, ex. * * root "remove" * | child 1 * | child 2 * | child 3 * * do you want clear all of its 'Descendants' ? */ 'clearRootDescendants' => false, /* * when removing a nest from a list, ex. * * root * | child 1 * | child 2 "remove" * | child 3 * * do you want to reset its hierarchy ? */ 'clearNestDescendants'=> false, /* * when deleting a page "from the db", ex. * * page "delete/destroy" * | nested child 1 * | nested child 2 * | nested child 3 * * do you also want to delete all of its children ? */ 'deletePageAndNests' => false, /* * package routes url & route name prefix */ 'crud_prefix' => 'admin', /* * all the package controllers * * if you need to change anything, just create new controller * and extend from the below original * ex. "class ExampleController extends PagesController" */ 'controllers'=> [ 'permissions' => '\ctf0\SimpleMenu\Controllers\Admin\PermissionsController', 'admin' => '\ctf0\SimpleMenu\Controllers\Admin\AdminController@index', 'users' => '\ctf0\SimpleMenu\Controllers\Admin\UsersController', 'pages' => '\ctf0\SimpleMenu\Controllers\Admin\PagesController', 'roles' => '\ctf0\SimpleMenu\Controllers\Admin\RolesController', 'menus' => '\ctf0\SimpleMenu\Controllers\Admin\MenusController', ], ];
Usage
-
add
SMUsers
trait to your User Modeluse ctf0\SimpleMenu\Models\Traits\SMUsers; // ... class User extends Authenticatable { use Notifiable, SMUsers; }
-
visit
localhost:8000/admin