Tenemos que fijarnos dentro de la carpeta:
"vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/views"
dentro de que carpeta esta ubicada la plantilla a sustituir, y luego copiar esta plantilla en la misma ubicación dentro de nuestro bundle hijo y por último, obligatoriamente, se debe limpiar la caché para poder apreciar los cambios, aún si estamos en dev.
Lo primero que vamos a sustituir es la plantilla layout.html.twig, por lo tanto copiamos el archivo:
vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/views/layout.html.twig
a:
src/Petramas/MyFOSUserBundle/Resources/views/layout.html.twig
luego lo editamos modificando su contenido de esto:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<div>
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
{{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }} |
<a href="{{ path('fos_user_security_logout') }}">
{{ 'layout.logout'|trans({}, 'FOSUserBundle') }}
</a>
{% else %}
<a href="{{ path('fos_user_security_login') }}">{{ 'layout.login'|trans({}, 'FOSUserBundle') }}</a>
{% endif %}
</div>
{% for type, messages in app.session.flashbag.all() %}
{% for message in messages %}
<div class="flash-{{ type }}">
{{ message }}
</div>
{% endfor %}
{% endfor %}
<div>
{% block fos_user_content %}
{% endblock fos_user_content %}
</div>
</body>
</html>
a esto:
{% block fos_user_content %}
{% endblock fos_user_content %}
el resto de código eliminado lo colocaremos en nuestro layout.html.twig de nuestro MainBundle asi:
{% for type, flashMessage in app.session.flashbag.all() %}
<div class="alert alert-{{ type }} fade in">
<button class="close" data-dismiss="alert" type="button">×</button>
{% if flashMessage.title is defined %}
<strong>{{ flashMessage.title }}</strong>
{{ flashMessage.message }}
{% else %}
{{ type }}
{% endif %}
</div>
{% endfor %}
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" data-toggle="dropdown" class="dropdown-toggle">Menú<span class="caret"></span></a>
<ul class="dropdown-menu">
<li>
<a href="#">Recepción <span class="right-caret"></span></a>
<ul class="dropdown-menu sub-menu">
<li class="disabled"><a href="#">Verificación de ingresos</a></li>
<li><a href="{{ path('recepcionmaterial') }}">Registrar ingreso de material</a></li>
<li class="disabled"><a href="#">Liquidación de servicios</a></li>
<li class="disabled"><a href="#">Aceptación de liquidación</a></li>
</ul>
</li>
<li>
<a href="#">Disposición final <span class="right-caret"></span></a>
<ul class="dropdown-menu sub-menu">
<li class="disabled"><a href="#">Programación de horas</a></li>
<li class="disabled"><a href="#">Reasignación de plataforma</a></li>
</ul>
</li>
<li>
<a href="#">Monitoreo de servicios <span class="right-caret"></span></a>
<ul class="dropdown-menu sub-menu">
<li><a href="{{ path('incidencia') }}">Incidencias</a></li>
<li><a href="{{ path('incidenciaresolucion') }}">Resolución de incidencias</a></li>
<li class="disabled"><a href="#">Monitoreo de indicadores</a></li>
</ul>
</li>
<li>
<a href="#">Venta de materiales <span class="right-caret"></span></a>
<ul class="dropdown-menu sub-menu">
<li><a href="{{ path('pedido') }}">Pedidos</a></li>
<li><a href="{{ path('pedidodetalle') }}">Detalle de pedidos</a></li>
<li class="disabled"><a href="#">Aceptación de pedidos</a></li>
<li class="disabled"><a href="#">Registrar salidas</a></li>
<li class="disabled"><a href="#">Stocks de materiales</a></li>
<li class="disabled"><a href="#">Proyección de materiales</a></li>
<li><a href="{{ path('liquidacionmaterial') }}">Liquidación de materiales</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ app.user.username }} <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="{{ path('fos_user_profile_show') }}">Perfil</a></li>
<li><a href="{{ path('fos_user_change_password') }}">Cambiar contraseña</a></li>
<li class="divider"></li>
<li><a href="{{ path('fos_user_security_logout') }}">{{ 'layout.logout'|trans({}, 'FOSUserBundle') }}</a></li>
</ul>
</li>
</ul>
{% else %}
{{ render(controller('FOSUserBundle:Security:login')) }}
{% endif %}
</div>
Con esto hemos refactorizado el contenido de nuestro navbar para que contenga el formulario de login del mismo FOSUserBundle en el caso que no estemos loggeados y si lo estamos, entonces nos muestra un dropdown con nuestro nombre de usuario, el cuál, al hacerle click nos muestra las opciones de ver nuestro perfil, cambiar nuestra contraseña y salir.
No hay comentarios.:
Publicar un comentario
Puedes comentar como te gustaría que comenten de ti.