nepster-web
@nepster-web

Twig как делать разные шаблоны для гостя и пользователя?

Столкнулся со следующей проблемой, у меня есть задача сделать страницу, которая должна вставлять в разный лаяут для гостя и для пользователя.

Тоесть. Есть, когда гость посещает сайт, он видит страницы определенным образом, когда авторизуется он попадает в личный кабинет и эти-же страницы (так только в определенном случае например стат. страницы) он должен видеть через свой личный кабинет.

Выглядит это так (главный шаблон):
...
        {% block pageTitleContainer %}{% endblock %}
        
        {% block slider %}{% endblock %}

        <!-- MAIN CONTENT -->
        <div id="outermain">
        	<div class="container">
        	<section id="maincontent" class="twelve columns">
                {% block content %}{% endblock %}
                <div class="clear"></div><!-- clear float --> 
            </section>
            </div>
        </div>
 ...


В нем показываются все страницы для гостей. Когда пользователь авторизуется, то он должен все видеть через:
{% extends "@app/themes/basic/layouts/main.twig" %}

{% block title %} Личный Бэк-офис {% endblock %}

{% block content %}
 ....
   {% block office_content %}
                    -----
   {% endblock office_content %}
 ...
{% endblock content %}


Чтобы избежать дублирования кода, я унаследовался от основного шаблона. Теперь в некоторых дочерних шаблонах мне нужно поставить проверку, если пользователь гость, то переопределять блок content, а если он авторизированный, то переопределять блок office_content.

Подскажите как это можно сделать?
  • Вопрос задан
  • 2337 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Ну так передавайте сессию в шаблон или какую-нибудь переменную которая говорит что надо отобразить тот или иной блок.

twig.sensiolabs.org/doc/tags/if.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект