Browse Source

début interface utilisateur

garthh 1 week ago
parent
commit
f69bc39a9c

+ 1 - 0
assets/app.js

@@ -6,5 +6,6 @@ import './bootstrap.js';
  * which should already be in your base.html.twig.
  */
 import './styles/app.css';
+import './vendor/bulma/css/bulma.min.css';
 
 console.log('This log comes from assets/app.js - welcome to AssetMapper! 🎉');

+ 4 - 0
assets/styles/app.css

@@ -1,2 +1,6 @@
 /* Styles spécifiques à l'application */
 
+.main-content {
+    margin-top: 3.25rem;
+    padding: 0.5rem;
+}

+ 3 - 1
composer.json

@@ -11,6 +11,7 @@
         "doctrine/doctrine-bundle": "^2.15",
         "doctrine/doctrine-migrations-bundle": "^3.4.2",
         "doctrine/orm": "^3.5",
+        "league/commonmark": "^2.7",
         "odolbeau/phone-number-bundle": "^4.2",
         "phpdocumentor/reflection-docblock": "^5.6.2",
         "phpstan/phpdoc-parser": "^2.2",
@@ -49,7 +50,8 @@
         "symfony/yaml": "7.3.*",
         "symfonycasts/reset-password-bundle": "^1.23.1",
         "symfonycasts/verify-email-bundle": "^1.17.3",
-        "twig/extra-bundle": "^2.12|^3.21",
+        "twig/extra-bundle": "^3.21",
+        "twig/markdown-extra": "^3.21",
         "twig/twig": "^2.12|^3.21.1"
     },
     "config": {

+ 485 - 1
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "6fa7d973c7984a64dfa93cd65ae42ea0",
+    "content-hash": "64516dc2842a4247fcb947e031113c53",
     "packages": [
         {
             "name": "composer/semver",
@@ -87,6 +87,81 @@
             ],
             "time": "2024-09-19T14:15:21+00:00"
         },
+        {
+            "name": "dflydev/dot-access-data",
+            "version": "v3.0.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
+                "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+                "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.1 || ^8.0"
+            },
+            "require-dev": {
+                "phpstan/phpstan": "^0.12.42",
+                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
+                "scrutinizer/ocular": "1.6.0",
+                "squizlabs/php_codesniffer": "^3.5",
+                "vimeo/psalm": "^4.0.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Dflydev\\DotAccessData\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Dragonfly Development Inc.",
+                    "email": "info@dflydev.com",
+                    "homepage": "http://dflydev.com"
+                },
+                {
+                    "name": "Beau Simensen",
+                    "email": "beau@dflydev.com",
+                    "homepage": "http://beausimensen.com"
+                },
+                {
+                    "name": "Carlos Frutos",
+                    "email": "carlos@kiwing.it",
+                    "homepage": "https://github.com/cfrutos"
+                },
+                {
+                    "name": "Colin O'Dell",
+                    "email": "colinodell@gmail.com",
+                    "homepage": "https://www.colinodell.com"
+                }
+            ],
+            "description": "Given a deep data structure, access data by dot notation.",
+            "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
+            "keywords": [
+                "access",
+                "data",
+                "dot",
+                "notation"
+            ],
+            "support": {
+                "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
+                "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
+            },
+            "time": "2024-07-08T12:26:09+00:00"
+        },
         {
             "name": "doctrine/collections",
             "version": "2.3.0",
@@ -1413,6 +1488,195 @@
             },
             "time": "2025-03-20T14:25:27+00:00"
         },
