1 Utilisation de bootstrap

A partir du projet construit dans la séance de TP précédent, nous allons ajouter une charte graphique qui utilise le framework bootstrap (N’oubliez pas de faire un commit/push de votre projet).

Symfony propose un outil qui permet d’intégrer facilement des librairies qui seront utilisées côté client : Encore. Pour l’ajouter dans votre projet utilisez les commandes suivantes :

  • La première commande installe un environnement de développement javascript qui utilise l’intégrateur de fichiers javascript webpack. Elle ajoute un fichier de configuration utilisé par webpack : webpack.config.js à la racine de votre projet et crée un répertoire assets qui contient les fichiers css et js qui seront utilisés dans votre application.

  • La deuxième commande récupère les librairies javascript nécessaires et les stocke dans le répertoire node_modules.

Nous allons maintenant utiliser le framework css bootstrap associé à la font fontawesome. Pour cela nous allons utiliser les commandes suivantes :

Les applications utilisent maintenant des extensions du langage css qui permettent de garantir la cohérence des styles d’un thème puis de générer un code css pour la grande majorité des navigateurs. Nous allons mettre en place un des compilateurs disponibles sass et post-traitement du css.

Certaines pages contiennent des images et/ou des ressources statiques, nous allons les intégrer de manière automatique dans notre projet

  1. Ajouter les dépendances dans votre projet

    Le fichier doit aussi contenir la liste des navigateurs cibles de notre application, voici un exemple de fichier package.json obtenu après toutes les modifications :

  2. Modification du fichier webpack.config.js

  3. Création du fichier config/postcss.config.js

  4. Création du fichier assets/js/app.js

  5. Création du fichier assets/css/global.scss

  6. Modification du fichier template twig

    Pour que le travail produit par webpack soit pris en compte par le fichier twig, il faut modifier le fichier de base. Voici par exemple le template base.html.twig

    • l’instruction {{ encore_entry_link_tags('app') }} ajoute les fichiers css construits
    • l’instruction {{ encore_entry_script_tags('app') }} ajoute les fichiers javascript construits
    • Le fichier navbar/html.twg
    {% set current_path = app.request.get('_route') %}
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="/">Locations de salles</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
                aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
    
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav mr-auto">
                <li class="nav-item {% if current_path == 'welcome' %} active {% endif %}">
                    <a class="nav-link" href="{{ path('welcome') }}">Accueil<span class="sr-only">(current)</span></a>
                </li>
                <li class="nav-item {% if current_path == 'welcome_apropos' %} active {% endif %}">
                    <a class="nav-link" href="{{ path('welcome_apropos') }}">A Propos</a>
                </li>
                <li class="nav-item {% if current_path == 'welcome_contact' %} active {% endif %}" >
                    <a class="nav-link" href="{{ path('welcome_contact') }}">Contact</a>
                </li>
                <li class="nav-item {% if current_path == 'welcome_droits' %} active {% endif %}" >
                    <a class="nav-link" href="{{ path('welcome_droits') }}">Droits de l'homme</a>
                </li>
            </ul>
            <ul class="navbar-nav ">
                <li class="nav-item">
                    <a class="nav-link" href="{{ path('salle_index') }}">Salles</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="{{ path('location_index') }}">Locations</a>
                </li>
                <!-- PROFILE DROPDOWN - scrolling off the page to the right -->
                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" id="navDropDownLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        Profile
                    </a>
                    <div class="dropdown-menu" aria-labelledby="navDropDownLink">
                        <a class="dropdown-item" href="#">Preferences</a>
                        <div class="dropdown-divider"></div>
                        <a class="dropdown-item" href="#">Logout</a>
                    </div>
                </li>
            </ul>
        </div>
    </nav>

Créez un contrôleur WelcomeController.

  • Ajouter les pages :
    1. accueil en utilisant le code html accueil.html qui contient le logo de l’IUT de Lens.
    2. A Propos en utilisant le code html apropos.html.
    3. Contact en utilisant le code html contact.html. Pour pouvoir visualiser la carte, il faudra inclure le code map.html.
    4. Droits de l’homme. Le fichier contenant les droits de l’homme sont au format markdown vous pouvez le récupérer ici.

Ajoutez les autres pages de votre projet à la barre de menu.

Modifier les formulaires pour qu’ils utilisent le framework bootstrap.

 

IUT de Lens Département Informatique

2018