Pour les sites Web de petite et moyenne taille.
CMS Open Source pour créer un site web e-commerce ?
Vous souhaitez lancer votre site e-commerce, mais vous ne connaissez pas les étapes et la commande pour les faire ? Vous souhaitez avoir un aperçu
Hébergement site web Tunisie , serveur vps cloud – Zenhosting
Trouvez le nom de domaine parfait.
Vous souhaitez transférer un domaine à Zenhosting.
Outil de recherche des informations WHOIS.
Obtenez un e-mail personnalisé et 100 Go de stockage.
Windows, macOS, Linux, Android, iOS, ….
Pour les sites Web de petite et moyenne taille.
L'univers E-commerce performant et simplifié.
Un seul hébergement pour tous vos sites web.
Sécurisez votre site web.
Des ressources spécifiques pour le développement.
Pour les entreprises qui souhaitent investir dans des serveurs polyvalents.
Identifiez les problèmes de référencement.
Accueil » Le bundle EasyAdmin pour Symfony
Un admin bundle (ou module d’administration en bon français) est un ensemble d’outils permettant de créer des interfaces d’administration plus ou moins avancées, et ce, sans réinventer la roue.
Tout ceux qui ont déjà eu à développer des back-offices customs savent à quel point ils peuvent être pénibles à faire évoluer et à maintenir dans le temps. Alors pourquoi s’embêter quand un admin bundle peut facilement faire 70% du travail et nous permettre de se concentrer sur les features spécifiques des clients ?
Côté Symfony, il existe 2 bundles d’administration réputés dont les documentations sont officiellement référencées : EasyAdmin et Sonata. Lequel choisir et dans quelles circonstances ?
Il faut noter que les deux bundles, bien qu’ayant la même mission, n’ont pas les mêmes cibles.
L’installation se fait simplement grâce à l’utilisation des recettes Symfony Flex.
composer require admin
Cette recette va automatiquement générer les fichiers de configuration nécessaires au bon fonctionnement de EasyAdmin. Vous aurez un fichier de route vous permettant de sélectionner le préfixe à utiliser pour accéder à l’administration, et un fichier de configuration pour définir les entités qui seront administrables (vous pourrez aussi gérer le design du backoffice).
L’utilisation du bundle se fait très simplement grâce à la configuration YAML.
easy_admin:
entities:
# List the entity class name you want to manage
- App\Entity\Product
- App\Entity\Category
- App\Entity\User
Contrôle d’accès
Ce bundle vise à apporter quelques fonctionnalités supplémentaires, dont un contrôle d’accès basé sur les rôles. Grâce à cela, il est possible de dire : “l’administration des produits ne doit être accessible que des Product Manager”. Ce qui se concrétise de cette manière :
easy_admin:
entities:
Product:
class: App\Entity\Product
role_prefix: ROLE_PRODUCT_MANAGER
Ainsi, toutes les vues liées à l’entité Product seront bloquées si l’utilisateur n’a pas le rôle ROLE_PRODUCT_MANAGER. En revanche le lien est toujours affiché dans le menu. Ceci n’est pas forcément toujours utile, voire encombrant pour les autres rôles. Un petit bout de configuration pour régler ceci :
easy_admin:
menu:
- { entity: 'Product', role: ROLE_PRODUCT_MANAGER }
Voilà, le lien n’est visible que par les personnes autorisées ! Il faut toutefois noter que seule l’entrée dans le menu est cachée. Ceci n’empêche pas d’accéder à la page par URL. C’est pour cela qu’il faut bien préciser le rôle sur la configuration de l’entité et pas uniquement dans celle du menu.
Si je reprends mon exemple, le Product Manager ne peut que manager l’entité Product. Dorénavant, il sera également en charge des Stocks et du Shipping.
Voici comment configurer le fichier security.yaml en conséquence :
security:
role_hierarchy:
ROLE_SUPER_MANAGER: [ROLE_PRODUCT_MANAGER,
ROLE_STOCK_MANAGER, ROLE_SHIPPING_MANAGER]
On pourra affecter ce nouveau rôle aux Product Manager qui hériteront automatiquement des responsabilités des stocks et des envois.
Les listings acceptent une configuration de filtres DQL. Ceci permet de limiter les données affichées par défaut. On peut, par exemple, vouloir un listing des produits dont les stocks sont quasiment écoulés :
list:
dql_filter: 'entity.stock < 50'
Et voilà, seulement les produits dont le stock est inférieur à 50 seront affichés dans la liste. A noter que par défaut, le DQL paramétré dans l’action “list” s’applique également à l’action “search”. Il est néanmoins possible de définir un autre filtre DQL sur cette dernière afin d’avoir deux comportements différents, si besoin.
Bien que tout à fait correcte, l’interface de base reste très basique (basée sur Bootstrap et suivant le template AdminLTE). Et c’est tout ce qu’on demande à un module d’administration : de la fonctionnalité, pas de l’esthétique.
Alors n’hésitez pas à customiser vos interfaces afin d’y apporter votre propre identité visuelle ou des fonctionnalités supplémentaires.
Vous pouvez tout simplement rajouter des assets custom via la configuration :
easy_admin:
design:
assets:
css:
- 'bundles/app/css/custom_admin.css'
js:
- 'bundles/app/js/custom_admin.js'
Ou bien surcharger n’importe quel template de la façon suivante :
easy_admin:
design:
templates:
# Twig namespace template syntax
paginator: '@App/Default/fragments/_paginator.html.twig'
Si la surcharge du template n’est nécessaire que pour certaines entités, il est possible de déplacer la configuration globale à l’intérieur de celles des entités concernées :
easy_admin: entities: Product: # ... templates: # Twig namespace template syntax paginator: '@App/Default/fragments/_paginator.html.twig'
Il y a un bouton “Réinitialiser les filtres”. Ce bouton n’est pas disponible par défaut mais se révèle très pratique. Voici comment le rajouter :
{% extends 'bundles/EasyAdminBundle/default/list.html.twig' %}
{% set path = path('easyadmin', {
'entity': app.request.query.get('entity'),
'action': app.request.query.get('action'),
'menuIndex': app.request.query.get('menuIndex'),
'submenuIndex': app.request.query.get('submenuIndex'),
'sortField': app.request.query.get('sortField'),
'sortDirection': app.request.query.get('sortDirection'),
'page': app.request.query.get('page')
}) %}
{% block list_form_filters %}
...
{% endblock list_form_filters %}
Un simple lien <a> avec un href pointant sur le chemin précédemment calculé fera l’affaire :
<a class="button" href="{{ path }}">
<small>Réinitialiser les filtres</small>
</a>
Et voilà ! Simple et efficace.
Your page rank:
Vous souhaitez lancer votre site e-commerce, mais vous ne connaissez pas les étapes et la commande pour les faire ? Vous souhaitez avoir un aperçu
Lorsque vous essayez de charger une page, vous pouvez recevoir un message d’erreur indiquant “Ce site est inaccessible”. Si vous rencontrez des difficultés pour vous
Symfony UX est une initiative et un ensemble de bibliothèques permettant d’intégrer de manière transparente des outils JavaScript dans votre application. Par exemple, vous souhaitez afficher
Nous sommes un fournisseur d’hébergement Web dont la mission est d’apporter le succès à tous ceux qui vont en ligne.
Prenez votre communication avec vous en installant des applications complètes sur votre appareil Android, iOS windows et MacOs