culabs / admin-bundle
Easy admin generator for symfony2
Installs: 339
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 1
Open Issues: 1
Language:CSS
Type:symfony-bundle
Requires
- php: >=5.3.3
- knplabs/knp-menu-bundle: 2.*@dev
- knplabs/knp-paginator-bundle: 2.*@dev
- lexik/form-filter-bundle: 4.*@dev
Suggests
- culabs/testing-bundle: For test
- doctrine/data-fixtures: For test
- phpunit/phpunit: For test
- polishsymfonycommunity/symfony-mocker-container: For test
README
Resumen
Este bundle es con el objetivo de crear el módulo de administración, fundamentalmente para la creación de los casos de uso CRUD. Este bundle depende de los bundles: LexikFormFilterBundle: https://github.com/lexik/LexikFormFilterBundle KnpPaginatorBundle: http://github.com/KnpLabs/KnpPaginatorBundle KnpMenuBundle: https://github.com/KnpLabs/KnpMenuBundle
Instlación
{ "require": { "culabs/admin-bundle": "2.6.*@dev" } }
Actulizar los vendors
php composer.phar update --prefer-dist
Adicionar los bundles en AppKernel
// app/AppKernel.php public function registerBundles() { return array( // ... new CULabs\AdminBundle\CULabsAdminBundle(), new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(), new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(), new Knp\Bundle\MenuBundle\KnpMenuBundle(), // ... ); }
Configuración
Usar bootstrap_3_horizontal_layout.html.twig
como tema de los formularios en config.yml
twig: form: resources: - bootstrap_3_horizontal_layout.html.twig
Crear el fichero menu.yml
para la configuración del menú del backend
parameters: menu.backend: items:
Importar el fichero menu.yml
en config.yml
imports: - { resource: menu.yml }
Configurar cu_labs_admin
en config.yml
cu_labs_admin: menu_backend: menu.backend
Crear la plantilla base para el backend con el nombre backend_base.html.twig
{% extends 'CULabsAdminBundle:Layout:base.html.twig' %} {% block title %}CULabs Admin{% endblock %} {% block title_app_url(path('admin_dashboard')) %} {% block url_logout('#') %}
Crear la ruta admin_dashboard
que debe apuntar al dasboard, inicialmente puede hacer un redirect a cualquier otra ruta
admin_dashboard: path: /admin defaults: _controller: FrameworkBundle:Redirect:redirect route: admin_task
Publicar los assets
php app/console assets:install --symlink
Los ejemplos se desarrollarón según los siguientes entidades:
AppBundle\Entity\Task
AppBundle\Entity\Product\Product
Generar el crud para las dos entidades:
php app/console culabs:generate:crud --entity=AppBundle:Task --route-prefix=/admin/task --with-write -n
php app/console culabs:generate:crud --entity=AppBundle:Product/Product --route-prefix=/admin/product --with-write -n
Configurar el menú para los dos casos de usos en menu.yml
parameters: menu.backend: items: dashboard: route: admin_dashboard icon: fa-home task: route: admin_task icon: fa-gear product: route: admin_product icon: fa-gear
Configurar la seguridad para acceder a las acciones en security.yml
role_hierarchy: ROLE_ADMIN: - ROLE_TASK_LIST - ROLE_TASK_EDIT - ROLE_TASK_NEW - ROLE_TASK_SHOW - ROLE_TASK_DELETE - ROLE_PRODUCT_PRODUCT_LIST - ROLE_PRODUCT_PRODUCT_NEW - ROLE_PRODUCT_PRODUCT_EDIT - ROLE_PRODUCT_PRODUCT_DELETE - ROLE_PRODUCT_PRODUCT_SHOW access_control: - { path: ^/admin, roles: ROLE_ADMIN }
Probar las rutas
http://127.0.0.1:8000/app_dev.php/admin/product
http://127.0.0.1:8000/app_dev.php/admin/task
Para configurar los formularios de los filtros debe editar los ficheros src/AppBundle/Filter/TaskFilterType.php
y src/AppBundle/Filter/Product/ProductFilterType.php
y hacerlo según la documentación de LexikFormFilterBundle