+        {
+            "name": "league/commonmark",
+            "version": "2.7.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thephpleague/commonmark.git",
+                "reference": "10732241927d3971d28e7ea7b5712721fa2296ca"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/10732241927d3971d28e7ea7b5712721fa2296ca",
+                "reference": "10732241927d3971d28e7ea7b5712721fa2296ca",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mbstring": "*",
+                "league/config": "^1.1.1",
+                "php": "^7.4 || ^8.0",
+                "psr/event-dispatcher": "^1.0",
+                "symfony/deprecation-contracts": "^2.1 || ^3.0",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "require-dev": {
+                "cebe/markdown": "^1.0",
+                "commonmark/cmark": "0.31.1",
+                "commonmark/commonmark.js": "0.31.1",
+                "composer/package-versions-deprecated": "^1.8",
+                "embed/embed": "^4.4",
+                "erusev/parsedown": "^1.0",
+                "ext-json": "*",
+                "github/gfm": "0.29.0",
+                "michelf/php-markdown": "^1.4 || ^2.0",
+                "nyholm/psr7": "^1.5",
+                "phpstan/phpstan": "^1.8.2",
+                "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
+                "scrutinizer/ocular": "^1.8.1",
+                "symfony/finder": "^5.3 | ^6.0 | ^7.0",
+                "symfony/process": "^5.4 | ^6.0 | ^7.0",
+                "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0",
+                "unleashedtech/php-coding-standard": "^3.1.1",
+                "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0"
+            },
+            "suggest": {
+                "symfony/yaml": "v2.3+ required if using the Front Matter extension"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "League\\CommonMark\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Colin O'Dell",
+                    "email": "colinodell@gmail.com",
+                    "homepage": "https://www.colinodell.com",
+                    "role": "Lead Developer"
+                }
+            ],
+            "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
+            "homepage": "https://commonmark.thephpleague.com",
+            "keywords": [
+                "commonmark",
+                "flavored",
+                "gfm",
+                "github",
+                "github-flavored",
+                "markdown",
+                "md",
+                "parser"
+            ],
+            "support": {
+                "docs": "https://commonmark.thephpleague.com/",
+                "forum": "https://github.com/thephpleague/commonmark/discussions",
+                "issues": "https://github.com/thephpleague/commonmark/issues",
+                "rss": "https://github.com/thephpleague/commonmark/releases.atom",
+                "source": "https://github.com/thephpleague/commonmark"
+            },
+            "funding": [
+                {
+                    "url": "https://www.colinodell.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://www.paypal.me/colinpodell/10.00",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/colinodell",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2025-07-20T12:47:49+00:00"
+        },
+        {
+            "name": "league/config",
+            "version": "v1.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thephpleague/config.git",
+                "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+                "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+                "shasum": ""
+            },
+            "require": {
+                "dflydev/dot-access-data": "^3.0.1",
+                "nette/schema": "^1.2",
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "phpstan/phpstan": "^1.8.2",
+                "phpunit/phpunit": "^9.5.5",
+                "scrutinizer/ocular": "^1.8.1",
+                "unleashedtech/php-coding-standard": "^3.1",
+                "vimeo/psalm": "^4.7.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.2-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "League\\Config\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Colin O'Dell",
+                    "email": "colinodell@gmail.com",
+                    "homepage": "https://www.colinodell.com",
+                    "role": "Lead Developer"
+                }
+            ],
+            "description": "Define configuration arrays with strict schemas and access values with dot notation",
+            "homepage": "https://config.thephpleague.com",
+            "keywords": [
+                "array",
+                "config",
+                "configuration",
+                "dot",
+                "dot-access",
+                "nested",
+                "schema"
+            ],
+            "support": {
+                "docs": "https://config.thephpleague.com/",
+                "issues": "https://github.com/thephpleague/config/issues",
+                "rss": "https://github.com/thephpleague/config/releases.atom",
+                "source": "https://github.com/thephpleague/config"
+            },
+            "funding": [
+                {
+                    "url": "https://www.colinodell.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://www.paypal.me/colinpodell/10.00",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/colinodell",
+                    "type": "github"
+                }
+            ],
+            "time": "2022-12-11T20:36:23+00:00"
+        },
         {
             "name": "monolog/monolog",
             "version": "3.9.0",
@@ -1516,6 +1780,154 @@
             ],
             "time": "2025-03-24T10:02:05+00:00"
         },
