b39e178ffe62961fbe7f682a6240d66eb6b5c8f3
[yaffs-website] / templates / node / node.html.twig
1 {#
2 /**
3  * @file
4  * Theme override to display a node.
5  *
6  * Available variables:
7  * - node: The node entity with limited access to object properties and methods.
8      Only "getter" methods (method names starting with "get", "has", or "is")
9      and a few common methods such as "id" and "label" are available. Calling
10      other methods (such as node.delete) will result in an exception.
11  * - label: The title of the node.
12  * - content: All node items. Use {{ content }} to print them all,
13  *   or print a subset such as {{ content.field_example }}. Use
14  *   {{ content|without('field_example') }} to temporarily suppress the printing
15  *   of a given child element.
16  * - author_picture: The node author user entity, rendered using the "compact"
17  *   view mode.
18  * - metadata: Metadata for this node.
19  * - date: Themed creation date field.
20  * - author_name: Themed author name field.
21  * - url: Direct URL of the current node.
22  * - display_submitted: Whether submission information should be displayed.
23  * - attributes: HTML attributes for the containing element.
24  *   The attributes.class element may contain one or more of the following
25  *   classes:
26  *   - node: The current template type (also known as a "theming hook").
27  *   - node--type-[type]: The current node type. For example, if the node is an
28  *     "Article" it would result in "node--type-article". Note that the machine
29  *     name will often be in a short form of the human readable label.
30  *   - node--view-mode-[view_mode]: The View Mode of the node; for example, a
31  *     teaser would result in: "node--view-mode-teaser", and
32  *     full: "node--view-mode-full".
33  *   The following are controlled through the node publishing options.
34  *   - node--promoted: Appears on nodes promoted to the front page.
35  *   - node--sticky: Appears on nodes ordered above other non-sticky nodes in
36  *     teaser listings.
37  *   - node--unpublished: Appears on unpublished nodes visible only to site
38  *     admins.
39  * - title_attributes: Same as attributes, except applied to the main title
40  *   tag that appears in the template.
41  * - content_attributes: Same as attributes, except applied to the main
42  *   content tag that appears in the template.
43  * - author_attributes: Same as attributes, except applied to the author of
44  *   the node tag that appears in the template.
45  * - title_prefix: Additional output populated by modules, intended to be
46  *   displayed in front of the main title tag that appears in the template.
47  * - title_suffix: Additional output populated by modules, intended to be
48  *   displayed after the main title tag that appears in the template.
49  * - view_mode: View mode; for example, "teaser" or "full".
50  * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
51  * - page: Flag for the full page state. Will be true if view_mode is 'full'.
52  * - readmore: Flag for more state. Will be true if the teaser content of the
53  *   node cannot hold the main body content.
54  * - logged_in: Flag for authenticated user status. Will be true when the
55  *   current user is a logged-in member.
56  * - is_admin: Flag for admin user status. Will be true when the current user
57  *   is an administrator.
58  *
59  * @ingroup templates
60  *
61  * @see template_preprocess_node()
62  *
63  * @todo Remove the id attribute (or make it a class), because if that gets
64  *   rendered twice on a page this is invalid CSS for example: two lists
65  *   in different view modes.
66  */
67 #}
68 {%
69   set classes = [
70     node.bundle|clean_class,
71     node.isPromoted() ? 'is-promoted',
72     node.isSticky() ? 'is-sticky',
73     not node.isPublished() ? 'is-unpublished',
74     view_mode ? view_mode|clean_class,
75     'clearfix',
76   ]
77 %}
78 <article{{ attributes.addClass(classes) }}>
79
80   {{ title_prefix }}
81   {% if not page %}
82     <h2{{ title_attributes }}>
83       <a href="{{ url }}" rel="bookmark">{{ label }}</a>
84     </h2>
85   {% endif %}
86   {{ title_suffix }}
87
88   {% if display_submitted %}
89     <footer>
90       {{ author_picture }}
91       <div{{ author_attributes.addClass('author') }}>
92         {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
93         {{ metadata }}
94       </div>
95     </footer>
96   {% endif %}
97
98   <div{{ content_attributes.addClass('content') }}>
99     {{ content }}
100   </div>
101
102 </article>