0
votes

Is there a way to implement a button onto the slider on the Debut theme? I just want it to route to a particular page. Here is the code:

<div data-section-id="{{ section.id }}" data-section-type="slideshow-section">

  {% if section.blocks.size > 0 %}
    <div class="slideshow-wrapper">
      <button type="button" class="visually-hidden slideshow__pause" data-id="{{ section.id }}" aria-live="polite">
        <span class="slideshow__pause-stop">
          {% include 'icon-pause' %}
          <span class="icon__fallback-text">{{ 'sections.slideshow.pause_slideshow' | t }}</span>
        </span>
        <span class="slideshow__pause-play">
          {% include 'icon-play' %}
          <span class="icon__fallback-text">{{ 'sections.slideshow.play_slideshow' | t }}</span>
        </span>
      </button>

      <div class="slideshow slideshow--{{ section.settings.slideshow_height }}" id="Slideshow-{{ section.id }}" data-autoplay="{{ section.settings.autoplay }}" data-speed="{{ section.settings.autoplay_speed }}">
        {% for block in section.blocks %}
          {%- assign is_background_video = false -%}
          {% if block.type == 'video' %}
            {% if block.settings.video_type == 'background' or block.settings.video_type =='background-chrome' %}
              {%- assign is_background_video = true -%}
            {% endif %}
          {% endif %}

          <div class="slideshow__slide slideshow__slide--{{ block.id }}{% if is_background_video %} slideshow__slide--background-video{% endif %}" {{ block.shopify_attributes }}>
            {% if block.settings.link != blank %}
              <a href="{{ block.settings.link }}" class="slideshow__link">
            {% endif %}

            {% if block.type == 'video' %}
              {% if block.settings.video_url != blank %}
                <div class="video-loader"></div>
              {% endif %}
              {% unless block.settings.video_type == 'background' %}
                <button type="button" class="text-link slideshow__video-control slideshow__video-control--close" data-controls="SlideshowVideo-{{ block.id }}">
                  {% include 'icon-close' %}
                  <span class="icon__fallback-text">{{ 'sections.slideshow.close_video' | t }}</span>
                </button>
              {% endunless %}
              {% if block.settings.video_url != blank %}
                <div id="SlideshowVideo-{{ block.id }}" class="slideshow__video {% if is_background_video %}slideshow__video--background{% endif %} slideshow__video--{{ block.settings.video_type }}"
                  data-id="{{ block.settings.video_url.id }}"
                  data-type="{{ block.settings.video_type }}"
                  data-slideshow="Slideshow-{{ section.id }}"></div>
              {% endif %}
            {% endif %}

            {% if block.settings.image == blank %}
              <div class="slideshow__image js">
                <div class="placeholder-background">
                  {% capture current %}{% cycle 1, 2 %}{% endcapture %}
                  {{ 'lifestyle-' | append: current | placeholder_svg_tag: 'placeholder-svg' }}
                </div>
              </div>
            {% else %}
              <div class="slideshow__image box ratio-container lazyload{% unless forloop.first == true %} lazypreload{% endunless %} js"
                   data-bgset="{% include 'bgset', image: block.settings.image %}"
                   data-sizes="auto"
                   data-parent-fit="cover"
                   style="background-position: {{ block.settings.alignment }};{% if forloop.first == true %} background-image: url('{{ block.settings.image | img_url: '300x300' }});{% endif %}">
              </div>
            {% endif %}

            <noscript>
              <div class="slideshow__image"{% if block.settings.image %} style="background-image: url('{{ block.settings.image | img_url: '2048x' }}'); background-position: {{ block.settings.alignment }};"{% endif %}>
                {% if block.settings.image == blank %}
                  <div class="placeholder-background">
                    {% capture current %}{% cycle 1, 2 %}{% endcapture %}
                    {{ 'lifestyle-' | append: current | placeholder_svg_tag: 'placeholder-svg' }}
                  </div>
                {% endif %}
              </div>
            </noscript>
            <div class="slideshow__text-wrap{% if block.settings.title != blank or block.settings.subheading != blank %} slideshow__overlay{% endif %}">
              <div class="slideshow__text-content">
                <div class="page-width">
                  {% unless block.settings.title == blank %}
                    <h2 class="h1 mega-title slideshow__title{% if settings.link != blank %} slideshow__title--has-link{% endif %}{% if section.settings.text_size == 'large' %} mega-title--large{% endif %}">
                      {{ block.settings.title | escape }}
                    </h2>
                  {% endunless %}
                  {% unless block.settings.subheading == blank %}
                    <span class="mega-subtitle slideshow__subtitle{% if section.settings.text_size == 'large' %} mega-subtitle--large{% endif %}">
                      {{ block.settings.subheading | escape }}
                    </span>
                  {% endunless %}
                  {% if block.type == 'video' %}
                    {% unless block.settings.video_type == 'background' %}
                      <div class="slideshow__video-control--play-wrapper{% if block.settings.title != blank or block.settings.subheading != blank %} slideshow__video-control--play-wrapper--push{% endif %}">
                        <button type="button" class="text-link slideshow__video-control slideshow__video-control--play" data-controls="SlideshowVideo-{{ block.id }}">
                          {% include 'icon-play-video' %}
                          <span class="icon__fallback-text">{{ 'sections.slideshow.play_video' | t }}</span>
                        </button>
                      </div>
                    {% endunless %}
                  {% endif %}
                </div>
              </div>
            </div>

            {% if block.settings.link != blank %}
              </a>
            {% endif %}
          </div>
        {% endfor %}
      </div>
    </div>
  {% endif %}

  {% if section.blocks.size == 0 %}
    <div class="placeholder-noblocks">
      {{ 'homepage.onboarding.no_content' | t }}
    </div>
  {% endif %}