+        {
+            "name": "nette/schema",
+            "version": "v1.3.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nette/schema.git",
+                "reference": "da801d52f0354f70a638673c4a0f04e16529431d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d",
+                "reference": "da801d52f0354f70a638673c4a0f04e16529431d",
+                "shasum": ""
+            },
+            "require": {
+                "nette/utils": "^4.0",
+                "php": "8.1 - 8.4"
+            },
+            "require-dev": {
+                "nette/tester": "^2.5.2",
+                "phpstan/phpstan-nette": "^1.0",
+                "tracy/tracy": "^2.8"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.3-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause",
+                "GPL-2.0-only",
+                "GPL-3.0-only"
+            ],
+            "authors": [
+                {
+                    "name": "David Grudl",
+                    "homepage": "https://davidgrudl.com"
+                },
+                {
+                    "name": "Nette Community",
+                    "homepage": "https://nette.org/contributors"
+                }
+            ],
+            "description": "📐 Nette Schema: validating data structures against a given Schema.",
+            "homepage": "https://nette.org",
+            "keywords": [
+                "config",
+                "nette"
+            ],
+            "support": {
+                "issues": "https://github.com/nette/schema/issues",
+                "source": "https://github.com/nette/schema/tree/v1.3.2"
+            },
+            "time": "2024-10-06T23:10:23+00:00"
+        },
+        {
+            "name": "nette/utils",
+            "version": "v4.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nette/utils.git",
+                "reference": "e67c4061eb40b9c113b218214e42cb5a0dda28f2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nette/utils/zipball/e67c4061eb40b9c113b218214e42cb5a0dda28f2",
+                "reference": "e67c4061eb40b9c113b218214e42cb5a0dda28f2",
+                "shasum": ""
+            },
+            "require": {
+                "php": "8.0 - 8.4"
+            },
+            "conflict": {
+                "nette/finder": "<3",
+                "nette/schema": "<1.2.2"
+            },
+            "require-dev": {
+                "jetbrains/phpstorm-attributes": "dev-master",
+                "nette/tester": "^2.5",
+                "phpstan/phpstan": "^1.0",
+                "tracy/tracy": "^2.9"
+            },
+            "suggest": {
+                "ext-gd": "to use Image",
+                "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+                "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+                "ext-json": "to use Nette\\Utils\\Json",
+                "ext-mbstring": "to use Strings::lower() etc...",
+                "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause",
+                "GPL-2.0-only",
+                "GPL-3.0-only"
+            ],
+            "authors": [
+                {
+                    "name": "David Grudl",
+                    "homepage": "https://davidgrudl.com"
+                },
+                {
+                    "name": "Nette Community",
+                    "homepage": "https://nette.org/contributors"
+                }
+            ],
+            "description": "🛠  Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+            "homepage": "https://nette.org",
+            "keywords": [
+                "array",
+                "core",
+                "datetime",
+                "images",
+                "json",
+                "nette",
+                "paginator",
+                "password",
+                "slugify",
+                "string",
+                "unicode",
+                "utf-8",
+                "utility",
+                "validation"
+            ],
+            "support": {
+                "issues": "https://github.com/nette/utils/issues",
+                "source": "https://github.com/nette/utils/tree/v4.0.7"
+            },
+            "time": "2025-06-03T04:55:08+00:00"
+        },
         {
             "name": "odolbeau/phone-number-bundle",
             "version": "v4.2.0",
@@ -8141,6 +8553,78 @@
             ],
             "time": "2025-02-19T14:29:33+00:00"
         },
+        {
+            "name": "twig/markdown-extra",
+            "version": "v3.21.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/twigphp/markdown-extra.git",
+                "reference": "f4616e1dd375209dacf6026f846e6b537d036ce4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/f4616e1dd375209dacf6026f846e6b537d036ce4",
+                "reference": "f4616e1dd375209dacf6026f846e6b537d036ce4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1.0",
+                "symfony/deprecation-contracts": "^2.5|^3",
+                "twig/twig": "^3.13|^4.0"
+            },
+            "require-dev": {
+                "erusev/parsedown": "dev-master as 1.x-dev",
+                "league/commonmark": "^1.0|^2.0",
+                "league/html-to-markdown": "^4.8|^5.0",
+                "michelf/php-markdown": "^1.8|^2.0",
+                "symfony/phpunit-bridge": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "psr-4": {
+                    "Twig\\Extra\\Markdown\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com",
+                    "homepage": "http://fabien.potencier.org",
+                    "role": "Lead Developer"
+                }
+            ],
+            "description": "A Twig extension for Markdown",
+            "homepage": "https://twig.symfony.com",
+            "keywords": [
+                "html",
+                "markdown",
+                "twig"
+            ],
+            "support": {
+                "source": "https://github.com/twigphp/markdown-extra/tree/v3.21.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/twig/twig",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2025-01-31T20:45:36+00:00"
+        },
         {
             "name": "twig/twig",
             "version": "v3.21.1",

+ 1 - 1
src/Controller/AdminController.php

@@ -8,7 +8,7 @@ use Symfony\Component\Routing\Attribute\Route;
 
 final class AdminController extends AbstractController
 {
-    // MEnu principal de l'interface d'administration
+    // Menu principal de l'interface d'administration
     #[Route('/admin', name: 'app_admin')]
     public function index(): Response
     {

+ 44 - 0
src/Controller/MainController.php

@@ -15,4 +15,48 @@ final class MainController extends AbstractController
             'controller_name' => 'MainController',
         ]);
     }
