node--teaser.html.twig in Open Social 8.8
Same filename and directory in other branches
- 8.9 themes/socialbase/templates/node/node--teaser.html.twig
- 8 themes/socialbase/templates/node/node--teaser.html.twig
- 8.2 themes/socialbase/templates/node/node--teaser.html.twig
- 8.3 themes/socialbase/templates/node/node--teaser.html.twig
- 8.4 themes/socialbase/templates/node/node--teaser.html.twig
- 8.5 themes/socialbase/templates/node/node--teaser.html.twig
- 8.6 themes/socialbase/templates/node/node--teaser.html.twig
- 8.7 themes/socialbase/templates/node/node--teaser.html.twig
Default theme implementation to display a node.
Available variables:
- node: The node entity with limited access to object properties and methods. Only "getter" methods (method names starting with "get", "has", or "is") and a few common methods such as "id" and "label" are available. Calling other methods (such as node.delete) will result in an exception.
- label: The title of the node.
- content: All node items. Use {{ content }} to print them all, or print a subset such as {{ content.field_example }}. Use {{ content|without('field_example') }} to temporarily suppress the printing of a given child element.
- author_picture: The node author user entity, rendered using the "compact" view mode.
- metadata: Metadata for this node.
- date: Themed creation date field.
- author_name: Themed author name field.
- url: Direct URL of the current node.
- display_submitted: Whether submission information should be displayed.
- attributes: HTML attributes for the containing element.
The attributes.class element may contain one or more of the following
classes:
- node: The current template type (also known as a "theming hook").
- node--type-[type]: The current node type. For example, if the node is an "Article" it would result in "node--type-article". Note that the machine name will often be in a short form of the human readable label.
- node--view-mode-[view_mode]: The View Mode of the node; for example, a teaser would result in: "node--view-mode-teaser", and full: "node--view-mode-full".
The following are controlled through the node publishing options.
- node--promoted: Appears on nodes promoted to the front page.
- node--sticky: Appears on nodes ordered above other non-sticky nodes in teaser listings.
- node--unpublished: Appears on unpublished nodes visible only to site admins.
- title_attributes: Same as attributes, except applied to the main title tag that appears in the template.
- content_attributes: Same as attributes, except applied to the main content tag that appears in the template.
- author_attributes: Same as attributes, except applied to the author of the node tag that appears in the template.
- 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.
- 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'.
- readmore: Flag for more state. Will be true if the teaser content of the node cannot hold the main body content.
- 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.
@todo Remove the id attribute (or make it a class), because if that gets rendered twice on a page this is invalid CSS for example: two lists in different view modes.
See also
File
themes/socialbase/templates/node/node--teaser.html.twigView source
- {#
- /**
- * @file
- * Default theme implementation to display a node.
- *
- * Available variables:
- * - node: The node entity with limited access to object properties and methods.
- Only "getter" methods (method names starting with "get", "has", or "is")
- and a few common methods such as "id" and "label" are available. Calling
- other methods (such as node.delete) will result in an exception.
- * - label: The title of the node.
- * - content: All node items. Use {{ content }} to print them all,
- * or print a subset such as {{ content.field_example }}. Use
- * {{ content|without('field_example') }} to temporarily suppress the printing
- * of a given child element.
- * - author_picture: The node author user entity, rendered using the "compact"
- * view mode.
- * - metadata: Metadata for this node.
- * - date: Themed creation date field.
- * - author_name: Themed author name field.
- * - url: Direct URL of the current node.
- * - display_submitted: Whether submission information should be displayed.
- * - attributes: HTML attributes for the containing element.
- * The attributes.class element may contain one or more of the following
- * classes:
- * - node: The current template type (also known as a "theming hook").
- * - node--type-[type]: The current node type. For example, if the node is an
- * "Article" it would result in "node--type-article". Note that the machine
- * name will often be in a short form of the human readable label.
- * - node--view-mode-[view_mode]: The View Mode of the node; for example, a
- * teaser would result in: "node--view-mode-teaser", and
- * full: "node--view-mode-full".
- * The following are controlled through the node publishing options.
- * - node--promoted: Appears on nodes promoted to the front page.
- * - node--sticky: Appears on nodes ordered above other non-sticky nodes in
- * teaser listings.
- * - node--unpublished: Appears on unpublished nodes visible only to site
- * admins.
- * - title_attributes: Same as attributes, except applied to the main title
- * tag that appears in the template.
- * - content_attributes: Same as attributes, except applied to the main
- * content tag that appears in the template.
- * - author_attributes: Same as attributes, except applied to the author of
- * the node tag that appears in the template.
- * - 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.
- * - 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'.
- * - readmore: Flag for more state. Will be true if the teaser content of the
- * node cannot hold the main body content.
- * - 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.
- *
- * @see template_preprocess_node()
- *
- * @todo Remove the id attribute (or make it a class), because if that gets
- * rendered twice on a page this is invalid CSS for example: two lists
- * in different view modes.
- *
- * @ingroup themeable
- */
- #}
-
- {{ attach_library('socialbase/teaser')}}
- {{ attach_library('socialbase/page-node')}}
-
- {%
- set classes = [
- 'teaser',
- 'teaser-' ~ node.bundle|clean_class,
- view_mode == 'teaser' ? 'card',
- view_mode == 'activity' ? 'teaser--stream',
- view_mode == 'activity_comment' ? 'teaser--stream',
- node.isPromoted() ? 'promoted',
- node.isSticky() ? 'sticky',
- not node.isPublished() ? 'teaser--unpublished',
- no_image ? 'no-image'
- ]
- %}
-
- <div{{ attributes.addClass(classes) }}>
- {% if status_label %}
- <div class="node--unpublished__label">
- {{ status_label }}
- </div>
- {% endif %}
-
- <div class='teaser__image'>
-
- {% if view_mode == 'teaser' or no_image %}
- {% block card_teaser_type %}
- <a href="{{ url }}" title="{{- node.bundle|clean_class|capitalize -}} : {{- label|render|striptags|trim -}}">
- <div class="teaser__teaser-type">
- <svg class="teaser__teaser-type-icon">
- <title>{{- node.bundle|clean_class|capitalize -}} : {{- label|render|striptags|trim -}}</title>
- <use xlink:href="#icon-{{- node.bundle|clean_class -}}"></use>
- </svg>
- </div>
- </a>
- {% endblock %}
- {% endif %}
-
- {% block card_image %}
- {{ node_image }}
- {% endblock %}
-
- </div>
-
- <div class='teaser__body'>
- <div class="teaser__content">
-
- {% block card_title %}
- {{ title_prefix }}
- <h4{{ title_attributes }} class="teaser__title">
- <a href="{{ url }}" rel="bookmark">{{ label }}</a>
- </h4>
- {{ title_suffix }}
- {%- endblock -%}
-
- {% block card_body %}
-
- {% if display_submitted %}
- {% embed "node--teaser__field.html.twig" %}
- {%- block field_icon -%} account_circle {%- endblock -%}
- {%- block field_value %}
- <div class="teaser__published">
- <div class="teaser__published-date"> {{ date }} • </div>
- <div class="teaser__published-author"> {{ author_name }} </div>
- </div>
- {%- endblock -%}
- {% endembed %}
- {% endif %}
-
- {% if topic_type %}
- {% embed "node--teaser__field.html.twig" %}
- {%- block field_icon -%} label {%- endblock -%}
- {%- block field_value -%} {{ topic_type }} {%- endblock -%}
- {% endembed %}
- {% endif %}
-
- {% if content.group_name %}
- {% embed "node--teaser__field.html.twig" %}
- {%- block field_icon -%} group {%- endblock -%}
- {%- block field_value -%} {{ content.group_name }} {%- endblock -%}
- {% endembed %}
- {% endif %}
-
- {% embed "node--teaser__body.html.twig" %}
- {% block field_body %} {{ content.body }} {% endblock %}
- {% endembed %}
-
- {% endblock %}
- </div>
-
- <div class="card__actionbar">
- {% block card_actionbar %}
-
- {% if visibility_icon and visibility_label %}
- <div class="badge teaser__badge"
- title="{% trans %}The visibility of this content is set to {{ visibility_label }}{% endtrans %}">
- <span class="badge__container">
- <svg class="badge__icon">
- <use xlink:href="#icon-{{ visibility_icon }}"></use>
- </svg>
- <span class="badge__label text-gray">{{ visibility_label|capitalize }}</span>
- </span>
- </div>
- {% endif %}
-
-
- {% if likes_count is not empty %}
- <div class="badge teaser__badge" title="{% trans %}Total amount of likes{% endtrans %}">
- <span class="badge__container">
- <svg class="badge__icon">
- <use xlink:href="#icon-like"></use>
- </svg>
- <span class="badge__label text-gray">
- {{ likes_count }}
- </span>
- </span>
- </div>
- {% endif %}
-
- {% if comment_count is not empty %}
- <a href="{{ url }}#section-comments" class="badge badge--pill teaser__badge">
- <span class="badge__container">
- <svg class="badge__icon">
- <use xlink:href="#icon-comment"></use>
- </svg>
- <span class="badge__label text-gray">{{ comment_count }}</span>
- </span>
- </a>
- {% endif %}
-
- {{ content.links }}
-
- {% endblock %}
- </div>
-
- </div>
-
- </div>
-
- {% if view_mode == 'activity' and content.field_book_comments %}
- {{ content.field_book_comments }}
- {% endif %}