presto-8.x-2.2/modules/presto_components/templates/paragraph--component-image.html.twig
modules/presto_components/templates/paragraph--component-image.html.twig
{# /** * @file * Default theme implementation to display a paragraph. * * Available variables: * - paragraph: Full paragraph entity. * Only method names starting with "get", "has", or "is" and a few common * methods such as "id", "label", and "bundle" are available. For example: * - paragraph.getCreatedTime() will return the paragraph creation timestamp. * - paragraph.id(): The paragraph ID. * - paragraph.bundle(): The type of the paragraph, for example, "image" or "text". * - paragraph.getOwnerId(): The user ID of the paragraph author. * See Drupal\paragraphs\Entity\Paragraph for a full list of public properties * and methods for the paragraph object. * - content: All paragraph 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. * - attributes: HTML attributes for the containing element. * The attributes.class element may contain one or more of the following * classes: * - paragraphs: The current template type (also known as a "theming hook"). * - paragraphs--type-[type]: The current paragraphs type. For example, if the paragraph is an * "Image" it would result in "paragraphs--type--image". Note that the machine * name will often be in a short form of the human readable label. * - paragraphs--view-mode--[view_mode]: The View Mode of the paragraph; for example, a * preview would result in: "paragraphs--view-mode--preview", and * default: "paragraphs--view-mode--default". * - view_mode: View mode; for example, "preview" or "full". * - 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_paragraph() * * @ingroup themeable */ #} {% set classes = [ 'clearfix', 'paragraph', 'paragraph--type--' ~ paragraph.bundle|clean_class, view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, content.field_variation['#items'].getString(), 'clearfix', 'container', ] %} {% if (view_mode == 'preview') %} {# Case when you edit the node. #} {% block paragraph %} <div{{ attributes.addClass(classes) }}> {% block content %} {{ content }} {% endblock %} </div> {% endblock paragraph %} {% else %} {% set data_caption = content.field_caption['#items'].0.value|raw %} {% set link_url = content.field_link['#items'].0.getUrl() %} {% set image_uri = file_url(content.field_media[0]['#media'].get('field_image').entity.uri.value) %} {% set image_type = content.field_variation['#items'].getString() %} {% set lightbox = '' %} {% if image_type is same as('image_with_lightbox_over') %} {% set lightbox = 'data-lity' %} {% endif %} {% if image_type is same as('image_with_link') and (not link_url is empty) %} {% set link_href = link_url %} {% set data_caption = content.field_link['#items'].0.title %} {% elseif image_type is same as('image_with_lightbox_over') and (not image_uri is empty) %} {% set link_href = image_uri %} {% set data_caption = '<i class="fa fa-2x fa-fw fa-picture-o"></i>' %} {% endif %} <figure{{ attributes.addClass(classes) }}> <a href="{{ link_href }}" {{ lightbox }} data-caption="{{ data_caption }}"> {% if data_caption is not empty %} <figcaption class="{{ image_type }}"> <p> {{- data_caption|raw -}} </p> </figcaption> {% endif %} {{ content.field_media }} </a> </figure> {% endif %}