Section symfony

Partitech Sonata Extra Bundle : Firewall

Écrit par tbourdin le 25/12/2023
Tags :   Sonata-page, symfony
The SonataExtraBundle provides an enhanced set of functionalities for managing firewall rules within the Sonata Admin environment. This bundle allows administrators to create and manage rules for filtering requests based on various criteria like stop words, IP addresses, and User Agents. Features Firewall Rule Management: Define and manage firewall rules to filter incoming requests. Support for Multiple Criteria: Filter requests based on stop words, IP addresses, and User Agents. Dynamic R...

Partitech Sonata Extra Bundle : Cookie Consent Block (GDPR)

Écrit par tbourdin le 09/12/2023
Tags :   sonata, Sonata-page, symfony
Overview The Cookie Consent Block is a customizable solution integrated into the Sonata Extra Bundle to manage user consent for cookies in compliance with GDPR regulations. It offers a flexible and user-friendly interface for cookie consent management. Screens Usage The Cookie Consent Block is designed to be easy to use and integrate. Add the block to your Sonata admin dashboard or any other part of your application where you need to display a cookie consent notice. Configuration Settings...
Selection_254

SF6 / Sonata 5 : Gérer une interface OneToMany dans un CRUD avec les CollectionType de sonata

Écrit par tbourdin le 27/11/2022
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony, admin
Dans cet exemple nous allons prendre le cas concret d’une interface simple qui comprend des éléments multiples. Nous avons choisis d’utiliser une table « Projets » dans laquelle nous allons affecter des documents. Donc pour un projet, nous pouvons affecter plusieurs documents. Et pour faciliter l’administration, nous allons faire en sorte de pouvoir gérer notre interface imbriquée directemen...

Symfony 4 / Sonata : Créer une deuxième interface avec la même entité

Écrit par tbourdin le 06/11/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Nous allons voir ici comment créer une deuxième interface alors que l’entité est déjà utilisée dans une interface CRUD.Le problème des interfaces générées automatiquement est qu’elles utilisent le nom de l’entité pour construire les routes.Si on configure une deuxième interface avec une entité déjà utilisée on se retrouvera avec la même route que la premi&egr...
Sélection_413-1

Symfony 4 / Sonata : gérer une interface d'admin multi langue

Écrit par tbourdin le 30/10/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Nous allons voir comment configurer une interface d’administration en multilingue avec un bouton de sélection de langue (language switcher).Installation de translationBundle composer require sonata-project/translation-bundle bin/console assets:install Le language switcher nécessite un filtre twig spécifique.Sinon vous aurez une erreur de type :Unknown "language_name" filter.Il faut alors installer ces deux bundles composer require twig/intl-extra composer require t...
Sélection_165

Symfony 4 / Sonata : gérer une interface d'admin multi serveur

Écrit par tbourdin le 11/09/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Nous allons voir comment gérer une interface d’admin qui se connecte à plusieurs serveurs.Dans notre exemple nous avons monté un serveur mysql par défaut qui gère notre interface d’admin. Les utilisateurs, les médias, etc.Et nous avons monté un serveur postgreSql qui contient une table que nous souhaitons administrer.Nous pouvons ajouter autant de serveurs que nous souhaitons.Notre serveur MysqlNous avons classiquement monté ...
Selection_427

Symfony 4 / Sonata : Utiliser des champs en json