+
+    #[Route('/charte-animations', name: 'app_code_of_conduct')]
+    public function codeOfConduct(): Response
+    {
+        // Lire le contenu de la charte des animations depuis un fichier
+        $codeContent = file_get_contents(__DIR__ . '/../../public/pages/code.md');
+
+        return $this->render('main/markdown.html.twig', [
+            'codeContent' => $codeContent,
+        ]);
+    }
+
+    #[Route('/cgu', name: 'app_terms')]
+    public function terms(): Response
+    {
+        // Lire le contenu de la charte des animations depuis un fichier
+        $codeContent = file_get_contents(__DIR__ . '/../../public/pages/terms.md');
+
+        return $this->render('main/markdown.html.twig', [
+            'codeContent' => $codeContent,
+        ]);
+    }
+
+    #[Route('/legal', name: 'app_legal')]
+    public function legal(): Response
+    {
+        // Lire le contenu de la charte des animations depuis un fichier
+        $codeContent = file_get_contents(__DIR__ . '/../../public/pages/legal.md');
+
+        return $this->render('main/markdown.html.twig', [
+            'codeContent' => $codeContent,
+        ]);
+    }
+
+    #[Route('/contact', name: 'app_contact')]
+    public function contact(): Response
+    {
+        // Lire le contenu de la charte des animations depuis un fichier
+        $codeContent = file_get_contents(__DIR__ . '/../../public/pages/legal.md');
+
+        return $this->render('main/markdown.html.twig', [
+            'codeContent' => $codeContent,
+        ]);
+    }
 }

+ 2 - 1
src/Form/ResetPasswordRequestFormType.php

