# Laclic SovBundle Administration basé sur EasyAdmin 3. Développé par la Clic! Require : - Symfony > 5.3 - EasyAdmin > 5.3 - FOS/Ckeditor-bundle: "^2.2", ## Instalation en version développement sur un projet : Si tu démarres un nouveau projet il te suffit de cloner le projet : https://gitea.laclic.fr/Laclic/DefaultProjectSf5 - À la racine de ton projet créer un dossier Lc/AdminBundle/ - Dans le dossier Lc/AdminBundle : ``` git clone https://gitea.laclic.fr/Laclic/AdminBundle.git . ``` - Initialisation : - Création des entités de base, créer une entité User.php et File.php, ajouter dans la configuration de doctrine les lignes suivantes ``` doctrine: orm: resolve_target_entities: Lc\SovBundle\IModel\User\UserInterface: App\Entity\User Lc\SovBundle\Doctrine\Extension\FileInterface: App\Entity\File #... ``` - Instalation ckeditor `php bin/console ckeditor:install` `php bin/console assets:install public - Créer la config fos_ckeditor.yaml ``` fos_ck_editor: input_sync: true default_config: base_config configs: base_config: filebrowserBrowseRoute: file_manager filebrowserBrowseRouteParameters: conf: default module: ckeditor format_tags: 'p;h2;h3' toolbar: - { name: "styles", items: ['Bold', 'Italic','Underline', 'Strike']} - { name: "paragraph", items: ['Format', 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote'] } - { name: "link", items: [ 'Link', 'Unlink'] } - {name: 'insert', items: [ 'Image' ]} - {name: 'document', items: [ 'Source' ]} simple_config: toolbar: - { items: ['Bold', 'Italic', 'Underline', 'Colors', 'Source'] } twig: form_themes: - '@FOSCKEditor/Form/ckeditor_widget.html.twig' ``` - Créer la config artgris_file_manager.yaml ``` artgris_file_manager: conf: default: dir: "../public/uploads" type: 'image' ``` - Enjoy ! ### Pour les projet Aquarium, Laclic, Le plat pentu (et peut être d'autres) suit cette préocédure : - Compare ton .gitignore avec le gitignore de DefaultProjectSf5 et ajoute les lignes manquantes - Modifier composer.json dans “autoload” ajouter : ```` "autoload": { "psr-4": { "App\\": "src/", "Lc\\": "Lc/" } }, ```` - Dans le dossier `config` de ton projet : - Modifier `bundles.php` et ajouter : ```` Lc\SovBundle\SovBundle::class => ['all' => true], ```` - Modifier `services.yaml` et ajouter : ```` Lc\SovBundle\: resource: '../Lc/AdminBundle/' exclude: - '../Lc/AdminBundle/DependencyInjection/' - '../Lc/AdminBundle/Entity/' - '../Lc/AdminBundle/Kernel.php' - '../Lc/AdminBundle/Tests/' ```` et ```` Lc\SovBundle\Controller\: resource: '../Lc/AdminBundle/Controller/' tags: ['controller.service_arguments'] ```` - Modifier `packages/security.yml` ```` guard: authenticators: - Lc\SovBundle\Authenticator\LoginFormAuthenticator ```` - Modifier `packages/doctrine.yaml` ```` resolve_target_entities: Lc\SovBundle\IModel\User\UserInterface: App\Entity\User ```` - Modifier `routes.yaml` ```` login: path: /login controller: Lc\SovBundle\Controller\Admin\SecurityController::login logout: path: /logout controller: Lc\SovBundle\Admin\SecurityController::logout ```` - Dans le dossier `src/` de ton projet : - Supprimer `Controller/Admin/SecurityController.php`. - Supprimer `Controller/Admin/AbstractCrudController.php`. - Modifier l'en tête de `Controller/Admin/DashboardController.php`. ```` use Lc\SovBundle\Controller\Admin\DashboardController as LcDashboardController; class DashboardController extends LcDashboardController { // ... le code spécifique } ```` - Modifier l'en tête des controllers. Exemple `Controller/Admin/PageCrudController.php`. ```` use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController; class PageCrudController extends AbstractCrudController { // ... le code spécifique } ```` - Modifier `Entity/User.php`. ```` id; } } ```` - Modifier les entités pour que les Use pointe dans AdminBundle exemple avec `Entity/Page.php`. ```` use Lc\SovBundle\Doctrine\Extension\ImageInterface; use Lc\SovBundle\Model\Cms\AbstractDocument; use Lc\SovBundle\Model\Cms\ImageTrait; /** * @ORM\Entity(repositoryClass=PageRepository::class) */ class Page extends AbstractDocument implements ImageInterface { use ImageTrait; // ... le code spécifique } ```` - Modifier les repository pour qu'il fonctionne avec AdminBundle exemple avec `Repository/PageRepository.php.php`. ````