{% include "field/preamble.twig" %}
<span class="multiple-choice-field">
    {% for choiceSlug, choice in choices %}
        <input type="checkbox" name="{{ slug }}" value="{{ choiceSlug }}" {% if choiceSlug == initial %}checked{% endif %}> {{ choice }}
    {% endfor %}
</span>
{% include "field/postamble.twig" %}

Use select for more than two options.

{% include "field/preamble.twig" %}
<span class="multiple-choice-field">
    {% for choiceSlug, choice in choices %}
        <input type="checkbox" name="{{ slug }}" value="{{ choiceSlug }}" {% if choiceSlug in initial %}checked{% endif %}> {{ choice }}
    {% endfor %}
</span>
{% include "field/postamble.twig" %}


{% extends '::base.html.twig' %}

{% block title %}phpDocumentor 2  « About{% endblock %}

{% block body %}

About

phpDocumentor is the world standard auto-documentation tool for PHP. Written in PHP, phpDocumentor can be used
      directly from the command-line. phpDocumentor can be used to generate professional documentation directly from
      the source code of your PHP project. Support for linking between documentation, automatic class inheritance and
      generation of highlighted source code with cross-referencing to php general documentation are just a few of the
      features of phpDocumentor.

Why document at all?

In any kind of software development there will be code reuse, whether intended or not. Source code
      documentation, the comments placed in your php files, can act as an explanation for behavior. Without some kind
      of documentation, users are forced to make assumptions about code, or find things out using trial and error, or
      worst of all, fill your mailbox with requests. But even if you've documented your code well picking comments out
      of lines and lines of code can be tedious, and not very useful.

{% endblock %}

Fix capitals on PHP on About

{% extends '::base.html.twig' %}

{% block title %}phpDocumentor 2  « About{% endblock %}

{% block body %}

About

phpDocumentor is the world standard auto-documentation tool for PHP. Written in PHP, phpDocumentor can be used
      directly from the command-line. phpDocumentor can be used to generate professional documentation directly from
      the source code of your PHP project. Support for linking between documentation, automatic class inheritance and
      generation of highlighted source code with cross-referencing to PHP general documentation are just a few of the
      features of phpDocumentor.

Why document at all?

In any kind of software development there will be code reuse, whether intended or not. Source code
      documentation, the comments placed in your PHP files, can act as an explanation for behavior. Without some kind
      of documentation, users are forced to make assumptions about code, or find things out using trial and error, or
      worst of all, fill your mailbox with requests. But even if you've documented your code well picking comments out
      of lines and lines of code can be tedious, and not very useful.

{% endblock %}


{% extends 'KorobiWebBundle::layout.html.twig' %}

{% set page_title = "Channel feature unavailable" %}

{% block body %}

Channel feature unavailable

The requested feature “{{ exception.feature }}” for channel “{{ exception.channel }}” on network “{{ exception.network }}” is unavailable.

{% endblock %}

Use consistent formatting for error pages

{% extends 'KorobiWebBundle::layout.html.twig' %}

{% set page_title = "Channel feature unavailable" %}

{% block body %}

Channel feature unavailable

The requested feature {{ exception.feature }} for channel {{ exception.channel }} on network {{ exception.network }} is unavailable.

{% endblock %}


Add add method view for wallet controller

{% extends 'CashflowBundle::base.html.twig' %}

{% block body %}

Add Wallet

{{ form_errors(form) }}

    {{ form(form, {'method': 'POST'}) }}
{% endblock %}


{% set is_stable = 'DEV' not in sylius_meta.version %}
{% set admin_url = is_stable ? 'https://demo.sylius.com/admin' : 'https://master.demo.sylius.com/admin' %}

{% if app.request.attributes.get('_route') == 'sylius_shop_homepage' %}

            How to access Sylius administration panel?

            Go to {{ admin_url }}

            Do you know that you can browse the demo of different Sylius versions?

            In the bottom right corner you can switch between the demo of the latest stable release and the demo of yet unreleased features.

            Any questions?

            Contact us!

{% endif %}

Add link to Swagger UI to info box on homepage

{% set is_stable = 'DEV' not in sylius_meta.version %}
{% set admin_url = is_stable ? 'https://demo.sylius.com/admin' : 'https://master.demo.sylius.com/admin' %}

{% if app.request.attributes.get('_route') == 'sylius_shop_homepage' %}

            How to access Sylius administration panel?

            Go to {{ admin_url }}

            Do you know that you can browse the demo of different Sylius versions?

            In the bottom right corner you can switch between the demo of the latest stable release and the demo of yet unreleased features.

            {% if not is_stable %}
                How to test the new Sylius API?

                Go to {{ 'https://master.demo.sylius.com/new-api/docs' }}

            {% endif %}

            Any questions?

            Contact us!

{% endif %}


      {{ 'lbl.Faq'|trans|ucfirst }}: {{ 'lbl.Feedback'|trans|ucfirst }}

  {% if faqFeedback %}

          {% for _itr_12 in faqFeedback %}

              {{ _itr_12.text|truncate(150) }}

          {% endfor %}

  {% endif %}
  {% if not faqFeedback %}

{{ 'msg.NoFeedback'|trans }}

  {% endif %}

    {{ 'lbl.AllQuestions'|trans|ucfirst }}

Update faq dashboard widget header


{% extends 'MunicipalesBundle:theme:layout.html.twig' %}

{% block title %}{{ 'consultation.error.html_title'|trans }}{% endblock %}
{% block content %}

			<button data-dismiss="alert" class="close" type="button">

		    </button>
		    {{ error|raw  }}

{% endblock %}


{
    "$schema": "http://json-schema.org/draft-04/hyper-schema#",
    "title": "{{ title }}",
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "readOnly": true,
            "links": [{ "rel": "full", "href": "/{{ type }}/{$}" }]
        }
    },
    "required": ["id"],
    "links": [
        { "rel": "delete", "href": "/{{ type }}/{id}" },
        { "rel": "put", "href": "/{{ type }}/{id}" }
    ]
}

Add instances link to crud template

{{ title }}


    {% for category, heading in navigation %}

{{ heading.title }}

            {% for section, title in heading.sections %}

{{ html_link(request.route.compiled.staticPrefix ~ '/' ~ str_plural(addon.type) ~ '/documentation/' ~ addon.namespace ~ '/' ~ category ~ '/' ~ section, title) }}

            {% endfor %}

    {% endfor %}

Use DH for list headings

    {% for category, heading in navigation %}

            <dh>{{ heading.title }}</dh>
            {% for section, title in heading.sections %}

{{ html_link(request.route.compiled.staticPrefix ~ '/' ~ str_plural(addon.type) ~ '/documentation/' ~ addon.namespace ~ '/' ~ category ~ '/' ~ section, title) }}

            {% endfor %}

    {% endfor %}


{% import '@SyliusAdmin/Macro/breadcrumb.html.twig' as breadcrumb %}

{% set breadcrumbs = [
    { label: 'sylius.ui.administration'|trans, url: path('sylius_admin_dashboard') },
    { label: 'sylius.ui.products'|trans, url: path('sylius_admin_product_index') },
    { label: product.code }
] %}

{{ breadcrumb.crumble(breadcrumbs) }}

Unify product crumb in both show and update page

{% import '@SyliusAdmin/Macro/breadcrumb.html.twig' as breadcrumb %}

{% set breadcrumbs = [
    { label: 'sylius.ui.administration'|trans, url: path('sylius_admin_dashboard') },
    { label: 'sylius.ui.products'|trans, url: path('sylius_admin_product_index') },
    { label: resource.name|default(resource.code|default(resource.id)) }
] %}

{{ breadcrumb.crumble(breadcrumbs) }}


{% extends 'Layout/Templates/base.html.twig' %}
{% import "Layout/Templates/macros.html.twig" as macro %}

{% block actionbar %}

{% endblock %}

{% block content %}
  {% form import %}

          {{ 'lbl.File'|trans|ucfirst }}
          {{ macro.required }}

        {% form_field file %} {% form_field_error file %}

            {% form_field overwrite %} {{ 'msg.OverwriteConflicts'|trans }}

          <button id="importButton" type="submit" name="add" class="btn btn-primary">
            {{ 'lbl.Import'|trans|ucfirst }}
          </button>

  {% endform %}
{% endblock %}

Make the import button match the button on the index page


{% import '@SyliusUi/Macro/flags.html.twig' as flags %}

        {{ 'sylius.ui.order'|trans }} #{{ order.number }}

                    {{ order.checkoutCompletedAt|format_date }}

                    {% include [('@SyliusAdmin/Order/Label/State' ~ '/' ~ order.state ~ '.html.twig'), '@SyliusUi/Label/_default.html.twig'] with {'value': ('sylius.ui.' ~ order.state)|trans} %}

                    {{ order.currencyCode }}

                    {{ flags.fromLocaleCode(order.localeCode) }}{{ order.localeCode|locale }}

                    {{ 'sylius.ui.purchased_from'|trans }}
                     {{ order.channel }}

Add custom id to order currency


Convert to Twig: SP's /admin/entries/ajax_media_load

{% if files %}

            <button type="button" class="btn_contents positive touch" onclick="addMedia.add();">{{ _('Add') }}</button>

        {% for file in files %}

                    {{ t(file.name, 10) }}

                    <input type="checkbox" id="sys-form-add-media-check-{{ file.id }}"/>

                        {{ t(file.name, 10) }}

        {% endfor %}

{{ paging.page+1 }} / {{ paging.max_page }}

                {% if paging.is_prev %}

{{ _('Previous page') }}

                {% endif %}
                {% if not paging.is_prev %}

{{ _('Previous page') }}

                {% endif %}

                {% if paging.is_next %}

{{ _('Next page') }}

                {% endif %}
                {% if not paging.is_next %}

{{ _('Next page') }}

                {% endif %}

{% endif %}
{% if not files %}

