Default theme implementation to display a node.
Available variables:
The following are controlled through the node publishing options.
Other variables:
Node status variables:
Field variables: for each field instance attached to the node a corresponding variable is defined; for example, $node->body becomes body. When needing to access a field's raw values, developers/themers are strongly encouraged to use these variables. Otherwise they will have to explicitly specify the desired field language; for example, $node->body['en'], thus overriding any language negotiation rule that was previously applied.
- {#
- /**
- * @file
- * Default theme implementation to display a node.
- *
- * Available variables:
- * - label: the title of the node.
- * - content: node items. Use {{ content }} to print them all,
- * or print a subset such as {{ content.field_example }}. Use
- * {% hide(content.field_example) %} to temporarily suppress the printing
- * of a given element.
- * - user_picture: The node author's picture from user-picture.twig.
- * - date: Formatted creation date. Preprocess functions can reformat it by
- * calling format_date() with the desired parameters on
- * $variables['created'].
- * - name: Themed username of node author output from theme_username().
- * - node_url: Direct URL of the current node.
- * - display_submitted: Whether submission information should be displayed.
- * - submitted: Submission information created from name and date during
- * template_preprocess_node().
- * - attributes: HTML attributes for the surrounding element.
- * Attributes include the 'class' information, which contains:
- * - node: The current template type; for example, "theming hook".
- * - node-[type]: The current node type. For example, if the node is a
- * "Article" it would result in "node-article". Note that the machine
- * name will often be in a short form of the human readable label.
- * - view-mode-[view_mode]: The View Mode of the node; for example, "teaser"
- * or "full".
- * - preview: Nodes in preview mode.
- * The following are controlled through the node publishing options.
- * - promoted: Nodes promoted to the front page.
- * - sticky: Nodes ordered above other non-sticky nodes in teaser
- * listings.
- * - unpublished: Unpublished nodes visible only to administrators.
- * - title_prefix: Additional output populated by modules, intended to be
- * displayed in front of the main title tag that appears in the template.
- * - title_suffix: Additional output populated by modules, intended to be
- * displayed after the main title tag that appears in the template.
- *
- * Other variables:
- * - node: Fully loaded node entity.
- * - type: Node type; for example, page, article, etc.
- * - comment_count: Number of comments attached to the node.
- * - uid: User ID of the node author.
- * - created: Time the node was published formatted as a Unix timestamp.
- * - zebra: Outputs either "even" or "odd". Useful for zebra striping in
- * teaser listings.
- * - id: Position of the node. Increments each time it's output.
- *
- * Node status variables:
- * - view_mode: View mode; for example, "teaser" or "full".
- * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
- * - page: Flag for the full page state. Will be true if view_mode is 'full'.
- * - promote: Flag for front page promotion state.
- * - sticky: Flag for sticky post setting.
- * - status: Flag for published status.
- * - comment: State of comment settings for the node.
- * - readmore: Flag for more state. Will be true if the teaser content of the
- * node cannot hold the main body content.
- * - is_front: Flag for front. Will be true when presented on the front page.
- * - logged_in: Flag for authenticated user status. Will be true when the
- * current user is a logged-in member.
- * - is_admin: Flag for admin user status. Will be true when the current user
- * is an administrator.
- *
- * Field variables: for each field instance attached to the node a corresponding
- * variable is defined; for example, $node->body becomes body. When needing to
- * access a field's raw values, developers/themers are strongly encouraged to
- * use these variables. Otherwise they will have to explicitly specify the
- * desired field language; for example, $node->body['en'], thus overriding any
- * language negotiation rule that was previously applied.
- *
- * @see template_preprocess()
- * @see template_preprocess_node()
- *
- * @ingroup themeable
- */
- #}
- <article id="node-{{ node.nid }}" class="{{ attributes.class }} clearfix"{{ attributes }}>
-
- {{ title_prefix }}
- {% if not page %}
- <h2{{ title_attributes }}>
- <a href="{{ node_url }}" rel="bookmark">{{ label }}</a>
- </h2>
- {% endif %}
- {{ title_suffix }}
-
- {% if display_submitted %}
- <footer>
- {{ user_picture }}
- <p class="submitted">{{ submitted }}</p>
- </footer>
- {% endif %}
-
- <div class="content"{{ content_attributes }}>
- {# We hide the comments and links now so that we can render them later. #}
- {% hide(content.comments) %}
- {% hide(content.links) %}
- {{ content }}
- </div>
-
- {{ content.links }}
- {{ content.comments }}
-
- </article>