Skip to content

Instantly share code, notes, and snippets.

@tyler-sommer
Created March 21, 2013 23:05

Revisions

  1. tyler-sommer created this gist Mar 21, 2013.
    15 changes: 15 additions & 0 deletions _area_subnav.html.twig
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    {% block subnav %}

    {# This is how you declare a menu #}

    {% include '::subnav.html.twig' with { pages: [
    { name: 'Manage', dropdown: [
    { route: 'customers', name: 'Customers' },
    { route: 'orders', name: 'Orders' },
    { route: 'chargebacks', name:'Chargebacks', role: 'ROLE_ADMIN' }
    ] },
    { route: 'settings', name: 'Settings' },
    { route: 'sales_report', name: 'Sales Report', role: 'ROLE_ADMIN' },
    { route: 'today_report', name: 'Today Report', params: { date: 'today' }, role: 'ROLE_ADMIN' }
    ] } %}
    {% endblock %}
    36 changes: 36 additions & 0 deletions subnav.html.twig
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    <ul class="nav nav-pills {{ class|default }}">
    {% for route,name in pages|default([]) %}
    {% if name|keys|length > 0 %}
    {% set route = name.route|default %}
    {% set params = name.params|default({}) %}
    {% set role = name.role|default %}
    {% set class = name.class|default %}
    {% set anchor_class = name.anchor_class|default %}
    {% set dropdown = name.dropdown|default %}
    {% set name = name.name %}
    {% endif %}
    {% if dropdown|default %}
    {% set anchor_class = anchor_class|default ~ ' dropdown-toggle' %}
    {% endif %}
    {% if not role|default or is_granted(role) %}
    {% set class = (is_current_route(route) ? ' active' : '') %}
    <li class="{{ class }}">
    <a class="{{ anchor_class|default }}"
    {% if dropdown|default %}
    data-toggle="dropdown"
    href="#"
    {% else %}
    href="{{ path(route, params|default([])) }}"
    {% endif %}
    {# I'm so ashamed. Next to this is the end of the opening 'a' tag #}>

    {{ name }}
    {% if dropdown|default %}
    <i class="caret"></i>
    {% endif %}
    </a>
    {% if dropdown|default %}{% include '::subnav_dropdown.html.twig' with { dropdown: dropdown } %}{% endif %}
    </li>
    {% endif %}
    {% endfor %}
    </ul>
    16 changes: 16 additions & 0 deletions subnav_dropdown.html.twig
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    <ul class="dropdown-menu">
    {% for route,name in dropdown|default([]) %}
    {% if name|keys|length > 0 %}
    {% set route = name.route %}
    {% set params = name.params|default({}) %}
    {% set role = name.role|default %}
    {% set class = name.class|default %}
    {% set anchor_class = name.anchor_class|default %}
    {% set name = name.name %}
    {% endif %}
    {% if not role|default() or is_granted(role) %}
    {% set class = (is_current_route(route) ? ' active' : '') %}
    <li class="{{ class }}"><a href="{{ path(route, params|default([])) }}" class="{{ anchor_class|default }}">{{ name }}</a></li>
    {% endif %}
    {% endfor %}
    </ul>