対象のファイルは存在しません
{# TODO 多国語対応していない #}

{% endif %}


{#=== Options ============================================================================#}

{% set attr_opt = {
class:              field.class|default(''),
name_id:            key,
required:           field.required|default(false),
readonly:           field.readonly|default(false),
type:               field.hidden ? 'hidden' : 'text',
'data-format':      field.format|default('rgba'),
'data-inline':      field.inline ? 'true' : 'false',
'data-horizontal':  field.horizontal ? 'true' : 'false',
'data-align':       field.align|default('left')
}%}

{#=== FIELDSET ============================================================================#}

<fieldset class="bootstrap-colorpicker">

            {{field.label|default(key)}}

        <input {{ macro.attr(attr_opt) }} data-container=".{{key}}container" value="{{ context.content.get(key)|default('rgba(0,0,0,1)') }}" data-color="{{ context.content.get(key)|default('rgba(0,0,0,1)') }}"/>

</fieldset>

Fix when used in templatefields

{#=== Options ============================================================================#}

{% set attr_opt = {
class:              field.class|default(''),
id:                 key,
name:               name,
required:           field.required|default(false),
readonly:           field.readonly|default(false),
type:               field.hidden ? 'hidden' : 'text',
'data-format':      field.format|default('rgba'),
'data-inline':      field.inline ? 'true' : 'false',
'data-horizontal':  field.horizontal ? 'true' : 'false',
'data-align':       field.align|default('left')
}%}

{#=== FIELDSET ============================================================================#}

<fieldset class="bootstrap-colorpicker">

            {{field.label|default(key)}}

        <input {{ macro.attr(attr_opt) }} data-container=".{{key}}container" value="{{ context.content.get(contentkey)|default('rgba(0,0,0,1)') }}" data-color="{{ context.content.get(contentkey)|default('rgba(0,0,0,1)') }}"/>

</fieldset>


Add new twig template for displaying the dropdown menu

<select class="selectpicker" id="dbVersionPicker">
    {% for dbversion in dbversions.connections|keys %}
    <option data-icon="glyphicon-tag" value="{{ dbversion }}" > {{ dbversion }} </option>
    {% endfor %}
</select>


{% if sm_can(data, options.transition, options.graph) %}
    <form action="{{ path(options.link.route, options.link.parameters) }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token(data.id) }}">
        <input type="hidden" name="_method" value="PUT">
        <button class="ui loadable {{ options.class }} labeled icon button" type="submit"><i class="{{ action.icon }} icon"></i> {{ action.label|trans }}</button>
    </form>
{% endif %}

Allow not to pass "apply_transition" button class

{% if sm_can(data, options.transition, options.graph) %}
    <form action="{{ path(options.link.route, options.link.parameters) }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token(data.id) }}">
        <input type="hidden" name="_method" value="PUT">
        <button class="ui loadable {{ options.class|default }} labeled icon button" type="submit"><i class="{{ action.icon }} icon"></i> {{ action.label|trans }}</button>
    </form>
{% endif %}


Add modal view for creating association via dragging from one tree to another in tree view

{% extends '::layout.html.twig' %}

{% block body %}
    {% if not app.request.xmlHttpRequest %}

LsAssociation creation

    {% endif %}

    {{ form_start(form) }}

        {{ form_widget(form) }}
        {% if not app.request.xmlHttpRequest %}
            <input class="btn btn-primary" type="submit" value="Create" />
        {% endif %}
    {{ form_end(form) }}

    {% if not app.request.xmlHttpRequest %}

            Back to the list

    {% endif %}
{% endblock %}

{% block javascripts %}
{% endblock %}


Convert to Twig: SP's /admin/blog_templates/fc2_index

{% extends 'admin/layouts/default_sp.twig' %}
{% block title %}{{ _('FC2 Template list') }}{% endblock %}

{% block content %}

{{ _('FC2 Template list') }}[{{ attribute(devices, req.get('device_type')) }}]

    {% if templates %}

            {% for template in templates %}

{{ template.name }}

            {% endfor %}

    {% endif %}
    {% if not templates %}

{{ _('FC2 template can not be found') }}

    {% endif %}

    {% include('admin/common/paging_sp.twig') %}

{% endblock %}


Add template for my trait overview table

 My projects

ID	Import Filename	Import Date	# OTUs	# Samples	Status	Actions


{{ asset_add("scripts.js", "anomaly.field_type.datetime::js/jquery.plugin.min.js") }}
{{ asset_add("scripts.js", "anomaly.field_type.datetime::js/jquery.datetimeentry.min.js") }}
{{ asset_add("scripts.js", "anomaly.field_type.datetime::js/input.js") }}

    <input
            type="text"
            class="form-control"
            name="{{ field_type.input_name }}"
            data-step="{{ field_type.config.step }}"
            value="{{ field_type.format(field_type.datetime_format) }}"
            placeholder="{{ 'now'|date(field_type.datetime_format) }}"
            data-datetime-format="{{ field_type.plugin_format }}"
            {{ html_attributes(field_type.attributes) }}
            {{ field_type.required ? 'required' }}
            {{ field_type.disabled ? 'disabled' }}
            {{ field_type.readonly ? 'readonly' }}>

        {{ field_type.config.timezone }}

Remove TZ on date mode

{{ asset_add("scripts.js", "anomaly.field_type.datetime::js/jquery.plugin.min.js") }}
{{ asset_add("scripts.js", "anomaly.field_type.datetime::js/jquery.datetimeentry.min.js") }}
{{ asset_add("scripts.js", "anomaly.field_type.datetime::js/input.js") }}

    <input
            type="text"
            class="form-control"
            name="{{ field_type.input_name }}"
            data-step="{{ field_type.config.step }}"
            value="{{ field_type.format(field_type.datetime_format) }}"
            placeholder="{{ 'now'|date(field_type.datetime_format) }}"
            data-datetime-format="{{ field_type.plugin_format }}"
            {{ html_attributes(field_type.attributes) }}
            {{ field_type.required ? 'required' }}
            {{ field_type.disabled ? 'disabled' }}
            {{ field_type.readonly ? 'readonly' }}>

    {% if field_type.config.mode != 'date' %}

            {{ field_type.config.timezone }}

    {% endif %}


<select class="select2 navigationSelect" style="width: 100%">
  <option value="" selected="selected">Sujets...</option>
  {% set section_id = -1 %}

  {% for topic in topics %}

    {% if topic.section_id != section_id and section_id != -1 %}
      </optgroup>
    {% endif %}

    {% if topic.section_id != section_id %}
      {% set section_id = topic.section_id %}
      <optgroup label="{{ topic.section_title }}">
    {% endif %}

    <option value="{{ path('topic', {campagne_id : campagne_id, topic_id : topic.topics_id}) }}#post{{ topic.read_post_id }}">{{topic.topics_title}}</option>

  {% endfor %}
  </optgroup>
</select>
<p> </p>

FIX - Lb problem in not user party

<select class="select2 navigationSelect" style="width: 100%">
  <option value="" selected="selected">Sujets...</option>
  {% set section_id = -1 %}

  {% for topic in topics %}

    {% if topic.section_id != section_id and section_id != -1 %}
      </optgroup>
    {% endif %}

    {% if topic.section_id != section_id %}
      {% set section_id = topic.section_id %}
      <optgroup label="{{ topic.section_title }}">
    {% endif %}
    {% if topic.topics_id is not null %}
    <option value="{{ path('topic', {campagne_id : campagne_id, topic_id : topic.topics_id}) }}#post{{ topic.read_post_id }}">{{topic.topics_title}}</option>
    {% endif %}

  {% endfor %}
  </optgroup>
</select>
<p> </p>


{{ 'last_observation'|trans }}

    {% if observations|length > 0 %}

            {% for observation in observations %}
                <div {% if loop.index < 3 %} class="col s12 m6 l4" {% else %} class="col s12 m6 offset-m3 l4" {% endif %}>
                    {% include 'common/cards/observation.html.twig' with {'observation':observation } only %}

            {% endfor %}

    {% else %}
        {{ 'no_observation_for_moment'|trans }}
    {% endif %}

Fix (homepage): Text files should end with a newline character


<?php

/**
 * @file
 * Tests for {{module}}.module.
 */

namespace Drupal\{{module}}\Tests;

use Drupal\simpletest\WebTestBase;

/**
 * Provides automated tests for the {{module}} module.
 */
class {{module}}Test extends WebTestBase {

  public static function getInfo() {
    return array(
      'name' => '{{module}} functionality',
      'description' => 'Test Untit for module {{module}}.',
      'group' => 'Other',
    );
  }

  function setUp() {
    parent::setUp();
  }

  /**
   * Tests {{module}} functionality.
   */
  function test{{module}}() {
    //Check that the basic functions of module {{module}}.
    $this->assertEqual(TRUE, TRUE, 'Test Unit Generated via App Console.');
  }

}

Fix Spelling error, untit:unit in skeleton simpletest example

<?php

/**
 * @file
 * Tests for {{module}}.module.
 */

namespace Drupal\{{module}}\Tests;

use Drupal\simpletest\WebTestBase;

/**
 * Provides automated tests for the {{module}} module.
 */
class {{module}}Test extends WebTestBase {

  public static function getInfo() {
    return array(
      'name' => '{{module}} functionality',
      'description' => 'Test Unit for module {{module}}.',
      'group' => 'Other',
    );
  }

  function setUp() {
    parent::setUp();
  }

  /**
   * Tests {{module}} functionality.
   */
  function test{{module}}() {
    //Check that the basic functions of module {{module}}.
    $this->assertEqual(TRUE, TRUE, 'Test Unit Generated via App Console.');
  }

}


{% block yandex_maps_widget %}

    {% for child in form %}
        {% if child.vars.value is empty %}
            {{ form_row(child, {
                value: default[ child.vars.name ]
            }) }}
        {% else %}
            {{ form_row(child) }}
        {% endif %}
    {% endfor %}

{% endblock %}

Add ability to access the map object


---
title: David Buchmann
identifier: davidbu
avatar: https://cdn-images-1.medium.com/fit/c/100/100/0*5ti667chDSfm_2B4.jpg
twitter: dbu
bio: Symfony CMF and working at Liip, doing PHP development. And occasionally hacking on other stuff.
use:
- posts
---

Use a confirmed working URL for dbu's profile image

---
title: David Buchmann
identifier: davidbu
avatar: https://miro.medium.com/fit/c/100/100/0*5ti667chDSfm_2B4
twitter: dbu
bio: Symfony CMF and working at Liip, doing PHP development. And occasionally hacking on other stuff.
use:
- posts
---


{% if not cookieBarHide %}

    {{ 'msg.CookiesWarning'|trans }}
    {{ 'lbl.IAgree'|trans|ucfirst }}
    {{ 'lbl.IDisagree'|trans|ucfirst }}

{% endif %}

Fix link in cookie bar text in triton theme

{% if not cookieBarHide %}

    {{ 'msg.CookiesWarning'|trans|raw }}
    {{ 'lbl.IAgree'|trans|ucfirst }}
    {{ 'lbl.IDisagree'|trans|ucfirst }}

{% endif %}


{% if form.message %}
{{ form.message }}
{% endif %}

<form name="{{ form.name }}"
      action="{{ form.action ? base_url ~ form.action : page.url }}"
      method="{{ form.method|upper|default('POST') }}">
{% for field in form.fields %}
    {% set value = form.value(field.name) %}

        {% include "forms/fields/#{field.type|default('text')}/#{field.type|default('text')}.html.twig" %}

{% endfor %}

	{% for button in form.buttons %}
	    <button class="{{ button.classes|default('button') }}" type="{{ button.type|default('submit') }}">{{ button.value|default('Submit') }}</button>
	{% endfor %}

  {{ nonce_field('form', 'form-nonce') }}
</form>

Revert defaulting to text field type

{% if form.message %}
{{ form.message }}
{% endif %}

<form name="{{ form.name }}"
      action="{{ form.action ? base_url ~ form.action : page.url }}"
      method="{{ form.method|upper|default('POST') }}">
{% for field in form.fields %}
    {% set value = form.value(field.name) %}

        {% include "forms/fields/#{field.type}/#{field.type}.html.twig" %}

{% endfor %}

	{% for button in form.buttons %}
	    <button class="{{ button.classes|default('button') }}" type="{{ button.type|default('submit') }}">{{ button.value|default('Submit') }}</button>
	{% endfor %}

  {{ nonce_field('form', 'form-nonce') }}
</form>


  {% set langobj = grav['language'] %}
  {% set key = langswitcher.current %}
  {% set language = langswitcher.languages[key] %}
  {% set lang_url = base_url_simple ~ langobj.getLanguageURLPrefix(key)~langswitcher.page_route ?: langobj.getDefault() %}
   {{ native_name(key)|capitalize }}

    {% for key in langswitcher.languages %}
        {% if key != langswitcher.current %}
            {% set lang_url = base_url_simple ~ langobj.getLanguageURLPrefix(key)~langswitcher.page_route ?: langobj.getDefault() %}

{{ native_name(key)|capitalize }}

        {% endif %}
    {% endfor %}

 {{ "MSG_HELP_TRANSLATE"|t }}

Resolve default language not reachable with http_accept_language

  {% set langobj = grav['language'] %}
  {% set key = langswitcher.current %}
  {% set language = langswitcher.languages[key] %}
  {% set lang_url_prefix = langobj.getLanguageURLPrefix(key) ?: '/' ~ langobj.getDefault() %}
  {% set lang_url = base_url_simple ~ lang_url_prefix ~ langswitcher.page_route ?: langobj.getDefault() %}
   {{ native_name(key)|capitalize }}

    {% for key in langswitcher.languages %}
        {% if key != langswitcher.current %}
            {% set lang_url_prefix = langobj.getLanguageURLPrefix(key) ?: '/' ~ langobj.getDefault() %}
            {% set lang_url = base_url_simple ~ lang_url_prefix ~ langswitcher.page_route ?: '/' %}

{{ native_name(key)|capitalize }}

        {% endif %}
    {% endfor %}

 {{ "MSG_HELP_TRANSLATE"|t }}


{% include '@SyliusShop/Taxon/_breadcrumb.html.twig' %}

    {{ taxon.name }}

{{ taxon.description }}

Add events before and after taxon header (e.g. to add tracking including taxon data)

{% include '@SyliusShop/Taxon/_breadcrumb.html.twig' %}

{{ sonata_block_render_event('sylius.shop.taxon.header.before', {'taxon': taxon}) }}

    {{ taxon.name }}

{{ taxon.description }}

{{ sonata_block_render_event('sylius.shop.taxon.header.after', {'taxon': taxon}) }}


            {{ article.title }}

                {{ article.createdAt|date('M-j-y g:ia') }}

        {{ article.content|raw }}

        {% if article.tags is defined and article.tags|length > 0 %}
            {% for tag in article.tags %}

                        {{ tag.name }}

            {% endfor %}
        {% endif %}

Remove article panel and redesign article

        {{ article.title }}

            {{ article.createdAt|date('M jS, Y', 'America/New_York') }}

    {% if article.tags is defined and article.tags|length > 0 %}
        {% for tag in article.tags %}
            #{{ tag.name }}
        {% endfor %}
    {% endif %}

    {{ article.content|raw }}


GenericData edit

<form action="{{ path('genericdata_update', { 'id': entity.id }) }}" method="post" {{ form_enctype(edit_form) }}>
    {{ form_widget(edit_form) }}

        <button type="submit">Edit</button>

</form>

            Back to the list

        <form action="{{ path('genericdata_delete', { 'id': entity.id }) }}" method="post">
            {{ form_widget(delete_form) }}
            <button type="submit">Delete</button>
        </form>

Test push from an other PC

GenericData edit

<form action="{{ path('genericdata_update', { 'id': entity.id }) }}" method="post" {{ form_enctype(edit_form) }}>
    {{ form_widget(edit_form) }}

        <button type="submit">Edit</button>

</form>

            > Back to the list

        <form action="{{ path('genericdata_delete', { 'id': entity.id }) }}" method="post">
            {{ form_widget(delete_form) }}
            <button type="submit">Delete</button>
        </form>


{% if navigation %}

    {% for nav in navigation %}

        {{ nav.navigation_title }}
        {% if nav.selected %}{{ nav.children }}{% endif %}

    {% endfor %}

{% endif %}

Remove wrong role navigation that is not valid


{{ '{% extends "::base.html.twig" %}' }}
{{ '{% block title %}' -}}
Hello
{{- '{% endblock %}' }}
{{ '{% block body %}' }}

Hello {% raw %}{{ name }}{% endraw %}!

Bootstrap Labels

    Default
    Primary
    Success
    Info
    Warning
    Danger

Here you can insert your twitter bootstrap components

{{ '{% endblock %}' }}

Improve skeleton for generators bundle view


{% extends '::base.html.twig' %}

{% block metaTitle %}
  All tickets - {{ parent() }}
{% endblock %}

{% block title %}Viewing all tickets{% endblock %}

{% block content %}
  {% if message %}

{{ message }}

  {% endif %}

  {% for ticket in tickets %}

{{ ticket.title }}

{{ ticket.created_at }}

View ticket

  {% endfor %}
{% endblock %}

Fix bugs in previous showAll tpl

{% extends '::base.html.twig' %}

{% block metaTitle %}
  All tickets - {{ parent() }}
{% endblock %}

{% block title %}Viewing all tickets{% endblock %}

{% block content %}
  {% if message %}

{{ message }}

  {% endif %}

  {% for ticket in tickets %}

{{ ticket.title }}

        {{ ticket.createdAt|date("M, d Y") }}

View ticket

  {% endfor %}
{% endblock %}


Hi,

    SP Dashboard heeft getracht een 'spd-request-production-entity' Jira issue aan te maken. Maar dit is mislukt. De volgende
    exception message is opgegooid.

    {{ exception.message }}
    {{ dump(exception.trace) }}

    De entity "{{ entityId }}" van Service {{ serviceName }} is niet in Manage opgenomen, omdat JIRA niet beschikbaar was om een ticket aan te maken. Los het JIRA probleem op, daarna kan de entity alsnog worden gepubliceerd.

    Met vriendelijke groet,

    SURFconext

Fix the dump method in twig template for prod

Hi,

    SP Dashboard heeft getracht een 'spd-request-production-entity' Jira issue aan te maken. Maar dit is mislukt. De volgende
    exception message is opgegooid.

    {{ exception.message }}

    De entity "{{ entityId }}" van Service {{ serviceName }} is niet in Manage opgenomen, omdat JIRA niet beschikbaar was om een ticket aan te maken. Los het JIRA probleem op, daarna kan de entity alsnog worden gepubliceerd.

    Met vriendelijke groet,

    SURFconext


<!doctype html>
<!--[if lt IE 7]><html class="no-js ie ie6 lt-ie9 lt-ie8 lt-ie7" {{site.language_attributes}}> <![endif]-->
<!--[if IE 7]><html class="no-js ie ie7 lt-ie9 lt-ie8" {{site.language_attributes}}> <![endif]-->
<!--[if IE 8]><html class="no-js ie ie8 lt-ie9" {{site.language_attributes}}> <![endif]-->
<!--[if gt IE 8]><!--><html class="no-js" {{site.language_attributes}}> <!--<![endif]-->
<head>
    <meta charset="{{site.charset}}" />
        <title>
            {% if wp_title %}
                {{ wp_title }} - {{ site.name }}
            {% else %}
                {{ site.name }}
            {% endif %}
        </title>
    <meta name="description" content="{{site.description}}">
    <link rel="stylesheet" href="{{site.theme.link}}/style.css" type="text/css" media="screen" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="pingback" href="{{site.pingback_url}}" />
    {{function('wp_head')}}

Remove title tag from html header in favor of title-tag theme support

<!doctype html>
<!--[if lt IE 7]><html class="no-js ie ie6 lt-ie9 lt-ie8 lt-ie7" {{site.language_attributes}}> <![endif]-->
<!--[if IE 7]><html class="no-js ie ie7 lt-ie9 lt-ie8" {{site.language_attributes}}> <![endif]-->
<!--[if IE 8]><html class="no-js ie ie8 lt-ie9" {{site.language_attributes}}> <![endif]-->
<!--[if gt IE 8]><!--><html class="no-js" {{site.language_attributes}}> <!--<![endif]-->
<head>
    <meta charset="{{site.charset}}" />
    <meta name="description" content="{{site.description}}">
    <link rel="stylesheet" href="{{site.theme.link}}/style.css" type="text/css" media="screen" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="pingback" href="{{site.pingback_url}}" />
    {{function('wp_head')}}


{% extends 'CalciferBundle::layout.html.twig' %}

{% block css %}
    {% stylesheets filter="compass"
        "@CalciferBundle/Resources/assets/css/events.scss"
    %}
        <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

{% block javascripts %}
    {% javascripts
    "@CalciferBundle/Resources/assets/js/events.js"
    %}

    {% endjavascripts %}
{% endblock %}

{% block body -%}

                Termine
                {% if tag|default(false) %} für Tag „{{ tag.name }}“{% endif %}
                {% if location|default(false) %} für Ort „{{ location.name }}{% endif %}

        {% for entity in entities %}
            {{ include('CalciferBundle:Event:event_box.html.twig',{'truncate_summary':true}) }}
        {% endfor %}

{% endblock %}

Make the event grid on the startpage responsive.


{% extends "default.twig" %}

{% block content %}

                {% for itemId, item in menu.items %}

                        {{ item.section }}

                            {% for itemId, item in item.items %}

                                        {{ item.text|raw }}

                            {% endfor %}

                {% endfor %}

                    Edit this page on GitHub

            {{ content|raw }}

{% endblock %}

Make the link to edit the current page on GitHub point to the rendered file


{% macro list(countries) %}

{% import 'SyliusWebBundle:Backend/Macros:buttons.html.twig' as buttons %}
{% import 'SyliusWebBundle:Backend/Macros:alerts.html.twig' as alerts %}

{% if countries|length > 0 %}

            {{ sylius_resource_sort('id', 'sylius.country.id'|trans) }}
            {{ sylius_resource_sort('name', 'sylius.country.name'|trans) }}
            {{ sylius_resource_sort('isName', 'sylius.country.iso_name'|trans) }}

    {% for country in countries %}

            {{ country.id }}
            {{ country.name }}
            {{ country.isoName }}

                {{ buttons.show(path('sylius_backend_country_show', {'id': country.id})) }}
                {{ buttons.edit(path('sylius_backend_country_update', {'id': country.id})) }}
                {{ buttons.delete(path('sylius_backend_country_delete', {'id': country.id})) }}

    {% endfor %}

{% else %}
{{ alerts.info('sylius.country.no_results'|trans) }}
{% endif %}

{% endmacro %}

Fix glitch when sorting countries

{% macro list(countries) %}

{% import 'SyliusWebBundle:Backend/Macros:buttons.html.twig' as buttons %}
{% import 'SyliusWebBundle:Backend/Macros:alerts.html.twig' as alerts %}

{% if countries|length > 0 %}

            {{ sylius_resource_sort('id', 'sylius.country.id'|trans) }}
            {{ sylius_resource_sort('name', 'sylius.country.name'|trans) }}
            {{ sylius_resource_sort('isoName', 'sylius.country.iso_name'|trans) }}

    {% for country in countries %}

            {{ country.id }}
            {{ country.name }}
            {{ country.isoName }}

                {{ buttons.show(path('sylius_backend_country_show', {'id': country.id})) }}
                {{ buttons.edit(path('sylius_backend_country_update', {'id': country.id})) }}
                {{ buttons.delete(path('sylius_backend_country_delete', {'id': country.id})) }}

    {% endfor %}

{% else %}
{{ alerts.info('sylius.country.no_results'|trans) }}
{% endif %}

{% endmacro %}


{% trans_default_domain 'admin' %}

{{ form_start(form, {'attr': {'class': 'js-form', 'data-reload-page': 1}}) }}
{{ form_widget(form) }}
<button type="submit"
        class="table-row__btn-clone"
        title="{{ (translation_prefix ~ 'action.copy.submit')|trans|e('html_attr') }}"
        onclick="return confirm('{{ 'common.confirm'|trans|e('js') }}');">

</button>
{{ form_end(form) }}

Change copy form view widget's HTML.

{% trans_default_domain 'admin' %}

{% set title   = (translation_prefix ~ 'action.copy.submit')|trans %}
{% set classes = {
    'default': 'table-row__btn-clone',
    'show':    'modal-actions__btn-copy',
} %}

{{ form_start(form, {'attr': {'class': 'js-form', 'data-reload-page': 1}}) }}
{{ form_widget(form) }}
<button type="submit"
        class="{{ classes[style]|default(classes.default) }}"
        title="{{ title|e('html_attr') }}"
        onclick="return confirm('{{ 'common.confirm'|trans|e('js') }}');">
    {{ title }}
</button>
{{ form_end(form) }}


{# src/RCloud/Bundle/UserBundle/Resources/views/Security/login.html.twig #}

{% extends 'RCloudUserBundle::layout.html.twig' %}

{% trans_default_domain 'FOSUserBundle' %}

{% block fos_user_content %}
    {% if error %}

{{ error|trans }}

    {% endif %}

    <form action="{{ path("fos_user_security_check") }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />

            {{ 'security.login.username'|trans }}
            <input type="text" id="username" name="_username" value="{{ last_username }}" required="required" />

            {{ 'security.login.password'|trans }}
            <input type="password" id="password" name="_password" required="required" />

            <input type="checkbox" id="remember_me" name="_remember_me" value="on" />
            {{ 'security.login.remember_me'|trans }}

            <input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" />

    </form>

        Register

{% endblock %}

Add register link on login page

{# src/RCloud/Bundle/UserBundle/Resources/views/Security/login.html.twig #}

{% extends 'RCloudUserBundle::layout.html.twig' %}

{% trans_default_domain 'FOSUserBundle' %}

{% block title %}Login{% endblock %}

{% block fos_user_content %}
    {% if error %}

{{ error|trans }}

    {% endif %}

    <form action="{{ path("fos_user_security_check") }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />

            {{ 'security.login.username'|trans }}
            <input type="text" id="username" name="_username" value="{{ last_username }}" required="required" />

            {{ 'security.login.password'|trans }}
            <input type="password" id="password" name="_password" required="required" />

            <input type="checkbox" id="remember_me" name="_remember_me" value="on" />
            {{ 'security.login.remember_me'|trans }}

            <input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" />

    </form>

        Register

{% endblock %}


{% extends admin.getTemplate('base_list_field') %}

{% block field%}

    {% if object.storeResults %}

        {% if object.results|length > 0 %}{% endif %}
            {% transchoice admin.datagrid.pager.nbresults with {'%count%': object.results|length} from 'SonataAdminBundle' %}list_results_count{% endtranschoice %}
        {% if object.results|length > 0 %}{% endif %}

    {% endif %}

{% endblock field %}

Use sonata route generator to create results route


{% extends "GameScoreBundle::layout.html.twig" %}

{% block title %}
    Joueur : [{{ player.getId() }}] - {{ parent() }}
{% endblock %}

{% block mainsection %}

 {{ player.firstname ~ ' ' ~ player.lastname }}
            {% if player.star %}
                  ★
            {% endif %}

        {% include 'GameScoreBundle:Play:totalPlayedGamesIncluded.html.twig' with {'totalPlayedGames' : totalPlayedGames } %}
        {% include 'GameScoreBundle:Play:playedGamesIncluded.html.twig' with {'plays' : plays } %}

{% endblock %}

Update : use of btn class for update in players view

{% extends "GameScoreBundle::layout.html.twig" %}

{% block title %}
    Joueur : [{{ player.getId() }}] - {{ parent() }}
{% endblock %}

{% block mainsection %}

 {{ player.firstname ~ ' ' ~ player.lastname }}
            {% if player.star %}
                  ★
            {% endif %}

                {{ 'update'|trans|capitalize }}

        {% include 'GameScoreBundle:Play:totalPlayedGamesIncluded.html.twig' with {'totalPlayedGames' : totalPlayedGames } %}
        {% include 'GameScoreBundle:Play:playedGamesIncluded.html.twig' with {'plays' : plays } %}

{% endblock %}


{% extends "SymfonyCmfCoreBundle::skeleton.html.twig" %}

{% block includes %}
    {{ parent() }}
    <link href="/bundles/sandboxmain/css/style.css" media="screen" type="text/css" rel="stylesheet" />
    {% stylesheets '@LiipVieBundle/Resources/public/hallo/Aristo/jquery-ui-1.8.7.custom.css' %}
        <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

{% block content %}
    {{ parent() }}
    <button id="savebutton">Save</button>

{% endblock %}

{% block bottom_scripts %}
    {{ parent() }}
    {% render "liip_vie.viecontroller:includeJSFilesAction" %}
{% endblock %}

Use assetic for all stylesheets

{% extends "SymfonyCmfCoreBundle::skeleton.html.twig" %}

{% block includes %}
    {{ parent() }}
    {% stylesheets  '@SandboxMainBundle/Resources/public/css/style.css'
                    '@LiipVieBundle/Resources/public/hallo/Aristo/jquery-ui-1.8.7.custom.css' %}
        <link rel="stylesheet" href="{{ asset_url }}" media="screen" type="text/css"/>
    {% endstylesheets %}
{% endblock %}

{% block content %}
    {{ parent() }}
    <button id="savebutton">Save</button>

{% endblock %}

{% block bottom_scripts %}
    {{ parent() }}
    {% render "liip_vie.viecontroller:includeJSFilesAction" %}
{% endblock %}


{{ result }}

{% if result.tags|length %}

{{ render_value(result.tags) }}

{% endif %}

{{ result.path }}

Fix tiny regression in browse template

{{ result }}

{% if result.tags|length %}

{{ render_value(result.tags) }}

{% endif %}

{{ result.fileName }}


{% if error %}

{{ error.message }}

{% endif %}

<form action="{{ path('login_check') }}" method="post">
    Username:
    <input type="text" id="username" name="_username" value="{{ last_username }}" />

    Password:
    <input type="password" id="password" name="_password" />

    <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
    {# #Redirect to admin candidacy page
        <input type="hidden" name="_target_path" value="/candidacy" />
    #}

    <button type="submit">login</button>
</form>


require({
    shim: {
        'oro/routes': {
            deps: ['routing'],
            init: function(routing) {
                {% if not app.debug %}
                    {# processed correctly only in case when routing comes via controller #}
                    {% set data = {'base_url': app.request.baseUrl, 'scheme': app.request.scheme, 'host': app.request.host } %}
                    var data = {{ data|json_encode|raw }};
                    data.routes = routing.getRoutes();
                    fos.Router.setData(data);
                {% endif %}
                return routing;
            }
        }
    },
    map: {
        '*': {
            'routing': 'oro/routes'
        },
        'oro/routes': {
            'routing': 'routing'
        }
    },
    paths: {
    {% if app.debug %}
        'oro/routes': '{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}'
    {% else %}
        'oro/routes': {{ asset('../js/routes.js', 'routing')|json_encode|raw }}
    {% endif %}
    }
});

Implement assets version for our JS files. Add assets version for JS routes

require({
    shim: {
        'oro/routes': {
            deps: ['routing'],
            init: function(routing) {
                {% if not app.debug %}
                    {# processed correctly only in case when routing comes via controller #}
                    {% set data = {'base_url': app.request.baseUrl, 'scheme': app.request.scheme, 'host': app.request.host } %}
                    var data = {{ data|json_encode|raw }};
                    data.routes = routing.getRoutes();
                    fos.Router.setData(data);
                {% endif %}
                return routing;
            }
        }
    },
    map: {
        '*': {
            'routing': 'oro/routes'
        },
        'oro/routes': {
            'routing': 'routing'
        }
    },
    paths: {
    {% if app.debug %}
        'oro/routes': '{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}'
    {% else %}
        'oro/routes': {{ asset('js/routes.js', 'routing')|json_encode|raw }}
    {% endif %}
    }
});


{% extends 'KorobiWebBundle::layout.html.twig' %}

{% set page_title = channel_name ~ " on " ~ network_name %}

{% block body %}

{{ channel_name }} on {{ network_name }}

    Command Prefix:  {{ command_prefix }}
    {% for link in links %}
        {{ link.name }}
    {% endfor %}
{% endblock %}

Add newlines to channel overview


{% set empty_cell %}
    -- {{ 'oro.entity_merge.form.empty'|trans }} --
{% endset %}

{% if convertedValue|length %}
    {{ convertedValue }}
    {{ 'oro.activitylist.merge.items.label'|transchoice(convertedValue) }}
{% else %}
    {{ empty_cell }}
{% endif %}

Append or replace activities on account merge


{% extends 'LigiBundle::layout.html.twig' %}

{% block title %}{{ entity.name }}{% endblock title %}

{% block body -%}

{{ entity.name }}

    {% if entity.files|length > 0 %}

    {% endif %}

    {{ entity.description }}

    {% trans %}Edit{% endtrans %}

{% endblock %}

Add a permission check for the button.

{% extends 'LigiBundle::layout.html.twig' %}

{% block title %}{{ entity.name }}{% endblock title %}

{% block body -%}

{{ entity.name }}

    {% if entity.files|length > 0 %}

    {% endif %}

    {{ entity.description }}

  {% if (is_granted('ROLE_USER') and (not (app.user is null)) and (app.user.username == entity.createdBy))  %}

      {% trans %}Edit{% endtrans %}

  {% endif %}

{% endblock %}


{% extends "MgateSuiviBundle::layout.html.twig" %}

{% block javascript %}
    {{ form_javascript(form) }}
{% endblock %}

{% block content_bundle %}

    <h2>{{ 'suivi.avenant_mission_ajouter'|trans }}</h2>

    {% include "MgateSuiviBundle:AvMission:formulaire.html.twig" %}

    <p>---  </p>

{% endblock %}

Add missing translation domain on AvMission/ajouter template

{% extends "MgateSuiviBundle::layout.html.twig" %}

{% block javascript %}
    {{ form_javascript(form) }}
{% endblock %}

{% block content_title %}
    {{ 'suivi.avenant_mission_ajouter' |trans({}, 'suivi') }}
{% endblock %}

{% block content_bundle %}

    {% include "MgateSuiviBundle:AvMission:formulaire.html.twig" %}

{% endblock %}


{% extends 'MunicipalesBundle:theme:layout.html.twig' %}

{% block title %}{{ 'candidate.html_title'|trans }}{% endblock %}

{% form_theme form _self %}

{% block checkbox_widget %}
{% spaceless %}
<input type="checkbox" style="width:25px" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
{% endspaceless %}
{% endblock checkbox_widget %}

{% block content %}

{{ 'candidate.h1_title'|trans }}

{{ 'candidate.final_step.end'|trans }}

{% endblock %}


{{
    form(delete_form, {
        action: delete_form.vars.action ~ '&referer=' ~ referer,
        method: 'DELETE',
        attr: { id: 'delete-form', style: 'display: none' }
    })
}}

{{ 'delete_modal.title'|trans(_trans_parameters, 'EasyAdminBundle') }}

{{ 'delete_modal.content'|trans(_trans_parameters, 'EasyAdminBundle') }}

                <button type="button" data-dismiss="modal" class="btn">
                    {{ 'action.cancel'|trans(_trans_parameters, _translation_domain) }}
                </button>

                {% if easyadmin_action_is_enabled(view, 'delete', _entity_config.name) %}
                    {% set _delete_action = easyadmin_get_action(view, 'delete', _entity_config.name) %}
                    <button type="button" data-dismiss="modal" class="btn btn-danger" id="modal-delete-button" formtarget="{{ _delete_action.target }}">
                        {% if _delete_action.icon %}{% endif %}
                        {{ 'delete_modal.action'|trans(_trans_parameters, 'EasyAdminBundle') }}
                    </button>
                {% endif %}

Fix action url for delete form

{{
    form(delete_form, {
        action: delete_form.vars.action ~ ('?' in delete_form.vars.action ? '&' : '?') ~ 'referer=' ~ referer,
        method: 'DELETE',
        attr: { id: 'delete-form', style: 'display: none' }
    })
}}

{{ 'delete_modal.title'|trans(_trans_parameters, 'EasyAdminBundle') }}

{{ 'delete_modal.content'|trans(_trans_parameters, 'EasyAdminBundle') }}

                <button type="button" data-dismiss="modal" class="btn">
                    {{ 'action.cancel'|trans(_trans_parameters, _translation_domain) }}
                </button>

                {% if easyadmin_action_is_enabled(view, 'delete', _entity_config.name) %}
                    {% set _delete_action = easyadmin_get_action(view, 'delete', _entity_config.name) %}
                    <button type="button" data-dismiss="modal" class="btn btn-danger" id="modal-delete-button" formtarget="{{ _delete_action.target }}">
                        {% if _delete_action.icon %}{% endif %}
                        {{ 'delete_modal.action'|trans(_trans_parameters, 'EasyAdminBundle') }}
                    </button>
                {% endif %}


<i class="fa fa-plus fa-2x footer-menu-toggle" aria-hidden="true"></i>

Add "options" to footer menu small screen sizes

<i class="fa fa-plus fa-2x footer-menu-toggle" aria-hidden="true"></i>Options


<form class="filter" method="get">
    <select class="form__select filter__filter-by" name="filterBy">
        {% for filter in entityConfig.listFilters %}
            <option {{ app.request.get('filterBy') == filter.field ? 'selected' }}
                    value="{{ filter.field }}">
                {{ filter.name }}
            </option>
        {% endfor %}
    </select>
    <div class="filter__options">
        {% for filter in entityConfig.listFilters %}
            {% set isCurrent = (app.request.get('filterBy') == filter.field) or
                               (app.request.get('filterBy') == '' and loop.index0 == 0) %}

            {% set currentValue = filter.field == app.request.get('filterBy') ? app.request.get('filter') : '' %}
            {{  filter.type().render(filter, currentValue, {
                    'attrs' : {
                        'class': 'form__input ' ~ (not isCurrent ? ' filter__option--hidden'),
                        'name': isCurrent ? 'filter' : ''
                    }
                }) | raw
            }}
        {% endfor %}
    </div>
    <button class="button button--secondary filter__button" type="submit">Buscar</button>
</form>

Hide filters if none found in entityConfig

{% if entityConfig.listFilters | length > 0 %}
<form class="filter" method="get">
    <select class="form__select filter__filter-by" name="filterBy">
        {% for filter in entityConfig.listFilters %}
            <option {{ app.request.get('filterBy') == filter.field ? 'selected' }}
                    value="{{ filter.field }}">
                {{ filter.name }}
            </option>
        {% endfor %}
    </select>
    <div class="filter__options">
        {% for filter in entityConfig.listFilters %}
            {% set isCurrent = (app.request.get('filterBy') == filter.field) or
                               (app.request.get('filterBy') == '' and loop.index0 == 0) %}

            {% set currentValue = filter.field == app.request.get('filterBy') ? app.request.get('filter') : '' %}
            {{  filter.type().render(filter, currentValue, {
                    'attrs' : {
                        'class': 'form__input ' ~ (not isCurrent ? ' filter__option--hidden'),
                        'name': isCurrent ? 'filter' : ''
                    }
                }) | raw
            }}
        {% endfor %}
    </div>
    <button class="button button--secondary filter__button" type="submit">Buscar</button>
</form>
{% endif %}


{% macro alert(level, message) %}
    {% if level == 'success' %}
        {% set glyph = 'ok' %}
        {% set sr = 'Success' %}
    {% else if level == 'danger' %}
        {% set glyph = 'exclamation-sign' %}
        {% set sr = 'Error' %}
    {% else if level == 'info' %}
        {% set glyph = 'info-sign' %}
        {% set sr = 'Info' %}
    {% endif %}

    {{ sr }}:
    {{ message }}

{% endmacro %}

Fix else ifs in alert

{% macro alert(level, message) %}
    {% if level == 'success' %}
        {% set glyph = 'ok' %}
        {% set sr = 'Success' %}
    {% elseif level == 'danger' %}
        {% set glyph = 'exclamation-sign' %}
        {% set sr = 'Error' %}
    {% elseif level == 'info' %}
        {% set glyph = 'info-sign' %}
        {% set sr = 'Info' %}
    {% endif %}

    {{ sr }}:
    {{ message }}

{% endmacro %}


{% trans_default_domain 'FOSUserBundle' %}

{% if error %}

{{ error.messageKey|trans(error.messageData, 'security') }}

{% endif %}

{% trans_default_domain 'FOSUserBundle' %}

{% if error %}

{{ error.messageKey|trans(error.messageData, 'security') }}

{% endif %}

<form action="{{ path("fos_user_security_check") }}" method="post">
    {% if csrf_token %}
        <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
    {% endif %}

    {{ 'security.login.username'|trans }}
    <input type="text" id="username" name="_username" value="{{ last_username }}" required="required" />

    {{ 'security.login.password'|trans }}
    <input type="password" id="password" name="_password" required="required" />

    <input type="checkbox" id="remember_me" name="_remember_me" value="on" />
    {{ 'security.login.remember_me'|trans }}

    <input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" />
</form>

Update layout for login template


{% extends 'FabfotoGalleryBundle::layout.html.twig'%}
{% import 'FabfotoGalleryBundle:Macro:link.html.twig' as helper %}
{% block title %}Fabbook-Blog{% endblock title %}
{% block classPage %}{% endblock classPage %}
{% block stylePage %}{% endblock stylePage %}
{% block content %}

{% trans %}Blog{% endtrans %}

{% trans %}about.it{% endtrans %}

{% trans %}news{% endtrans %} {% trans %}last.article{% endtrans %}

{% render 'FabfotoGalleryBundle:Default:lastContent' with { noAlbum : true }%}

{% trans %}article{% endtrans %} {% trans %}about.all{% endtrans %}

{% include "FabfotoGalleryBundle:Default:ListArticleBlog.html.twig" %}

    {{ pagerfanta(ArticlesBlogs, 'twitter_bootstrap_translated') }}

{% endblock content %}

{%block qrLink %}
{{ helper.linkNavBarQrLink(path('index_blog_mobile'), 'mobile') }}
{%endblock qrLink %}

{% block rss %}{{path('rss_blog')}}{%endblock rss%}

Change blog index to look more like the home page

{% extends 'FabfotoGalleryBundle::layout.html.twig'%}
{% import 'FabfotoGalleryBundle:Macro:link.html.twig' as helper %}
{% block title %}Fabbook-Blog{% endblock title %}
{% block classPage %}{% endblock classPage %}
{% block stylePage %}{% endblock stylePage %}
{% block content %}

{% trans %}Blog{% endtrans %}

{% trans %}about.it{% endtrans %}

{% render 'FabfotoGalleryBundle:Default:lastContent' with { noAlbum : true }%}

{% trans %}article{% endtrans %} {% trans %}about.all{% endtrans %}

{% include "FabfotoGalleryBundle:Default:ListArticleBlog.html.twig" %}

    {{ pagerfanta(ArticlesBlogs, 'twitter_bootstrap_translated') }}

{% endblock content %}

{%block qrLink %}
{{ helper.linkNavBarQrLink(path('index_blog_mobile'), 'mobile') }}
{%endblock qrLink %}

{% block rss %}{{path('rss_blog')}}{%endblock rss%}


{% block form_widget %}
{% spaceless %}
    {% if compound %}
        {{ block('form_widget_compound') }}
    {% else %}
        {{ block('form_widget') }}
    {% endif %}

{% endspaceless %}
{% endblock form_widget %}

{% block form_row %}
{% spaceless %}

        {{ form_errors(form) }}
        {{ form_widget(form) }}

{% endspaceless %}
{% endblock form_row %}

Fix the damn segfault in the form theme

{% block form_widget %}
{% spaceless %}
    {% if compound %}
        {{ block('form_widget_compound') }}
    {% else %}
        {{ block('form_widget_simple') }}
    {% endif %}

{% endspaceless %}
{% endblock form_widget %}

{% block form_row %}
{% spaceless %}

        {{ form_label(form) }}
        {{ form_errors(form) }}
        {{ form_widget(form) }}

{% endspaceless %}
{% endblock form_row %}


{% if is_granted('IS_AUTHENTICATED_FULLY') %}

Мои пряники

{{ user.gold }}

Пряники для благодарности

    Для всех: {{ user.chocolate }}

{% endif %}

Correct medals count for the 'null' value

{% if is_granted('IS_AUTHENTICATED_FULLY') %}

Мои пряники

{{ user.gold|default:0 }}

Пряники для благодарности

    Для всех: {{ user.chocolate|default:0 }}

{% endif %}


<!DOCTYPE html>

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" />

{{ order.reference }}

            {{ scellius.content }}


{% extends 'MunicipalesBundle:theme:layout.html.twig' %}

{% block title %}{{ 'consultation.step4.html_title'|trans }}{% endblock %}

{% from 'MunicipalesBundle:macros:steps.html.twig' import steps_widget %}

{% block content %}

{{ 'consultation.step1.step_h2'|trans }}

 {{ 'consultation.step1.h1_title'|trans }}

							{{ steps_widget(1) }}

{{ 'consultation.step1.p1'|trans }}

{{ 'consultation.step1.p2'|trans }}

{% endblock %}


{% if userinfo %}

            PennID:
            {{ userinfo.getPennId }}

            Pennkey:
            {{ userinfo.getPennkey }}

            Name:
            {{ userinfo.getFirstName }} {{ userinfo.getLastName }}

            Forwarding:
            {{ forwards|join('
') }}

            Account Check:

                {% for key,value in chkInfo.getData %}
                    {{ key }} = {{ value }}

                {% endfor %}

Account Logs

    {% include "GmailAccountLogBundle:Default:entries-table.html.twig" %}
{% else %}

No matching user not found

{% endif %}

Fix typo in userinfo error message

{% if userinfo %}

            PennID:
            {{ userinfo.getPennId }}

            Pennkey:
            {{ userinfo.getPennkey }}

            Name:
            {{ userinfo.getFirstName }} {{ userinfo.getLastName }}

            Forwarding:
            {{ forwards|join('
') }}

            Account Check:

                {% for key,value in chkInfo.getData %}
                    {{ key }} = {{ value }}

                {% endfor %}

Account Logs

    {% include "GmailAccountLogBundle:Default:entries-table.html.twig" %}
{% else %}

No matching user found

{% endif %}


{{ "A suivre"|t }}

                {% for activity in activities %}

                    {{ (activity.field_date.getValue()[0]['value']~'Z')|date('H:i',"Europe/Paris") }}
                    {{ activity.getTitle() }}
                    {{ activity.field_room.entity.getName() }}

                {% endfor %}

Add link on next activities

{{ "A suivre"|t }}

                {% for activity in activities %}

                    {{ (activity.field_date.getValue()[0]['value']~'Z')|date('H:i',"Europe/Paris") }}

                      {% if (activity.field_lien.getValue()) %}
                        {{ activity.getTitle() }}
                      {% else %}
                        {{ activity.getTitle() }}
                      {% endif %}

                    {{ activity.field_room.entity.getName() }}

                {% endfor %}


{% if error %}

{{ error.message }}

{% endif %}

<form action="{{ path('login_check') }}" method="post">
    Username:
    <input type="text" id="username" name="_username" value="{{ last_username }}" />

    Password:
    <input type="password" id="password" name="_password" />

    <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
    {# #Redirect to admin candidacy page
        <input type="hidden" name="_target_path" value="/candidacy" />
    #}

    <button type="submit">login</button>
</form>

Add theme layout for login

{% extends 'MunicipalesBundle:theme:layout.html.twig' %}

{% block title %}{{ 'login.html_title'|trans }}{% endblock %}

{% block content %}
	{% if error %}

{{ error.message }}

	{% endif %}

	<form action="{{ path('login_check') }}" method="post">
	    {{ 'login.username'|trans }}:
	    <input type="text" id="username" name="_username" value="{{ last_username }}" />

	    {{ 'login.password'|trans }}:
	    <input type="password" id="password" name="_password" />

	    <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
	    {# #Redirect to admin candidacy page #}
	    <input type="hidden" name="_target_path" value="/alta-candidatura-paso-6" />

	    <button type="submit">{{ 'login.access'|trans }}</button>
	</form>
{% endblock %}


        {% if project.image %}

        {% endif %}

{{ project.name }}

{{ project.tags }}

Revert "added projects thumbs dimensions and remove filter"


{% extends 'MunicipalesBundle:theme:layout.html.twig' %}

{% block title %}{{ 'candidacy.html_title'|trans }}{% endblock %}
{% block content %}

{{ error }}

{% endblock %}

Update errors messages design for missing admin id

{% extends 'MunicipalesBundle:theme:layout.html.twig' %}

{% block title %}{{ 'candidacy.html_title'|trans }}{% endblock %}
{% block content %}

			<button data-dismiss="alert" class="close" type="button">

		    </button>
		    {{ error|raw  }}

{% endblock %}


{%- block form_row -%}

            {{- form_label(form, null, { 'label_attr': {'class': 'label'}}) -}}

            {{- form_widget(form, {
                attr: {
                   'class': 'input input--full'
                }
            }) -}}

        {{- form_errors(form) -}}

{%- endblock form_row -%}

{%- block form_errors -%}
    {%- if errors|length > 0 -%}

            {%- for error in errors -%}

{{ error.message|trans }}

            {%- endfor -%}

    {%- endif -%}
{%- endblock form_errors -%}

Remove widgets duplicate in theme templates - First refactor

{% extends 'form_div_layout.html.twig' %}

{%- block form_row -%}

            {{- form_label(form, null, { 'label_attr': {'class': 'label'}}) -}}

            {{- form_widget(form, {
                attr: {
                   'class': 'input input--full'
                }
            }) -}}

        {{- form_errors(form) -}}

{%- endblock form_row -%}

{%- block form_errors -%}
    {%- if errors|length > 0 -%}

            {%- for error in errors -%}

{{ error.message|trans }}

            {%- endfor -%}

    {%- endif -%}
{%- endblock form_errors -%}


{% extends ":default:base.html.twig" %}

{% block title %}{% trans %}label.find_your_account{% endtrans %}{% endblock title %}

{% block bodyContent %}

{% trans %}label.find_your_account{% endtrans %}

        {% if isFound is not null and isFound == false %}

            {% trans %}label.sorry_we_can_not_found_your_account_with_the_given_username_or_email{% endtrans %}

        {% endif %}

        {{ form_start(form) }}
        {{ form_row(form.username) }}
        {{ form_row(form.search) }}
        {{ form_row(form.cancel) }}
        {{ form_end(form) }}

{% endblock bodyContent %}

Add rendering of global error

{% extends ":default:base.html.twig" %}

{% block title %}{% trans %}label.find_your_account{% endtrans %}{% endblock title %}

{% block bodyContent %}

{% trans %}label.find_your_account{% endtrans %}

        {% if isFound is not null and isFound == false %}

            {% trans %}label.sorry_we_can_not_found_your_account_with_the_given_username_or_email{% endtrans %}

        {% endif %}

        <form  name="oic_lost_account" method="post" action="{{ path('oicp_lost_account_search') }}" role="form">
        {{ form_row(form.username) }}
        {{ form_row(form.search) }}
        {{ form_row(form.cancel) }}
        {{ form_widget(form._token) }}
        {{ form_errors(form) }}
        </form>

{% endblock bodyContent %}


    {{ form_errors(form.email, sylius_test_form_attribute('login-errors')) }}
    {% set ajax_user_check_action_path = path('sylius_shop_ajax_user_check_action')  %}
    {{ form_row(form.email, sylius_test_form_attribute('login-email')|sylius_merge_recursive({'attr': {'data-url': ajax_user_check_action_path}})) }}

        <input type="password" placeholder="{{ 'sylius.ui.password'|trans }}" {{ sylius_test_html_attribute('password-input') }}>
        <input type="hidden" name="_csrf_shop_security_token" value="{{ csrf_token('shop_authenticate') }}">

            {{ 'sylius.ui.sign_in'|trans }}

Fix duplicated email validation errors


{% block posts %}

        {% for post in postsPage.posts %}
            {% include 'default/post.html.twig' %}
        {% endfor %}

                    {% if postsPage.currentPage > 1 %}

Previous

                    {% endif %}
                    {% set pages = postsPage.numberOfPages %}
                    {% for page in 1..pages %}

{{ page }}

                    {% endfor %}
                    {% if postsPage.currentPage < postsPage.numberOfPages %}

Next

                    {% endif %}

{% endblock %}

Hide pagination when total number of post pages is lower than 2

{% block posts %}

        {% for post in postsPage.posts %}
            {% include 'default/post.html.twig' %}
        {% endfor %}
        {% if postsPage.numberOfPages > 1 %}

                    {% if postsPage.currentPage > 1 %}

Previous

                    {% endif %}
                    {% set pages = postsPage.numberOfPages %}
                    {% for page in 1..pages %}

{{ page }}

                    {% endfor %}
                    {% if postsPage.currentPage < postsPage.numberOfPages %}

Next

                    {% endif %}

        {% endif %}

{% endblock %}


Micrometa

Liste

Add link to header's website name


{% if items|length == 0 %}
	{{ "devture_user.no_items"|trans }}
{% else %}

				{{ "devture_user.username"|trans }}
				{{ "devture_user.email"|trans }}
				{{ "devture_user.name"|trans }}

		{% for entity in items %}
			{% set link = path('devture_user.edit', {'id': entity.id}) %}

						{{ entity.username }}

						{{ entity.email }}

						{{ entity.name }}

		{% endfor %}

{% endif %}

Use Bootstrap's .btn-block, instead of our custom .display-block


{% from '@SyliusAdmin/Macro/translationForm.html.twig' import translationForm %}

{% form_theme form '@SyliusAdmin/CatalogPromotion/theme.html.twig' %}

    {{ form_errors(form) }}

            {{ form_row(form.code) }}
            {{ form_row(form.name) }}
            {{ form_row(form.channels) }}

            {{ form_row(form.rules) }}

            {{ form_row(form.actions) }}

        {{ translationForm(form.translations) }}

Add test for creation rule


{% extends "layout.html.twig" %}

{% block content %}

Book

    {% for filename, data in book %}
        {{ _self.renderFile(filename, data) }}
    {% endfor %}

Articles

    {% for filename, data in articles %}
        {{ _self.renderFile(filename, data) }}
    {% endfor %}

FAQs

    {% for filename, data in faqs %}
        {{ _self.renderFile(filename, data) }}
    {% endfor %}

API Docs

If you need to work with composer as a library you may also want to check out the API Docs

{% endblock %}

{% macro renderFile(filename, data) %}

        {{ filename }}
        {% if data.metadata.tagline is defined %}{{ data.metadata.tagline }}{% endif %}

{% endmacro %}

Add download link for the PDF

{% extends "layout.html.twig" %}

{% block content %}

Book

    {% for filename, data in book %}
        {{ _self.renderFile(filename, data) }}
    {% endfor %}

Articles

    {% for filename, data in articles %}
        {{ _self.renderFile(filename, data) }}
    {% endfor %}

FAQs

    {% for filename, data in faqs %}
        {{ _self.renderFile(filename, data) }}
    {% endfor %}

PDF Docs

The whole documentation is also available as a PDF download.

API Docs

If you need to work with composer as a library you may also want to check out the API Docs

{% endblock %}

{% macro renderFile(filename, data) %}

        {{ filename }}
        {% if data.metadata.tagline is defined %}{{ data.metadata.tagline }}{% endif %}

{% endmacro %}


{% block form %}
{{ echo_block('form') }}
<form
{{ echo_if(builder.ModelClass ~ ".id") }}
    action="{{ echo_path(bundle_name ~ "_update", "{ 'id': " ~ builder.ModelClass ~ ".id }" ) }}"
{{ echo_else() }}
    action="{{ echo_path(bundle_name ~ "_create" ) }}"
{{ echo_endif() }}
 method="post" {{ echo_twig("form_enctype(form)") }}>
    <fieldset class="form_block">
        {{ echo_twig("form_errors(form)") }}

        {% for field in display %}

                {{ echo_block("form_" ~ column.name) }}
                    {{ echo_twig("form_label(form['" ~ field ~ "'])") }}
                    {{ echo_twig("form_widget(form['" ~ field ~ "'])") }}
                    {{ echo_twig("form_errors(form['" ~ field ~ "'])") }}
                {{ echo_endblock() }}

        {% endfor %}

                 {{ echo_twig("form_rest(form)") }}
                 <input type="submit" class="submit_button" value="Save" />

    </fieldset>
</form>
{{ echo_endblock() }}
{% endblock %}

Implement the overwriting of fields

{% block form %}
{{ echo_block('form') }}
<form
{{ echo_if(builder.ModelClass ~ ".id") }}
    action="{{ echo_path(bundle_name ~ "_update", "{ 'id': " ~ builder.ModelClass ~ ".id }" ) }}"
{{ echo_else() }}
    action="{{ echo_path(bundle_name ~ "_create" ) }}"
{{ echo_endif() }}
 method="post" {{ echo_twig("form_enctype(form)") }}>
    <fieldset class="form_block">
        {{ echo_twig("form_errors(form)") }}

        {% for field in display %}

                {{ echo_block("form_" ~ field) }}
                    {{ echo_twig("form_label(form['" ~ field ~ "'])") }}
                    {{ echo_twig("form_widget(form['" ~ field ~ "'])") }}
                    {{ echo_twig("form_errors(form['" ~ field ~ "'])") }}
                {{ echo_endblock() }}

        {% endfor %}

                 {{ echo_twig("form_rest(form)") }}
                 <input type="submit" class="submit_button" value="Save" />

    </fieldset>
</form>
{{ echo_endblock() }}
{% endblock %}


{% extends "layouts/admin.twig" %}
{% block content %}

Submitted Talks

    {% include "admin/talks/_table.twig" %}
    {{ pagination|raw }}
{% endblock %}
{% block scripts %}
  {{ parent() }}

{% endblock %}

Add filters dropdown on the admin talks page

{% extends "layouts/admin.twig" %}
{% block content %}

Submitted Talks

    <form method="get" class="form-inline" role="form">

                Filter By:
                <select name="filter" class="form-control">
                    <option value="">None</option>
                    <option value="favorited"{% if filter|lower == 'favorited' %} SELECTED{% endif %}>Favorited Talks</option>
                    <option value="rated"{% if filter|lower == 'rated' %} SELECTED{% endif %}>Rated Talks</option>
                    <option value="notrated"{% if filter|lower == 'notrated' %} SELECTED{% endif %}>Not Rated Talks</option>
                    <option value="viewed"{% if filter|lower == 'viewed' %} SELECTED{% endif %}>Viewed Talks</option>
                    <option value="notviewed"{% if filter|lower == 'notviewed' %} SELECTED{% endif %}>Not Viewed Talks</option>
                </select>

            <button type="submit" class="btn btn-default">Go</button>
    </form>
    {% include "admin/talks/_table.twig" %}
    {{ pagination|raw }}
{% endblock %}
{% block scripts %}
  {{ parent() }}

{% endblock %}


Add top menu template for show pages to UiBundle

{% extends 'knp_menu.html.twig' %}

{% import '@SyliusUi/Macro/buttons.html.twig' as buttons %}

{% block root %}
    {% set id = item.extra('column_id') %}

        {{ block('items') }}

{% endblock %}

{% block items %}

        {% for item in item.children %}
            {{ block('item') }}
        {% endfor %}

{% endblock %}

{% block item %}
    {% set message = item.labelAttribute('message') %}

    {% if 'edit' == item.attribute('type') %}
        {{ buttons.edit(item.uri, message) }}
    {% elseif 'show' == item.attribute('type') %}
        {{ buttons.show(item.uri, message) }}
    {% elseif 'delete' == item.attribute('type') %}
        {{ buttons.delete(item.uri, message, true, item.attribute('resource_id')) }}
    {% else %}
        {{ block(item.attribute('type')) }}
    {% endif %}
{% endblock %}

{% block link %}
    {% set color = item.labelAttribute('color') %}

        {{ block('icon') }}
        {{ message|trans }}

{% endblock %}

{% block transition %}
    {% set color = item.labelAttribute('color') %}

    <form action="{{ item.uri }}" method="post" style="float: right;">
        <input type="hidden" name="_method" value="PUT">
        <button class="ui {% if color %}{{ color }} {% endif %}labeled icon loadable button" type="submit">
            {{ block('icon') }}
            {{ message|trans }}
        </button>
    </form>
{% endblock %}

{% block icon %}
    {% set icon = item.labelAttribute('icon') %}
    {% if icon %} {% endif %}
{% endblock %}


{% if type == 'create' %}

            {{ trans('form.returnHere') }}

                    {{ Form.checkbox('create_another', '1', false, {'id': name ~ '_return_to_form'}) }}
                    {{ trans('form.returnHereExplanation') }}

{% endif %}

{% if type == 'update' %}

            {{ trans('form.returnHere') }}

                    {{ Form.checkbox(name ~ '_return_to_edit', '1', Input.old('return_to_edit') == '1', {'id': name ~ '_return_to_edit'}) }}
                    {{ trans('form.returnHereUpdateExplanation') }}

{% endif %}

Fix name in option list.

{% if type == 'create' %}

            {{ trans('form.returnHere') }}

                    {{ Form.checkbox('create_another', '1', false, {'id': name ~ '_return_to_form'}) }}
                    {{ trans('form.returnHereExplanation') }}

{% endif %}

{% if type == 'update' %}

            {{ trans('form.returnHere') }}

                    {{ Form.checkbox('return_to_edit', '1', Input.old('return_to_edit') == '1', {'id': name ~ '_return_to_edit'}) }}
                    {{ trans('form.returnHereUpdateExplanation') }}

{% endif %}


{% extends 'base.html.twig' %}

{% block nav_title %}Admin area{% endblock %}
{% set section = 'admin' %}

{% block navbar %}
    {% include 'AdminCommonBundle:Header:navbar.html.twig' with {nav_title: block('nav_title')} %}
{% endblock %}

Include jQuery and bootstrap on admin template

{% extends 'base.html.twig' %}

{% block nav_title %}Admin area{% endblock %}
{% set section = 'admin' %}

{% block navbar %}
    {% include 'AdminCommonBundle:Header:navbar.html.twig' with {nav_title: block('nav_title')} %}
{% endblock %}

{% block javascripts %}
    <script type="text/javascript" src="{{ asset('lib/jquery/jquery.min.js') }}"></script>
    <script type="text/javascript" src="{{ asset('lib/bootstrap/dist/js/bootstrap.min.js') }}"></script>
{% endblock %}


{% for row in table.rows %}

        {% for column in row %}

                {{ column|raw }}

        {% endfor %}

{% else %}

            Keine Resultate gefunden

{% endfor %}

Add class to tr if no results are found


{% trans_default_domain 'admin' %}

{% block widget_content %}
    {{ admin_widget_actions(entity, {'view_type': 'show'}) }}

                    {% for item in view.items %}

                            {{ item.label|trans }}:
                            {{ item.content is same as(null) or item.content is sameas('') ? '-' : item.content|trans|raw }}

                    {% endfor %}

{% endblock %}

Replace deprecated "sameas" with "same as" in templates.

{% trans_default_domain 'admin' %}

{% block widget_content %}
    {{ admin_widget_actions(entity, {'view_type': 'show'}) }}

                    {% for item in view.items %}

                            {{ item.label|trans }}:
                            {{ item.content is same as(null) or item.content is same as('') ? '-' : item.content|trans|raw }}

                    {% endfor %}

{% endblock %}


    {% if count <= 0 %}

            ← Previous

    {% else %}

            ← Previous

    {% endif %}

    {% if page <= 0 %}

            Next →

    {% else %}

            Next →

    {% endif %}

Remove p param if next page will be starting index

    {% if count <= 0 %}

            ← Previous

    {% else %}

            ← Previous

    {% endif %}

    {% if page <= 0 %}

            Next →

    {% else %}

            {% if page == 1 %}
                Next →
            {% else %}
                Next →
            {% endif %}

    {% endif %}


    {{  event.getName }}

        {{ event.getStartDate|date('M d Y') }}
        {%  if event.getStartDate|date('M d Y')
        is not sameas(event.getEndDate|date('M d Y')) %}
            – {{ event.getEndDate|date('M d Y') }}
        {% endif %} at {{ event.getLocation }}

Details

Map

Comment out {{ event.getLocation }} to prevent exception being thrown on event detail page

    {{  event.getName }}

        {{ event.getStartDate|date('M d Y') }}
        {%  if event.getStartDate|date('M d Y')
        is not sameas(event.getEndDate|date('M d Y')) %}
            – {{ event.getEndDate|date('M d Y') }}
        {% endif %} at {# {{ event.getLocation }} #}

Details

Map

Schedule


{% extends '@SyliusAdmin/Email/layout.html.twig' %}

{% block subject %}
    {{ 'sylius.email.shipment_confirmation.subject'|trans({}, null, localeCode) }}
{% endblock %}

{% block content %}

            {{ 'sylius.email.shipment_confirmation.your_order_with_number'|trans({}, null, localeCode) }}
            {{ order.number }}
            {{ 'sylius.email.shipment_confirmation.has_been_sent_using'|trans({}, null, localeCode) }}
            {{ shipment.method }}.

            {{ 'sylius.email.shipment_confirmation.you_can_check_its_location'|trans({}, null, localeCode) }}
            {{ shipment.tracking }}
            {{ 'sylius.email.shipment_confirmation.tracking_code'|trans({}, null, localeCode) }}

            {{ 'sylius.email.shipment_confirmation.thank_you_for_transaction'|trans({}, null, localeCode) }}

{% endblock %}

Fix shipment confirmation email to send information about tracking only if it is provided

{% extends '@SyliusAdmin/Email/layout.html.twig' %}

{% block subject %}
    {{ 'sylius.email.shipment_confirmation.subject'|trans({}, null, localeCode) }}
{% endblock %}

{% block content %}

            {{ 'sylius.email.shipment_confirmation.your_order_with_number'|trans({}, null, localeCode) }}
            {{ order.number }}
            {{ 'sylius.email.shipment_confirmation.has_been_sent_using'|trans({}, null, localeCode) }}
            {{ shipment.method }}.

        {% if shipment.tracking is not null %}

                {{ 'sylius.email.shipment_confirmation.you_can_check_its_location'|trans({}, null, localeCode) }}
                {{ shipment.tracking }}
                {{ 'sylius.email.shipment_confirmation.tracking_code'|trans({}, null, localeCode) }}

        {% endif %}

            {{ 'sylius.email.shipment_confirmation.thank_you_for_transaction'|trans({}, null, localeCode) }}

{% endblock %}


{% extends "master.twig" %}

{% block extra_headers %}

{% endblock %}

{% block main_content %}

                We have had some great speakers from all over the country come and talk to us, and we have more great talks lined up.

Past Talks

        {% for year, years in talks %}
            {% for month, talks in years %}
                {% for key, talk in talks %}

                        {% if talk.avatar %}

                        {% endif %}

{{ talk.title }}

{{ talk.speaker }} - {{ month|capitalize }}, {{ year|capitalize }}

                        {% if talks|length > 1 %}

                                  View this talk

                        {% else %}

                                  View this talk

                        {% endif %}

                {% endfor %}
            {% endfor %}
        {% endfor %}

{% endblock %}

Remove 'Past' from Talks page title

{% extends "master.twig" %}

{% block extra_headers %}

{% endblock %}

{% block main_content %}

                We have had some great speakers from all over the country come and talk to us, and we have more great talks lined up.

Talks

        {% for year, years in talks %}
            {% for month, talks in years %}
                {% for key, talk in talks %}

                        {% if talk.avatar %}

                        {% endif %}

{{ talk.title }}

{{ talk.speaker }} - {{ month|capitalize }}, {{ year|capitalize }}

                        {% if talks|length > 1 %}

                                  View this talk

                        {% else %}

                                  View this talk

                        {% endif %}

                {% endfor %}
            {% endfor %}
        {% endfor %}

{% endblock %}


            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                Toggle navigation

            </button>
            Intranet

Connection

S'enregistrer

Formation

Cursus

Matière

Add user list in navigation

            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                Toggle navigation

            </button>
            Intranet

Connection

S'enregistrer

Formation

Cursus

Matière

Utilisateurs


Copyright © 2007-2018

                     SimpleSAMLphp

Replace footer Github link with link to simplesamlphp.org

Copyright © 2007-2018
                    SimpleSAMLphp


/**
     * Get {{ propertyInDescription }}
     *
     * If no "{{ propertyInDescription }}" value has been set, this method will
     * set and return a default "{{ propertyInDescription }}" value,
     * if any such value is available
     *
     * @see getDefault{{ propertyName }}()
     *
     * @return {{ dataType }}|null "{{ propertyInDescription }}" value or null if no "{{ propertyInDescription }}" value has been set
     */


<!DOCTYPE html>
<html lang="{{ locale }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="description" content="Coin !">

    <title>Nathan Boiron</title>

    <link rel="icon" href="/favicon.ico">

    <link rel="stylesheet" href="/css/style.css">
</head>

{% block body %}{% endblock %}

{% block js %}{% endblock %}

<script type="text/javascript">
    (function () {
        if (localStorage.theme === 'dark' || (!'theme' in localStorage && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
            document.querySelector('html').classList.add('dark');
        } else if (localStorage.theme === 'dark') {
            document.querySelector('html').classList.add('dark');
        }
    })();
</script>
</html>

Fix native dark mode detection

<!DOCTYPE html>
<html lang="{{ locale }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="description" content="Coin !">

    <title>Nathan Boiron</title>

    <link rel="icon" href="/favicon.ico">

    <link rel="stylesheet" href="/css/style.css">
</head>

{% block body %}{% endblock %}

{% block js %}{% endblock %}

<script type="text/javascript">
    (function () {
        if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
            document.querySelector('html').classList.add('dark');
        } else {
            document.querySelector('html').classList.remove('dark');
        }
    })();
</script>
</html>


{% extends '../CommonAdmin/EditAction/EditBuilderAction.php.twig' %}

{% block orm_use %}
use \PropelException;
{% endblock %}

{% block getObject -%}
    protected function getObject($pk, $version = null)
    {
        return \{{ model }}Query::create()->findPk($pk);
    }
{% endblock %}

{% block saveObject -%}
    protected function saveObject(\{{ model }} ${{ builder.ModelClass }})
    {
        ${{ builder.ModelClass }}->save();
    }
{% endblock %}

{% block checkObjectLock -%}
{% if lock_mode is not null -%}
    $versions = $this->get('session')->get('{{ namespace_prefix }}\{{ bundle_name }}\{{ builder.BaseGeneratorName }}Edit\Versions', array());
    /* TODO: I could not find a propel equivalent of Doctrine's lock */
    if ($object->getCurrentVersion !== $versions[$pk]) {
        throw new PropelException();
    }
{%- endif %}
{% endblock %}

{% block lockException %}PropelException{% endblock %}

Add message to propel exception

{% extends '../CommonAdmin/EditAction/EditBuilderAction.php.twig' %}

{% block orm_use %}
use \PropelException;
{% endblock %}

{% block getObject -%}
    protected function getObject($pk, $version = null)
    {
        return \{{ model }}Query::create()->findPk($pk);
    }
{% endblock %}

{% block saveObject -%}
    protected function saveObject(\{{ model }} ${{ builder.ModelClass }})
    {
        ${{ builder.ModelClass }}->save();
    }
{% endblock %}

{% block checkObjectLock -%}
{% if lock_mode is not null -%}
    $versions = $this->get('session')->get('{{ namespace_prefix }}\{{ bundle_name }}\{{ builder.BaseGeneratorName }}Edit\Versions', array());

    /* TODO: Propel has no locking mechanism so we'll implement a simple check */
    if ($object->getCurrentVersion !== $versions[$pk]) {
        throw new PropelException('Cannot write to outdated object version.');
    }
{%- endif %}
{% endblock %}

{% block lockException %}PropelException{% endblock %}


<script type="text/javascript">

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', '{{ webproperty }}']);
    _gaq.push(['_setDomainName', '{{ domainname }}']);
    {% if anonymize_ip is true %}
    _gaq.push (['_gat._anonymizeIp']);
    {% endif %}
    _gaq.push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();

</script>

Fix bug in if statement

<script type="text/javascript">

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', '{{ webproperty }}']);
    _gaq.push(['_setDomainName', '{{ domainname }}']);
    {% if anonymize_ip %}
    _gaq.push (['_gat._anonymizeIp']);
    {% endif %}
    _gaq.push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();

</script>


{% extends '@app/index.html.twig' %}

{% block content %}

                <button class="btn btn-lg btn-info center-block">Open Sesame</button>

{% endblock %}

{% block js %}

{% endblock %}

Add popup instructions to expand view

{% extends '@app/index.html.twig' %}

{% block content %}

Please add [*.]manylinks.online to your browser's Popup Whitelist

Instructions for: Chrome

                <button class="btn btn-lg btn-info center-block">Open Sesame</button>

{% endblock %}

{% block js %}

{% endblock %}


{% if not post.tags.empty %}

        {% for tag in post.tags %}

                 {{ tag.name }}

        {% endfor %}

{% endif %}

Reset tag filter if it's link was clicked again


{% set pagetitle = '{core:frontpage:page_title}'|trans %}
{% set frontpage_section = 'config' %}
{% extends "base.twig" %}

{% block content %}
    {% include "@core/_frontpage_menu.twig" %}

        {{ directory }} ({{ version }})

    {% set icon_enabled = '' %}
    {% set icon_disabled = '' %}

                SAML 2.0 IdP
                {%- if enablematrix.saml20idp %}{{ icon_enabled|raw }}{% else %}{{ icon_disabled|raw }}{% endif -%}

                Shib 1.3 IdP
                {%- if enablematrix.shib13idp %}{{ icon_enabled|raw }}{% else %}{{ icon_disabled|raw }}{% endif -%}

{{ '{core:frontpage:configuration}'|trans }}

        {% for key, link in links_config %}

{{ link.text|trans|escape('html') }}

        {% endfor %}

    {% if warnings is defined and warnings is not empty %}

{{ '{core:frontpage:warnings}'|trans|escape('html') }}

    {% for key, warning in warnings %}

{{ warning|raw }}

    {% endfor %}
    {% endif %}

    {% if isadmin %}

{{ '{core:frontpage:checkphp}'|trans }}

        {% for key, func in funcmatrix %}

                {%- if func.enabled %}{{ icon_enabled|raw }}{% else %}{{ icon_disabled|raw }}{% endif -%}
                {{ requiredmap[func.required]|trans }}
                {{ func.descr }}

        {% endfor %}

    {% endif %}
{% endblock %}


<script src='http://{{ serverIp }}:{{ socketIoPort }}/socket.io/socket.io.js'></script>
<script src='http://{{ serverIp }}:{{ serverPort }}/browser-sync-client.min.js'></script>

Update connection scripts for latets version of Grunt-Browser-Sync 0.5.3.

<script src='//{{ serverIp }}:{{ socketIoPort }}/socket.io/socket.io.js'></script>
<script>var ___socket___ = io.connect('http://{{ serverIp }}:{{ socketIoPort }}');</script>
<script src='//{{ serverIp }}:{{ serverPort }}/client/browser-sync-client.min.js'></script>


{% if error %}

{{ error.message }}

{% endif %}

<form action="{{ path('login_check') }}" method="post">
    Vartotojo vardas:
    <input type="text" id="username" name="_username" value="{{ last_username }}" />

    Slaptažodis:
    <input type="password" id="password" name="_password" />

    <button type="submit">Prisijungti</button>
</form>

Extend the base template for login form

{% extends "::base.html.twig" %}

{% block all_content %}

{% if error %}

{{ error.message }}

{% endif %}

<form action="{{ path('login_check') }}" method="post">
    Vartotojo vardas:
    <input type="text" id="username" name="_username" value="{{ last_username }}" />

    Slaptažodis:
    <input type="password" id="password" name="_password" />

    <button type="submit">Prisijungti</button>
</form>

{% endblock %}


{% if class_name is defined %}
{{ module }}.{{ class_machine_name }}_{{ method_name }}:
  path: '{{ route }}'
  defaults:
    _content: '\Drupal\{{ module }}\Controller\{{ class_name }}::{{ method_name }}'
    _title: '{{module}} Title'
  requirements:
    _permission: 'access content'
{% endif %}

Replace keyword _content with _controller

{% if class_name is defined %}
{{ module }}.{{ class_machine_name }}_{{ method_name }}:
  path: '{{ route }}'
  defaults:
    _controller: '\Drupal\{{ module }}\Controller\{{ class_name }}::{{ method_name }}'
    _title: '{{module}} Title'
  requirements:
    _permission: 'access content'
{% endif %}


{% extends "SymfonyCmfCoreBundle::skeleton.html.twig" %}

{% block includes %}
    {{ parent() }}
    <link href="/bundles/sandboxmain/css/style.css" media="screen" type="text/css" rel="stylesheet" />
{% endblock %}

{% block content %}
    {{ parent() }}
    <button id="savebutton">Save</button>

{% endblock %}

{% block bottom_scripts %}
    {{ parent() }}
    {% render "LiipVieBundle:Vie:includeJSFiles" %}
{% endblock %}

Add CSS file for Hallo editor

{% extends "SymfonyCmfCoreBundle::skeleton.html.twig" %}

{% block includes %}
    {{ parent() }}
    <link href="/bundles/sandboxmain/css/style.css" media="screen" type="text/css" rel="stylesheet" />
    {% stylesheets '@LiipVieBundle/Resources/public/hallo/Aristo/jquery-ui-1.8.7.custom.css' %}
        <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

{% block content %}
    {{ parent() }}
    <button id="savebutton">Save</button>

{% endblock %}

{% block bottom_scripts %}
    {{ parent() }}
    {% render "LiipVieBundle:Vie:includeJSFiles" %}
{% endblock %}


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>

Add Twitter Bootstrap and Font Awesome to base twig template

<!DOCTYPE html>
<html lang="{{ app.request.locale }}">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>{% block title %}You can't catch me. I'm the Gingerbread Man!{% endblock %}</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">
        <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
        <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
    </head>
    <body>
        <div class="container">
        {% block body %}
        {% endblock %}
        </div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
        {% block javascripts %}{% endblock %}
    </body>
</html>


{% extends 'layout.twig' %}

{% block main %}

Błąd {{ error }}

{% endblock %}

Add link on xkcd comic pointing to their site


{% if value and value.motivation is not null %}

{{ label }}

    {% if informationPopup is defined %}

    {% endif %}

    {% if value.motivation is not empty %}
    {{ 'entity.detail.attribute.motivation'|trans }}
    {{ value.motivation }}
    {% else %}
    {{ 'entity.detail.attribute.no_motivation_set'|trans }}
    {% endif %}

{% endif %}

Remove motivation placeholder from view entity page

{% if value and value.motivation is not null %}

{{ label }}

    {% if informationPopup is defined %}

    {% endif %}

    {% if value.motivation is not empty %}
    {{ value.motivation }}
    {% else %}
    {{ 'entity.detail.attribute.no_motivation_set'|trans }}
    {% endif %}

{% endif %}


{##
 # This file is part of CSBill package.
 #
 # (c) 2013-2014 Pierre du Plessis <info@customscripts.co.za>
 #
 # This source file is subject to the MIT license that is bundled
 # with this source code in the file LICENSE.
 #}

{% extends "CSBillCoreBundle:Layout:one_column_left.html.twig" %}

{% set title = "app_installation"|trans({"%app_name%" : app_name}) %}

{% block header %}
	{% include "CSBillCoreBundle:Menu:top.html.twig" with {"title" : title|trans} %}
{% endblock header %}

{% block title %}
	{{ title }}
{% endblock title %}

{% block script %}

{% endblock %}

{% block sidebar %}

            {{ "installation_progess"|trans }}

        {% set link = true %}
        {% for index, step in installer.steps %}
            {% set class = not installer.stepComplete(index) ? 'disabled' %}
            {% if installer.currentStep.label is sameas(step.label) %}
                {% set link = false %}
                {% set class = 'active' %}
            {% endif %}

                {{ step.label|trans }}

        {% endfor %}

{% endblock sidebar %}

Fix endless loop rendering template on installation process

{##
 # This file is part of CSBill package.
 #
 # (c) 2013-2014 Pierre du Plessis <info@customscripts.co.za>
 #
 # This source file is subject to the MIT license that is bundled
 # with this source code in the file LICENSE.
 #}

{% extends "CSBillCoreBundle:Layout:one_column_left.html.twig" %}

{% set title = "app_installation"|trans({"%app_name%" : app_name}) %}

{% block header %}
	{% include "CSBillCoreBundle:Menu:top.html.twig" with {"title" : title|trans} %}
{% endblock header %}

{% block title %}
	{{ title }}
{% endblock title %}

{% block sidebar %}

            {{ "installation_progess"|trans }}

        {% set link = true %}
        {% for index, step in installer.steps %}
            {% set class = not installer.stepComplete(index) ? 'disabled' %}
            {% if installer.currentStep.label is sameas(step.label) %}
                {% set link = false %}
                {% set class = 'active' %}
            {% endif %}

                {{ step.label|trans }}

        {% endfor %}

{% endblock sidebar %}


{% block sidus_link_widget %}
    {% spaceless %}
        {% if label is empty %}
            {%- if label_format is defined and label_format is not empty -%}
                {% set label = label_format|replace({
                '%name%': name,
                '%id%': id,
                }) %}
            {%- else -%}
                {% set label = name|humanize %}
            {%- endif -%}
        {% endif %}
        {% if not uri %}
            {% set uri = path(route, route_parameters) %}
        {% endif %}

            {% if icon is not empty %}

            {% endif %}
            {{ label|trans({}, translation_domain) }}

    {% endspaceless %}
{% endblock %}

{% block sidus_link_row %}
    {{ block('sidus_link_widget') }}
{% endblock %}

Update template inheritance to simplify config

{% extends 'SidusFilterBundle:Form:fields.html.twig' %}

{% block sidus_link_widget %}
    {% spaceless %}
        {% if label is empty %}
            {%- if label_format is defined and label_format is not empty -%}
                {% set label = label_format|replace({
                '%name%': name,
                '%id%': id,
                }) %}
            {%- else -%}
                {% set label = name|humanize %}
            {%- endif -%}
        {% endif %}
        {% if not uri %}
            {% set uri = path(route, route_parameters) %}
        {% endif %}

            {% if icon is not empty %}

            {% endif %}
            {{ label|trans({}, translation_domain) }}

    {% endspaceless %}
{% endblock %}

{% block sidus_link_row %}
    {{ block('sidus_link_widget') }}
{% endblock %}


<input type="hidden" name="{{ name }}">

		{% for video in videos %}

				<input
					name="{{ name }}[]"
					type="hidden"
					value="{{ video.hashed_id }}"
				>

					{{ video.name }}

		{% endfor %}

= settings.max %} disabled{% endif %}"
		{% if settings.max == "1" and videos|length %}
			style="display: none"
		{% endif %}
	>
		{{ "Add a video"|t }}

{% set jsSettings = {
	id: id|namespaceInputId,
	limit: settings.max,
	name: name|namespaceInputName,
	projectIds: settings.projects|join(",")
} %}

{% includejs %}
	new Wistia.VideoSelectInput({{ jsSettings|json_encode|raw }});
{% endincludejs %}

Revert "Convert single quotes to double"

<input type="hidden" name="{{ name }}">

		{% for video in videos %}

				<input
					name="{{ name }}[]"
					type="hidden"
					value="{{ video.hashed_id }}"
				>

					{{ video.name }}

		{% endfor %}

= settings.max %} disabled{% endif %}"
		{% if settings.max == '1' and videos|length %}
			style="display: none"
		{% endif %}
	>
		{{ 'Add a video'|t }}

{% set jsSettings = {
	id: id|namespaceInputId,
	limit: settings.max,
	name: name|namespaceInputName,
	projectIds: settings.projects|join(',')
} %}

{% includejs %}
	new Wistia.VideoSelectInput({{ jsSettings|json_encode|raw }});
{% endincludejs %}


{% extends 'layout.html.twig' %}

{% block headerLinks %}
    {{ parent() }}

    <link type="text/css" media="all" rel="stylesheet"
          href="/resources/parsingphase/blog/blog.css"/>
{% endblock %}

{% block sidebar %}
    {{ parent() }}

Blog index

Blog archive

        {% if is_granted('ROLE_ADMIN') %}

New post

        {% endif %}

{% endblock %}

Move blog navigation to top of sidebar

{% extends 'layout.html.twig' %}

{% block headerLinks %}
    {{ parent() }}

    <link type="text/css" media="all" rel="stylesheet"
          href="/resources/parsingphase/blog/blog.css"/>
{% endblock %}

{% block sidebar %}

Blog index

Blog archive

        {% if is_granted('ROLE_ADMIN') %}

New post

        {% endif %}

    {{ parent() }}
{% endblock %}