</div>
1
Yep there is a way, just add another text or url field in the section block schema and add the html markup for the button.drip
Can you please show me where to find this and the markup should look like?methuselah

1 Answers

0
votes

Try this. Replace your code with this code in slideshow.liquid:

<div data-section-id="{{ section.id }}" data-section-type="slideshow-section">
    {% if section.blocks.size > 0 %}
<div class="slideshow-wrapper">
  <button type="button" class="visually-hidden slideshow__pause" data-id="{{ section.id }}" aria-live="polite">
    <span class="slideshow__pause-stop">
      {% include 'icon-pause' %}
      <span class="icon__fallback-text">{{ 'sections.slideshow.pause_slideshow' | t }}</span>
    </span>
    <span class="slideshow__pause-play">
      {% include 'icon-play' %}
      <span class="icon__fallback-text">{{ 'sections.slideshow.play_slideshow' | t }}</span>
    </span>
  </button>

  <div class="slideshow slideshow--{{ section.settings.slideshow_height }}" id="Slideshow-{{ section.id }}" data-autoplay="{{ section.settings.autoplay }}" data-speed="{{ section.settings.autoplay_speed }}">
    {% for block in section.blocks %}
      {%- assign is_background_video = false -%}
      {% if block.type == 'video' %}
        {% if block.settings.video_type == 'background' or block.settings.video_type =='background-chrome' %}
          {%- assign is_background_video = true -%}
        {% endif %}
      {% endif %}

      <div class="slideshow__slide slideshow__slide--{{ block.id }}{% if is_background_video %} slideshow__slide--background-video{% endif %}" {{ block.shopify_attributes }}>
        {% if block.settings.link != blank %}
          <a href="{{ block.settings.link }}" class="slideshow__link">
        {% endif %}

        {% if block.type == 'video' %}
          {% if block.settings.video_url != blank %}
            <div class="video-loader"></div>
          {% endif %}
          {% unless block.settings.video_type == 'background' %}
            <button type="button" class="text-link slideshow__video-control slideshow__video-control--close" data-controls="SlideshowVideo-{{ block.id }}">
              {% include 'icon-close' %}
              <span class="icon__fallback-text">{{ 'sections.slideshow.close_video' | t }}</span>
            </button>
          {% endunless %}
          {% if block.settings.video_url != blank %}
            <div id="SlideshowVideo-{{ block.id }}" class="slideshow__video {% if is_background_video %}slideshow__video--background{% endif %} slideshow__video--{{ block.settings.video_type }}"
              data-id="{{ block.settings.video_url.id }}"
              data-type="{{ block.settings.video_type }}"
              data-slideshow="Slideshow-{{ section.id }}"></div>
          {% endif %}
        {% endif %}

        {% if block.settings.image == blank %}
          <div class="slideshow__image js">
            <div class="placeholder-background">
              {% capture current %}{% cycle 1, 2 %}{% endcapture %}
              {{ 'lifestyle-' | append: current | placeholder_svg_tag: 'placeholder-svg' }}
            </div>
          </div>
        {% else %}
          <div class="slideshow__image box ratio-container lazyload{% unless forloop.first == true %} lazypreload{% endunless %} js"
               data-bgset="{% include 'bgset', image: block.settings.image %}"
               data-sizes="auto"
               data-parent-fit="cover"
               style="background-position: {{ block.settings.alignment }};{% if forloop.first == true %} background-image: url('{{ block.settings.image | img_url: '300x300' }});{% endif %}">
          </div>
        {% endif %}

        <noscript>
          <div class="slideshow__image"{% if block.settings.image %} style="background-image: url('{{ block.settings.image | img_url: '2048x' }}'); background-position: {{ block.settings.alignment }};"{% endif %}>
            {% if block.settings.image == blank %}
              <div class="placeholder-background">
                {% capture current %}{% cycle 1, 2 %}{% endcapture %}
                {{ 'lifestyle-' | append: current | placeholder_svg_tag: 'placeholder-svg' }}
              </div>
            {% endif %}
          </div>
        </noscript>
        <div class="slideshow__text-wrap{% if block.settings.title != blank or block.settings.subheading != blank %} slideshow__overlay{% endif %}">
          <div class="slideshow__text-content">
            <div class="page-width">
              {% unless block.settings.title == blank %}
                <h2 class="h1 mega-title slideshow__title{% if settings.link != blank %} slideshow__title--has-link{% endif %}{% if section.settings.text_size == 'large' %} mega-title--large{% endif %}">
                  {{ block.settings.title | escape }}
                </h2>
              {% endunless %}
              {% unless block.settings.subheading == blank %}
                <span class="mega-subtitle slideshow__subtitle{% if section.settings.text_size == 'large' %} mega-subtitle--large{% endif %}">
                  {{ block.settings.subheading | escape }}
                </span>
              {% endunless %}
              {% if block.type == 'video' %}
                {% unless block.settings.video_type == 'background' %}
                  <div class="slideshow__video-control--play-wrapper{% if block.settings.title != blank or block.settings.subheading != blank %} slideshow__video-control--play-wrapper--push{% endif %}">
                    <button type="button" class="text-link slideshow__video-control slideshow__video-control--play" data-controls="SlideshowVideo-{{ block.id }}">
                      {% include 'icon-play-video' %}
                      <span class="icon__fallback-text">{{ 'sections.slideshow.play_video' | t }}</span>
                    </button>
                  </div>
                {% endunless %}
              {% endif %}
            </div>
          </div>
        </div>

        {% if block.settings.link != blank %}
          </a>
        {% endif %}
      </div>
    {% endfor %}
  </div>
