Reputation: 7229
I render same page in modal and self.
I wonder if there is some way to check for some condition and if condition is true not to include header and footer with use tag.
{% extends 'ProfileBundle::base.html.twig' %}
{% block stylesheets %}
{{ parent() }}
<link href="..."/>
{% endblock %}
{% if modal is not defined %}
{% use 'ProfileBundle::navigation.html.twig' %}
{% use 'ProfileBundle::footer.html.twig' %}
{% endif %}
{% block main %}
{% endblock %}
Upvotes: 1
Views: 1338
Reputation: 15592
To use the use
tag in twig
, you still need to call them if you want to render the blocks. So before rendering the blocks you can add your condition (twigfiddle)
page.twig
{% extends "base.twig" %}
{% block stylesheets %}
{{ parent() }}
<link rel="text/css" href="page.css" />
{% endblock %}
{% block content %}
{% if not modal is defined %}{{ block('navigation') }}{% endif %}
<h1>Content</h1>
{% if not modal is defined %}{{ block('footer') }}{% endif %}
{% endblock %}
base.twig
{% use "navigation.twig" %}
{% use "footer.twig" %}
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
{% block stylesheets %}
<link rel="stylesheet" type="text/css" href="default.css" />
{% endblock %}
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
navigation.twig
{% block navigation %}
<nav id="main">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
</nav>
{% endblock %}
footer.twig
{% block footer %}
<footer>
© {{ "now" | date('Y') }}
</footer>
{% endblock %}
Upvotes: 3