4 * Default theme implementation to display a single page.
6 * The doctype, html, head and body tags are not in this template. Instead they
7 * can be found in the html.html.twig template in this directory.
11 * General utility variables:
12 * - base_path: The base URL path of the Drupal installation. Will usually be
13 * "/" unless you have installed Drupal in a sub-directory.
14 * - is_front: A flag indicating if the current page is the front page.
15 * - logged_in: A flag indicating if the user is registered and signed in.
16 * - is_admin: A flag indicating if the user has permission to access
17 * administration pages.
20 * - front_page: The URL of the front page. Use this instead of base_path when
21 * linking to the front page. This includes the language domain or prefix.
23 * Page content (in order of occurrence in the default page.html.twig):
24 * - title_prefix: Additional output populated by modules, intended to be
25 * displayed in front of the main title tag that appears in the template.
26 * - title: The page title, for use in the actual content.
27 * - title_suffix: Additional output populated by modules, intended to be
28 * displayed after the main title tag that appears in the template.
29 * - messages: Status and error messages. Should be displayed prominently.
30 * - tabs: Tabs linking to any sub-pages beneath the current page (e.g., the
31 * view and edit tabs when displaying a node).
32 * - node: Fully loaded node, if there is an automatically-loaded node
33 * associated with the page and the node ID is the second argument in the
34 * page's path (e.g. node/12345 and node/12345/revisions, but not
35 * comment/reply/12345).
38 * - page.header: Items for the header region.
39 * - page.navigation: Items for the navigation region.
40 * - page.navigation_collapsible: Items for the navigation (collapsible) region.
41 * - page.highlighted: Items for the highlighted content region.
42 * - page.help: Dynamic help text, mostly for admin pages.
43 * - page.content: The main content of the current page.
44 * - page.sidebar_first: Items for the first sidebar.
45 * - page.sidebar_second: Items for the second sidebar.
46 * - page.footer: Items for the footer region.
50 * @see template_preprocess_page()
54 {% set container = theme.settings.fluid_container ? 'container-fluid' : 'container' %}
56 {% if page.navigation or page.navigation_collapsible %}
59 set navbar_classes = [
61 theme.settings.navbar_inverse ? 'navbar-inverse' : 'navbar-default',
62 theme.settings.navbar_position ? 'navbar-' ~ theme.settings.navbar_position|clean_class : container,
65 <header{{ navbar_attributes.addClass(navbar_classes) }} id="navbar" role="banner">
66 {% if not navbar_attributes.hasClass(container) %}
67 <div class="{{ container }}">
69 <div class="navbar-header">
71 {# .btn-navbar is used as the toggle for collapsed navbar content #}
72 {% if page.navigation_collapsible %}
73 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
74 <span class="sr-only">{{ 'Toggle navigation'|t }}</span>
75 <span class="icon-bar"></span>
76 <span class="icon-bar"></span>
77 <span class="icon-bar"></span>
82 {# Navigation (collapsible) #}
83 {% if page.navigation_collapsible %}
84 <div id="navbar-collapse" class="navbar-collapse collapse">
85 {{ page.navigation_collapsible }}
88 {% if not navbar_attributes.hasClass(container) %}
97 <div role="main" class="main-container {{ container }} js-quickedit-main-content">
103 <div class="col-sm-12" role="heading">
110 {% if page.sidebar_first %}
111 {% block sidebar_first %}
112 <aside class="col-sm-3" role="complementary">
113 {{ page.sidebar_first }}
120 set content_classes = [
121 page.sidebar_first and page.sidebar_second ? 'col-sm-6',
122 page.sidebar_first and page.sidebar_second is empty ? 'col-sm-9',
123 page.sidebar_second and page.sidebar_first is empty ? 'col-sm-9',
124 page.sidebar_first is empty and page.sidebar_second is empty ? 'col-sm-12'
127 <section{{ content_attributes.addClass(content_classes) }}>
130 {% if page.highlighted %}
131 {% block highlighted %}
132 <div class="highlighted">{{ page.highlighted }}</div>
145 <a id="main-content"></a>
151 {% if page.sidebar_second %}
152 {% block sidebar_second %}
153 <aside class="col-sm-3" role="complementary">
154 {{ page.sidebar_second }}
164 <footer class="footer {{ container }}" role="contentinfo">