Ответы пользователя по тегу Twig
  • Как вложить тег в поле формы symfony form?

    prototype_denis
    @prototype_denis
    Symfony
    Переопределить тему формы для виджета _{form_name}_save_widget

    https://symfony.com/doc/current/form/form_customiz...
    Ответ написан
  • Как сделать редирект в своем обработчике исключений?

    prototype_denis
    @prototype_denis
    Symfony
    У вас задача не пускать аутентификацированного юзверя?

    Повесте аннотацию Security на анонимного юзверя или в security.yml пропишите, что вход на страницу только анонимам.

    А ещё лучше сделайте редирект с этой страницы.

    Все решение минимум 1 строка в конфигурации или 2 в конкретном контроллере.

    ЗЫ.
    Вход аутентификацированного юзверя на страницу для анонимного юзверя не должно быть исключительной ситуацией вашей бизнес-логики. Обратное - да. Но за вас это делает фреймворк, перенаправляя юзверя на login_path
    Ответ написан
  • Как ссылаться на вложенные блоки в Twig Symfony?

    prototype_denis
    @prototype_denis
    Symfony
    '@Some/file.html.twig'
    Ответ написан
    Комментировать
  • How to iterate through object using Twig?

    prototype_denis
    @prototype_denis
    Symfony
    class Conveniences implements \Iterator
    {
         // http://php.net/manual/ru/language.oop5.iterations.php
    }


    Объект должен быть итерируемым.
    Тогда и пройдетесь по нему как по обычному массиву
    Ответ написан
    1 комментарий
  • Откуда растут ноги у простоты в использовании Twig?

    prototype_denis
    @prototype_denis
    Symfony
    {#- /views/header.twig -#}
    <div>
        <div class="left">
            {% include "/views/header/left" %}
        </div>
        <div class="right">
            {% include "/views/header/right" %}
        </div>
    </div>
    
    {#- /views/header/left.twig -#}
    <ul>
        <li><a href="#!">Link</a></li>
        <li><a href="#!">Link 2</a></li>
    </ul>
    
    
    {#- /views/header/right.twig -#}
    <p class="text-left">Right</p>
    
    
    {#- /views/base.twig -#}
    <!doctype html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>{% block title %}Hello!{% endblock %}</title>
        </head>
        <body>
            <div class="row">
                <div class="col-md-2">
                    {% include "/views/header.twig" %}
                </div>
                <div class="col-md-10">
                    {% block content %}{% endblock %}
                </div>
            </div>
            <div class="row">
                <div class="col-md-12">
                    {% block footer %}{% endblock %}
                </div>
            </div>
        </body> 
    </html> 
    
    
    {#- /views/ajax.twig -#}
    {% block content %}{% endblock %}
    
    
    
    
    {#- /views/pages/base.twig -#}
    {% extends "/views/base.twig" %}
    {% block title %}
        Welcome.
    {% endblock %}
    {% block content %}{% endblock %}
    {% block footer %} (c) 2015 {% endblock %}
    
    
    
    
    {#- /views/pages/blog/index.twig -#}
    {% extends app.isAjax() ? "/views/pages/ajax.twig" : "/views/pages/base.twig" %}
    {% block title %}
        {{ parent() }} This best blog.
    {% endblock %}
    {% block content %}
        <h1>Header</h1>
        <p>Content text</p>
    {% endblock %}
    {% block footer %}{#- remove parent -#}{% endblock %} 
    
    
    Что тут происходит.
    При рендере /views/pages/blog/index.twig 
    шаблонизатор будет подниматься вверх.
    
    В нём переопределяем footer, дополняем title.
    title  = "??? This best blog."
    footer = ""
    content = "<h1>...."
    
    index (проверка переменной) +-> ajax.twig -> вывод
                                |
                                | or
                                |
                                +-> page/base.twig + 
                                                   |
          +----------------------------------------+
          |      Тут по пути уже к базовому шаблону переопределяем footer и title
          |      title  = "Welcome. This best blog."
          |      footer = ""
          |      content = "<h1>...."
          |
          v                 А тут уже include
          base.twig - - - > header.twig - + - - > left.twig
          |                               + - - > right.twig
          v
        вывод
    
    
    +---------------------------------------+
    | +-----------------------------------+ |
    | |                                   | |
    | | +--------------+ +--------------+ | |
    | | | left         | | right        | | | header
    | | +--------------+ +--------------+ | |
    | |                                   | |
    | +-----------------------------------+ |
    | |                                   | |
    | | +----------------------------+    | | base | ajax
    | | | Welcome. This best blog.   |    | | title
    | | +----------------------------+    | |
    | |                                   | |
    | | +----------------------------+    | |
    | | |  Header                    |    | | content
    | | |  Content text              |    | |
    | | +----------------------------+    | |
    | |                                   | |
    | +-----------------------------------+ |
    +---------------------------------------+


    Помимо простой иерархии блоков, в шаблонизаторе очень много интересного.
    Только и успевай документацию читать...

    ЗЫ. По умолчанию тут почему-то html подсветка. (бред)
    Ответ написан
    Комментировать