</div>
{% endif %}
{% if section.blocks.size == 0 %}
<div class="placeholder-noblocks">
  {{ 'homepage.onboarding.no_content' | t }}
</div>
{% endif %}
</div>
{% schema %}
{
"name": "Slideshow",
"class": "index-section index-section--flush",
"max_blocks": 4,
"settings": [
  {
    "type": "checkbox",
    "id": "autoplay",
    "label": "Auto-rotate slides",
    "default": true
  },
  {
    "type": "select",
    "id": "autoplay_speed",
    "label": "Change slides every",
    "options": [
      { "value": "5000", "label": "5 seconds" },
      { "value": "6000", "label": "6 seconds" },
      { "value": "7000", "label": "7 seconds" },
      { "value": "8000", "label": "8 seconds" },
      { "value": "9000", "label": "9 seconds" },
      { "value": "10000", "label": "10 seconds" }
    ],
    "default": "7000"
  },
  {
    "type": "select",
    "id": "slideshow_height",
    "label": "Section height",
    "default": "small",
    "options": [
      {
        "label": "Small",
        "value": "small"
      },
      {
        "label": "Medium",
        "value": "medium"
      },
      {
        "label": "Large",
        "value": "large"
      }
    ]
  },
  {
    "type": "select",
    "id": "text_size",
    "label": "Text size",
    "default": "medium",
    "options": [
      {
        "label": "Medium",
        "value": "medium"
      },
      {
        "label": "Large",
        "value": "large"
      }
    ]
  }
],
"blocks": [
  {
    "type": "image",
    "name": "Image slide",
    "settings": [
      {
        "type": "image_picker",
        "id": "image",
        "label": "Image"
      },
      {
        "type": "select",
        "id": "alignment",
        "label": "Image alignment",
        "default": "top",
        "options": [
          {
            "value": "top",
            "label": "Top"
          },
          {
            "value": "center",
            "label": "Middle"
          },
          {
            "value": "bottom",
            "label": "Bottom"
          }
        ]
      },
      {
        "type": "text",
        "id": "title",
        "label": "Heading",
        "default": "Image slide"
      },
      {
        "type": "text",
        "id": "subheading",
        "label": "Subheading",
        "default": "Tell your brand's story through video and images"
      },
      {
        "type": "url",
        "id": "link",
        "label": "Slide link"
      }
    ]
  },
  {
    "type": "video",
    "name": "Video slide",
    "settings": [
      {
        "type": "video_url",
        "id": "video_url",
        "label": "Video link",
        "accept": ["youtube"],
        "default": "https:\/\/www.youtube.com\/watch?v=_9VUPq3SxOc"
      },
      {
        "type": "select",
        "id": "video_type",
        "label": "Style",
        "options": [
          {
            "value": "chrome",
            "label": "Image with play button"
          },
          {
            "value": "background-chrome",
            "label": "Background video with play button"
          },
          {
            "value": "background",
            "label": "Background video"
          }
        ]
      },
      {
        "type": "image_picker",
        "id": "image",
        "label": "Image",
        "info": "Fallback when autoplaying video is not supported on mobile devices"
      },
      {
        "type": "text",
        "id": "title",
        "label": "Heading",
        "default": "Video slide"
      },
      {
        "type": "text",
        "id": "subheading",
        "label": "Subheading",
        "default": "Tell your brand's story through video and images"
      }
    ]
  }
],
"presets": [{
  "name": "Slideshow",
  "category": "Image",
  "settings": {
    "autoplay": true,
    "autoplay_speed": "5000"
  },
  "blocks": [
    {
      "type": "image"
    },
    {
      "type": "image"
    }
    ]
   }]
  }
{% endschema %}