@@ -14,10 +14,11 @@ class ResetPasswordRequestFormType extends AbstractType
     {
         $builder
             ->add('email', EmailType::class, [
+                'label' => 'eMail',
                 'attr' => ['autocomplete' => 'email'],
                 'constraints' => [
                     new NotBlank([
-                        'message' => 'Please enter your email',
+                        'message' => 'Entrez votre adresse de courriel',
                     ]),
                 ],
             ])

+ 1 - 5
templates/admin/index.html.twig

@@ -1,12 +1,8 @@
-{% extends 'base.html.twig' %}
+{% extends 'bulma.html.twig' %}
 
 {% block title %}Hello AdminController!{% endblock %}
 
 {% block content %}
-<style>
-    .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
-    .example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
-</style>
 
 <div class="example-wrapper">
     <h1>Hello {{ controller_name }}! ✅</h1>

+ 0 - 1
templates/base.html.twig

@@ -7,7 +7,6 @@
         <!-- feuilles de style -->
         <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
         <link rel="stylesheet" href="{{ asset('vendor/bulma/css/bulma.min.css') }}">
-        <link rel="stylesheet" href="{{ asset('app.css') }}">
         {% block stylesheets %}
         {% endblock %}
         <!-- /feuilles de style -->

+ 142 - 0
templates/bulma.html.twig

@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="UTF-8">
+        <title>{% block title %}Welcome!{% endblock %}</title>
+
+        <!-- feuilles de style -->
+        <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
+        {% block stylesheets %}
+        {% endblock %}
+        <!-- /feuilles de style -->
+
+        <!-- javascripts -->
+        {% block javascripts %}
+            {% block importmap %}{{ importmap('app') }}{% endblock %}
+        {% endblock %}
+        <!-- /javascripts -->
+    </head>
+    <body>
+          <!-- Navbar -->
+<nav class="navbar is-fixed-top is-dark has-shadow" role="navigation" aria-label="main navigation">
+  <div class="container ">
+    <div class="navbar-brand">
+      <a class="navbar-item" href="/">
+        <strong>Orgasso</strong>
+      </a>
+
+      <!-- Mobile menu toggle -->
+      <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarMain">
+        <span aria-hidden="true"></span>
+        <span aria-hidden="true"></span>
+        <span aria-hidden="true"></span>
+      </a>
+    </div>
+
+    <!-- Liens principaux -->
+    <div id="navbarMain" class="navbar-menu">
+      <div class="navbar-start">
+        <a class="navbar-item" href="#">Accueil</a>
+        <a class="navbar-item" href="#">Articles</a>
+        <a class="navbar-item" href="#">À propos</a>
+      </div>
+
+      <div class="navbar-end">
+        <a class="navbar-item">
+
+                <twig:ux:icon name="bi:moon-stars-fill" class="size-2" />
+
+        </a>
+        {% if app.user %}
+        <div class="navbar-item has-dropdown is-hoverable">
+          <a class="navbar-link">{{ app.user.firstName }}</a>
+          <div class="navbar-dropdown is-right">
+            <a class="navbar-item" href="#">Mon compte</a>
+            <a class="navbar-item" href="#">Mes réservations</a>
+            <hr class="navbar-divider" />
+            <a class="navbar-item" href="{{ path('app_admin') }}">Administration</a>
+            <hr class="navbar-divider" />
+            <a class="navbar-item" href="{{ path('app_logout') }}">Me déconnecter</a>
+          </div>
+        </div>
+        {% else %}
+        <div class="navbar-item">
+          <div class="buttons">
+            <a class="button is-primary" href="{{ path('app_login') }}">Connexion</a>
+        </div>
+        </div>
+        {% endif %}
+      </div>
+    </div>
+  </div>
+</nav>
+
+<div class="main-content">
+{% block content %}
+  <!-- Section 1 - Introduction -->
+  <section class="section">
+    <div class="container">
+      <h1 class="title">Bienvenue sur notre site</h1>
+      <p class="subtitle">Une introduction rapide à notre contenu et à notre mission.</p>
+    </div>
+  </section>
+
+  <!-- Section 2 - Grille de Colonnes -->
+  <section class="section">
+    <div class="container">
+      <div class="columns">
+        <!-- Colonne 1 -->
+        <div class="column">
+          <div class="box">
+            <h2 class="title is-4">Colonne 1</h2>
+            <p>Voici du contenu pour la première colonne. Elle peut contenir des images, du texte ou des éléments divers.</p>
+          </div>
+        </div>
+        <!-- Colonne 2 -->
+        <div class="column">
+          <div class="box">
+            <h2 class="title is-4">Colonne 2</h2>
+            <p>Voici du contenu pour la deuxième colonne. Utilisez les colonnes pour organiser l'affichage sur plusieurs sections.</p>
+          </div>
+        </div>
+        <!-- Colonne 3 -->
+        <div class="column">
+          <div class="box">
+            <h2 class="title is-4">Colonne 3</h2>
+            <p>Voici du contenu pour la troisième colonne. Les colonnes sont responsives et s'ajustent en fonction de la taille de l'écran.</p>
+          </div>
+        </div>
+      </div>
+    </div>
+  </section>
+
+  <!-- Section 3 - Contenu additionnel -->
+  <section class="section">
+    <div class="container">
+      <div class="content">
+        <h2>Titre de la section additionnelle</h2>
+        <p>Cette section contient du texte supplémentaire et peut inclure d'autres éléments comme des images, des listes ou des citations.</p>
+        <ul>
+          <li>Premier point de la liste</li>
+          <li>Deuxième point de la liste</li>
+          <li>Troisième point de la liste</li>
+        </ul>
+
+
+      </div>
+    </div>
+  </section>
+{% endblock %}
+</div>
+
+        <footer class="footer">
+            <div class="content has-text-centered">
+                <p>
+                    <strong>Orgasso</strong> est une application de gestion de l'organisation d'événements pour les associations rôlistes.
+                    Application <a href="https://git.portes-imaginaire.org/portes-imaginaire_org/orgasso">diffusée</a> sous licence <a href="https://opensource.org/license/gpl-3-0">GPL 3.0</a>.
+                </p>
+                <p><a href="{{ path('app_code_of_conduct') }}">Charte animations</a> • <a href="{{ path('app_terms') }}">Conditions générales d'utilisation</a> • <a href="{{ path('app_legal') }}">Mentions légales</a> • <a href="{{ path('app_contact') }}">Contacts</a></p>
+            </div>
+        </footer>
+    </body>
+</html>

+ 1 - 1
templates/main/index.html.twig

@@ -1,4 +1,4 @@
-{% extends 'base.html.twig' %}
+{% extends 'bulma.html.twig' %}
 
 {% block title %}Hello MainController!{% endblock %}
 

+ 13 - 0
templates/main/markdown.html.twig

@@ -0,0 +1,13 @@
+{% extends 'bulma.html.twig' %}
+
+{% block title %}Charte animation{% endblock %}
+
+{% block content %}
+  <section class="section">
+    <div class="container">
+      <div class="content">
+{{ codeContent|markdown_to_html }}
+</div>
+</div>
+</section>
+{% endblock %}

+ 5 - 5
templates/reset_password/request.html.twig

@@ -1,22 +1,22 @@
 {% extends 'base.html.twig' %}
 
-{% block title %}Reset your password{% endblock %}
+{% block title %}Réinitialisez votre mot de passe{% endblock %}
 
 {% block content %}
     {% for flash_error in app.flashes('reset_password_error') %}
         <div class="alert alert-danger" role="alert">{{ flash_error }}</div>
     {% endfor %}
-    <h1>Reset your password</h1>
+    <h1>Réinitialisez votre mot de passe</h1>
 
     {{ form_start(requestForm) }}
         {{ form_row(requestForm.email) }}
         <div>
             <small>
-                Enter your email address, and we will send you a
-                link to reset your password.
+                Entrez votre adresse de courrile pour recevoir un lien de réinitialisation de votre mot de passe.
+                Si vous ne recevez pas de courriel, vérifiez votre dossier de spam ou contactez
             </small>
         </div>
 
-        <button class="btn btn-primary">Send password reset email</button>
+        <button class="btn btn-primary">Envoyer un courriel de réinitialisation</button>
     {{ form_end(requestForm) }}
 {% endblock %}

+ 2 - 2
templates/reset_password/reset.html.twig

@@ -1,9 +1,9 @@
 {% extends 'base.html.twig' %}
 
-{% block title %}Reset your password{% endblock %}
+{% block title %}Réinitialisez votre mot de passe{% endblock %}
 
 {% block content %}
-    <h1>Reset your password</h1>
+    <h1>Réinitialisez votre mot de passe</h1>
 
     {{ form_start(resetForm) }}
         {{ form_row(resetForm.plainPassword) }}

+ 15 - 14
templates/security/login.html.twig

@@ -1,23 +1,21 @@
-{% extends 'base.html.twig' %}
+{% extends 'bulma.html.twig' %}
 
-{% block title %}Log in!{% endblock %}
+{% block title %}Connexion{% endblock %}
 
 {% block content %}
-    <form method="post">
+    {% if app.user %}
+Vous êtes connecté en tant que {{ app.user.userIdentifier }}, <a href="{{ path('app_logout') }}">se déconnecter</a>.
+            {% else %}
+        <form method="post">
         {% if error %}
             <div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}<br/>{{ error.message }}</div>
         {% endif %}
 