Écrit par tbourdin le 10/09/2020
Catégorie :   PHP, symfony, Sonata
Nous allons voir comment exploiter les types de champs Jsonb de postgreSql dans une interface générée de sonata.Nous partons du postulat que vous maîtrisez déjà les concepts basiques de Symfony, Sonata, et PostgreSql.Tout d’abord créons une table toute simple dans postgreSql qui contiendra un champs de type Jsonb. CREATE SEQUENCE public.table1_id_seq; CREATE TABLE public.table1 ( id integer DEFAULT nextv...
Sélection_152-1

Symfony 4 / Sonata : créer un type de champs de formulaire personnalisé

Écrit par tbourdin le 09/09/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Nous allons voir comment nous pouvons créer un type de champ personnalisé. Dans notre exemple, nous voulons un champ qui a le même rendu qu’un type de champ MoneyType mais dans lequel nous pourrons ajouter n’importe quel suffixe, car le champ money n’accepte que les devises. Or dans notre projet nous voulons utiliser des kilogrammes, des mois ou encore des kilomètres. Bref, tout un tas de type de données possibles.On commence par crée...
Sélection_218-1

Symfony 4 / Sonata : Créer une interface de paramétrage.

Écrit par tbourdin le 23/08/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Un des besoins récurent d’un projet web, est d’avoir besoin de paramètres globaux pour votre application. Généralement, on stock ça dans un fichier yml et le tour est joué. Mais cela se complique lorsque le client demande à pouvoir avoir la main dessus.Lui donner les accès FTP/SSH pour les modifier ? Non, certainement pas. Surtout si c’est pour refiler cette tache au stagiaire.Il faudra lui mettre à disposition u...
entete_sonata_page

Symfony 4 / Sonata : Installer le CMS Sonata Page

Écrit par tbourdin le 07/07/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, CMS, Sonata-page, symfony
Sonata est une suite de bundle pour Symfony 4. L’un d’entre eux permet de gérer du contenu à la manière de WordPress.Vous trouverez assez peu de documentations sur le net, et pour cause, l’installation est bugué, et les rares personnes qui se sont frotté au bugtracker sur github, se sont vu répondre un RTFM bien en règle.Rester sur ce genre d’échec n’est pas vraiment mon style.Voici donc comment installer et...
Sélection_238-1

Symfony 4/ Sonata : Créer une page d’export csv

Écrit par tbourdin le 02/04/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, export, csv, symfony
Les interfaces par défaut de Sonata sont des CRUD. Ce qui est archi pratique (sinon on ne l’utiliserais pas). Mais une administration n’est pas uniquement composée de CRUD. Ici nous allons voir comment on peux faire une page d’export de donnée de manière simple, en supprimant les vues par défaut des interfaces, et en créant la notre pour gérer notre bouton d’export. 1 – Ajout de la li...
Sélection_131

Symfony 4/ Sonata : Créer une interface imbriquée (nested interface)

Écrit par tbourdin le 02/03/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Nous allons voir comment on construit une interface d’admin, composée de plusieurs tables qui ont des relations Many2Many.Reprenons notre exemple d’interface many/many disponible ici Nous avons une table zone, qui est composé de plusieurs éléments de la table départements. Sur ces départements, nous avons des agences.Pour couronner le tout, et pour donner du sens à cette chaîne de donn&e...
Sélection_128-1

Symfony4 / Sonata : Créer un admin Many/Many

Écrit par tbourdin le 01/03/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, symfony
Nous allons ici développer l’ensemble des manipulations pour construire une interface many to many via Sonata.Nous prendrons comme exemple une gestion de zones avec une liaison par départements. Chaque zones est donc constitué d’un liaison multiple avec la table département.Sous MysqlWorkbench, cela donne ceci : Pour générer les entity, nous utilisons la commande suivante : php bin/console doctrine:mapping:im...
Selection_428

Symfony / Sonata : Ajouter une fonction clone dans un CRUD

Écrit par tbourdin le 24/02/2020
Catégorie :   PHP, symfony
Tags :   sonata, symfony
Pour ajouter une fonctionnalité de duplication d’objet sur une liste CRUD, il faut modifier la liste en ajoutant le bouton, configurer une route, et exécuter un code de duplication d’objet, et pour finir, référencer le controller qui accueillera notre fonction dans notre interface, via son service.Ajouter le bouton :Dans votre controller ajouter le bouton en donnant en référence le template du bouton.Ici nous mettons le path ‘Admin/l...
Sélection_082-1

Symfony 4 / Sonata : Créer une interface CRUD imbriquée (child 1->N) avec l’ordre en drag’n Drop

Écrit par tbourdin le 21/02/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, drag'n drop, symfony
En gros on souhaites faire une interface CRUD, 1N, avec laquelle, lorsque l’on est sur l’édition d’un élément, on ajoute un panel pour gérer tous les éléments fils.Ici nous avons une table wtype, avec une table wconf qui contient une série d’enregistrement reliés a un item wtype. Tout comme pour l’exemple d’implémentation du sortable avec drag&r...
Sélection_082-1

Symfony 4 / Sonata : Gérer l’ordre en drag’n drop

Écrit par tbourdin le 20/02/2020
Catégorie :   PHP, symfony, Sonata
Tags :   sonata, drag'n drop, symfony
Il faut installer pixassociates/sortable-behavior-bundle et stof/doctrine-extensions-bundle composer require stof/doctrine-extensions-bundle composer require pixassociates/sortable-behavior-bundle Ajouter la configuration dans pix_sortable.yamlEn ajoutant l’entité et le champs dans position_field (ici wconf, et le champs position) pix_sortable_behavior: db_driver: orm # mongodb default value : orm position_field: default: position #default value : position ...