瀏覽代碼

Découpage twig base

François Drouhard 3 年之前
父節點
當前提交
870b58d39a

+ 12 - 183
templates/base.html.twig

@@ -9,191 +9,20 @@
         <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
     </head>
     <body style="padding-top:5rem;padding-bottom:4rem;">
-		{% for type, messages in app.session.flashBag.all %}
-			{% for message in messages %}
-				{% if type == 'error' %}{% set type = 'danger' %} {% endif %}
-				<div class="position-fixed top-5 end-0 p-2" style="z-index: 11">
-					<div id="liveToast" class="toast bg-gradient bg-{{ type }} text-white" role="alert" aria-live="assertive" aria-atomic="true" {{ stimulus_controller('toast') }}>
-						<div class="toast-header">
-						<strong class="me-auto">Info</strong>
-						<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
-						</div>
-						<div class="toast-body">
-							{{ message }}
-						</div>
-					</div>
-				</div>
-			{% endfor %}
-		{% endfor %}
-		<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
-		    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
-			<span class="navbar-toggler-icon"></span>
-			</button>
-			<a class="navbar-brand" href="{{ path('videotheque_liste') }}">Videothèque</a>
-			<div class="collapse navbar-collapse" id="navbarSupportedContent">
-				{% if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}
-					<ul class="navbar-nav me-auto mb-2 mb-lg-0">
-						<li class="nav-item">
-							<a class="nav-link
-							{% if app.request.attributes.get('_route') == 'videotheque_liste' %}active{% endif %}"
-							href="{{ path('videotheque_liste') }}">Liste des films</a>
-						</li>
-					</ul>
-				{% endif %}
-                {%  if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
-				<ul class="navbar-nav me-auto mb-2 mb-lg-0">
-					<li class="nav-item">
-						<a class="nav-link 
-						{% if app.request.attributes.get('_route') == 'videothequepersonnelle_maliste' %}active{% endif %}"
-						href="{{ path('videothequepersonnelle_maliste') }}">Ma liste à voir</a>
-					</li>
-					<li class="nav-item">
-                        <a class="nav-link
-						{% if app.request.attributes.get('_route') == 'videotheque_liste' %}active{% endif %}"
-						href="{{ path('videotheque_liste') }}">Films</a>
-					</li>
-					<li class="nav-item">
-                        <a class="nav-link
-						{% if app.request.attributes.get('_route') == 'realisateur_liste' %}active{% endif %}"
-						href="{{ path('realisateur_liste') }}">Réalisateurs</a>
-					</li>
-					{%  if is_granted('ROLE_MODERATEUR') %}
-						<ul class="navbar-nav">
-							<li class="nav-item dropdown">
-								<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownAdmin" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-									Administration
-								</a>
-								<div class="dropdown-menu" aria-labelledby="navbarDropdown">
-                                    {% if is_granted('ROLE_ADMIN') %}
-										<a class="dropdown-item" href="{{ path('admin_index') }}">Utilisateurs</a>
-										<div class="dropdown-divider"></div>
-                                    {% endif %}
-									<a class="dropdown-item" href="{{ path('genre_liste') }}">Liste des genres</a>
-								</div>
-							</li>
-						</ul>
-					{%  endif %}
-				</ul>
-				{% endif %}
-				
-				<ul class="navbar-nav">
-					<li class="nav-item">
-						<a href="#" class="nav-link" data-bs-toggle="modal" data-bs-target="#modalWindow"><i class="fa fa-info-circle fa-lg text-light nav-link" aria-hidden="true"></i></a>
-					<li>
-				</ul>
-				<ul class="navbar-nav">
-					<li class="nav-item dropdown">
-						<a class="nav-link dropdown-toggle" href="#" id="navbarHelpDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-							<i class="fa fa-question-circle fa-lg"></i>
-						</a>
-						{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
-							<div class="dropdown-menu dropdown-menu-end p-4" aria-labelledby="navbarHelpDropdown" style="width: 400px;">
-									<p><i class="fa fa-bookmark fa-lg text-primary"></i> : Films que l'on souhaite voir. On les retrouve dans "Liste de mes films"</p>
-									<p><i class="fa fa-eye fa-lg text-success"></i> : Film qu'on a vu</p>
-									<p><i class="fa fa-eye-slash fa-lg text-secondary"></i> : Film qu'on n'a pas vu</p>
-							</div>
-						{% endif %}
-					</li>
+		<header>
+			{% include 'modal.html.twig' %}
+			{% include 'flashbag.html.twig' %}
+			{% include 'navbar.html.twig' %}
+		</header>
 
-				</ul>
-				<ul class="navbar-nav">
-					<li class="nav-item dropdown">
-						<a class="nav-link dropdown-toggle" href="#" id="navbarBellDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-							<i class="fa fa-bell fa-lg"></i>
-						</a>
-						<div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarBellDropdown" style="width: 400px;">
-							<div class="list-group px-4 py-3">
-								{{ afficheNouveautes() | raw }}
-							</div>
-						</div>
-					</li>
-				</ul>
-				
-				{#{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}#}
-				
-				{#{% endif %}#}
-                {%  if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}
-					<ul class="navbar-nav">
-						<li class="nav-item"><a class="nav-link" href="{{ path('app_login') }}">Se connecter</a></li>
-					</ul>
-                {% else %}
-					<ul class="navbar-nav">
-						<li class="nav-item dropdown">
-							<a class="nav-link dropdown-toggle" href="#" id="navbarUserDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                                {{ app.user.nomComplet }}
-							</a>
-							<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarUserDropdown">
-								<a class="dropdown-item" href="{{ path('user_profil') }}">Profil</a>
-								<div class="dropdown-divider"></div>
-								<a class="dropdown-item" href="{{ path('app_logout') }}">Se déconnecter</a>
-							</div>
-						</li>
-					</ul>
-                {% endif %}
-			</div>
-		</nav>
-		<div>
-			<header>
-				<div class="grid">
-					<div class="g-col-12">
-						<h1>{% block titre %}{% endblock %}</h1>
-					</div>
-				</div>
-				<!-- Modal -->
-				<div class="modal fade" id="modalWindow" tabindex="-1" role="dialog" aria-labelledby="ModalWindow" aria-hidden="true">
-					<div class="modal-dialog modal-dialog-centered" role="document">
-						<div class="modal-content">
-						<div class="modal-header">
-							<h5 class="modal-title" id="information">Vidéothèque partagée</h5>
-							<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
-							</button>
-						</div>
-						<div class="modal-body">
-							<p>
-								Ceci est une vidéothèque partagée entre les copains.
-								Le but, c'est de poser les films qu'on vient de voir où qu'on souhaite voir rapidement et donner des idées aux copains quand ils ne savent plus quoi regarder.
-							</p>
-							<p>
-								On n'est pas là pour recréer IMDB ou Allociné, c'est plutôt une liste de films à voir.
-							</p>
-							<p>
-								D'ailleurs, le but, c'est de cocher les boutons
-								<i class="fa fa-eye fa-lg text-success"></i> ou <i class="fa fa-eye-slash fa-lg text-secondary"></i> 
-								 pour que les autres sachent qui a vu quoi et le bouton <i class="fa fa-bookmark text-primary"></i>
-								 pour suivre un film, ça permet de trier les films dans l'onglet "Ma liste de films".
-							</p>
-							<p>
-								Bon partage à tous !
-							</p>
-							<p>
-								La bise dans vous.
-							</p>
-						</div>
-						<div class="modal-footer">
-							<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
-						</div>
-						</div>
-					</div>
-				</div>
+		<h1>{% block titre %}{% endblock %}</h1>
+			
+		<main role="main">
+			{% block body %}{% endblock %}
+		</main>
 
-			</header>
-
-
-			<main role="main">
-				{% block body %}{% endblock %}
-			</main>
-
-
-			<footer class="footer">
-				<div class="text-center fixed-bottom bg-white">
-					<span class="text-muted small">Cette application est développée en Symfony 5.3.3 - Code source disponible sur <a target="_blank" href="https://gogs.fdlibre.eu/sangfroid/films-symfony-4-2">Gogs</a><br>Licence <a target="_blank" href="http://www.wtfpl.net">WTFLP</a></span>
-				</div>
-				
-                {% block footer %}
-                {% endblock %}
-			</footer>
-		</div>
-        
+		{% include 'footer.html.twig' %}
+		
 		{{ encore_entry_script_tags('app') }}
 		{% block javascripts %}{% endblock %}
     </body>

+ 16 - 0
templates/flashbag.html.twig

@@ -0,0 +1,16 @@
+{% for type, messages in app.session.flashBag.all %}
+    {% for message in messages %}
+        {% if type == 'error' %}{% set type = 'danger' %} {% endif %}
+        <div class="position-fixed top-5 end-0 p-2" style="z-index: 11">
+            <div id="liveToast" class="toast bg-gradient bg-{{ type }} text-white" role="alert" aria-live="assertive" aria-atomic="true" {{ stimulus_controller('toast') }}>
+                <div class="toast-header">
+                <strong class="me-auto">Info</strong>
+                <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
+                </div>
+                <div class="toast-body">
+                    {{ message }}
+                </div>
+            </div>
+        </div>
+    {% endfor %}
+{% endfor %}

+ 8 - 0
templates/footer.html.twig

@@ -0,0 +1,8 @@
+<footer class="footer">
+    <div class="text-center fixed-bottom bg-white">
+        <span class="text-muted small">Cette application est développée en Symfony 5.3.3 - Code source disponible sur <a target="_blank" href="https://gogs.fdlibre.eu/sangfroid/films-symfony-4-2">Gogs</a><br>Licence <a target="_blank" href="http://www.wtfpl.net">WTFLP</a></span>
+    </div>
+    
+    {% block footer %}
+    {% endblock %}
+</footer>

+ 36 - 0
templates/modal.html.twig

@@ -0,0 +1,36 @@
+<!-- Modal -->
+<div class="modal fade" id="modalWindow" tabindex="-1" role="dialog" aria-labelledby="ModalWindow" aria-hidden="true">
+    <div class="modal-dialog modal-dialog-centered" role="document">
+        <div class="modal-content">
+        <div class="modal-header">
+            <h5 class="modal-title" id="information">Vidéothèque partagée</h5>
+            <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
+            </button>
+        </div>
+        <div class="modal-body">
+            <p>
+                Ceci est une vidéothèque partagée entre les copains.
+                Le but, c'est de poser les films qu'on vient de voir où qu'on souhaite voir rapidement et donner des idées aux copains quand ils ne savent plus quoi regarder.
+            </p>
+            <p>
+                On n'est pas là pour recréer IMDB ou Allociné, c'est plutôt une liste de films à voir.
+            </p>
+            <p>
+                D'ailleurs, le but, c'est de cocher les boutons
+                <i class="fa fa-eye fa-lg text-success"></i> ou <i class="fa fa-eye-slash fa-lg text-secondary"></i> 
+                    pour que les autres sachent qui a vu quoi et le bouton <i class="fa fa-bookmark text-primary"></i>
+                    pour suivre un film, ça permet de trier les films dans l'onglet "Ma liste de films".
+            </p>
+            <p>
+                Bon partage à tous !
+            </p>
+            <p>
+                La bise dans vous.
+            </p>
+        </div>
+        <div class="modal-footer">
+            <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
+        </div>
+        </div>
+    </div>
+</div>

+ 107 - 0
templates/navbar.html.twig

@@ -0,0 +1,107 @@
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
+    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+    <span class="navbar-toggler-icon"></span>
+    </button>
+    <a class="navbar-brand" href="{{ path('videotheque_liste') }}">Videothèque</a>
+    <div class="collapse navbar-collapse" id="navbarSupportedContent">
+        {% if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}
+            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
+                <li class="nav-item">
+                    <a class="nav-link
+                    {% if app.request.attributes.get('_route') == 'videotheque_liste' %}active{% endif %}"
+                    href="{{ path('videotheque_liste') }}">Liste des films</a>
+                </li>
+            </ul>
+        {% endif %}
+        {%  if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
+        <ul class="navbar-nav me-auto mb-2 mb-lg-0">
+            <li class="nav-item">
+                <a class="nav-link 
+                {% if app.request.attributes.get('_route') == 'videothequepersonnelle_maliste' %}active{% endif %}"
+                href="{{ path('videothequepersonnelle_maliste') }}">Ma liste à voir</a>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link
+                {% if app.request.attributes.get('_route') == 'videotheque_liste' %}active{% endif %}"
+                href="{{ path('videotheque_liste') }}">Films</a>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link
+                {% if app.request.attributes.get('_route') == 'realisateur_liste' %}active{% endif %}"
+                href="{{ path('realisateur_liste') }}">Réalisateurs</a>
+            </li>
+            {%  if is_granted('ROLE_MODERATEUR') %}
+                <ul class="navbar-nav">
+                    <li class="nav-item dropdown">
+                        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownAdmin" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                            Administration
+                        </a>
+                        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+                            {% if is_granted('ROLE_ADMIN') %}
+                                <a class="dropdown-item" href="{{ path('admin_index') }}">Utilisateurs</a>
+                                <div class="dropdown-divider"></div>
+                            {% endif %}
+                            <a class="dropdown-item" href="{{ path('genre_liste') }}">Liste des genres</a>
+                        </div>
+                    </li>
+                </ul>
+            {%  endif %}
+        </ul>
+        {% endif %}
+        
+        <ul class="navbar-nav">
+            <li class="nav-item">
+                <a href="#" class="nav-link" data-bs-toggle="modal" data-bs-target="#modalWindow"><i class="fa fa-info-circle fa-lg text-light nav-link" aria-hidden="true"></i></a>
+            <li>
+        </ul>
+        <ul class="navbar-nav">
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="#" id="navbarHelpDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                    <i class="fa fa-question-circle fa-lg"></i>
+                </a>
+                {% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
+                    <div class="dropdown-menu dropdown-menu-end p-4" aria-labelledby="navbarHelpDropdown" style="width: 400px;">
+                            <p><i class="fa fa-bookmark fa-lg text-primary"></i> : Films que l'on souhaite voir. On les retrouve dans "Liste de mes films"</p>
+                            <p><i class="fa fa-eye fa-lg text-success"></i> : Film qu'on a vu</p>
+                            <p><i class="fa fa-eye-slash fa-lg text-secondary"></i> : Film qu'on n'a pas vu</p>
+                    </div>
+                {% endif %}
+            </li>
+
+        </ul>
+        <ul class="navbar-nav">
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="#" id="navbarBellDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                    <i class="fa fa-bell fa-lg"></i>
+                </a>
+                <div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarBellDropdown" style="width: 400px;">
+                    <div class="list-group px-4 py-3">
+                        {{ afficheNouveautes() | raw }}
+                    </div>
+                </div>
+            </li>
+        </ul>
+        
+        {#{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}#}
+        
+        {#{% endif %}#}
+        {%  if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}
+            <ul class="navbar-nav">
+                <li class="nav-item"><a class="nav-link" href="{{ path('app_login') }}">Se connecter</a></li>
+            </ul>
+        {% else %}
+            <ul class="navbar-nav">
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="navbarUserDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        {{ app.user.nomComplet }}
+                    </a>
+                    <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarUserDropdown">
+                        <a class="dropdown-item" href="{{ path('user_profil') }}">Profil</a>
+                        <div class="dropdown-divider"></div>
+                        <a class="dropdown-item" href="{{ path('app_logout') }}">Se déconnecter</a>
+                    </div>
+                </li>
+            </ul>
+        {% endif %}
+    </div>
+</nav>

+ 6 - 6
templates/videotheque/liste.html.twig

@@ -9,7 +9,7 @@
 {% endblock %}
 
 {% block body %}
-	<div class="container-fluid">
+	<div class="container-xxs">
 		<div class="grid">
 			<div class="g-col-3">
 			{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
@@ -43,9 +43,9 @@
 			</div>
 		</div>
 	</div>
-	<div class="table-responsive">
-		<table class="table table-bordered table-hover table-sm">
-			<thead class="thead-dark">
+	<div class="">
+		<table class="table table-bordered table-hover table-sm align-middle">
+			<thead class="">
 				<tr>
 					{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
 						<th style="width:2em;"></th>
@@ -108,8 +108,8 @@
 					{% endif %}
 					<td>
 						<a href="{{ path('videotheque_voirfilm', {'id': film.id}) }}"><span data-bs-toggle="tooltip" data-placement="right" title="{{ film.information }}">{{ film.titre }}</span></a>
-						{% if film.new %}<span class="badge bg-light text-dark">New</span>{% endif %}
-						{% if film.nbComs %}<span class="badge bg-light text-dark" data-bs-toggle="tooltip" data-original-title="{{ film.nbComs }} commentaire(s)">{{ film.nbComs }}</span>{% endif %}
+						{% if film.new %}<span class="badge bg-secondary text-dark">New</span>{% endif %}
+						{% if film.nbComs %}<span class="badge bg-secondary text-dark" data-bs-toggle="tooltip" data-original-title="{{ film.nbComs }} commentaire(s)">{{ film.nbComs }}</span>{% endif %}
 
 					</td>
 					<td>