-        {% if app.user %}
-            <div class="mb-3">
-                You are logged in as {{ app.user.userIdentifier }}, <a href="{{ path('app_logout') }}">Logout</a>
-            </div>
-        {% endif %}
 
-        <h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
-        <label for="username">Email</label>
+        <h1 class="h3 mb-3 font-weight-normal">Connexion</h1>
+        <label for="username">eMail</label>
         <input type="email" value="{{ last_username }}" name="_username" id="username" class="form-control" autocomplete="email" required autofocus>
-        <label for="password">Password</label>
+        <label for="password">Mot de passe</label>
         <input type="password" name="_password" id="password" class="form-control" autocomplete="current-password" required>
         <input type="hidden" name="_csrf_token" data-controller="csrf-protection" value="{{ csrf_token('authenticate') }}">
 
@@ -28,16 +26,19 @@
 
             <div class="checkbox mb-3">
                 <input type="checkbox" name="_remember_me" id="_remember_me">
-                <label for="_remember_me">Remember me</label>
+                <label for="_remember_me">Se souvenir de moi</label>
             </div>
 
             <div>
-                <a href="{{ path('app_forgot_password_request') }}">Forgot password?</a> | <a href="{{ path('app_register') }}">Register</a>
+                <a href="{{ path('app_forgot_password_request') }}">Mot de passe oublié</a> | <a href="{{ path('app_register') }}">Créer un compte</a>
             </div>
         {# #}
 
         <button class="btn btn-lg btn-primary" type="submit">
-            Sign in
+            Se connecter
         </button>
     </form>
+
+        {% endif %}
+    
 {% endblock %}