Как добавить тег привязки в цикл, используя язык шаблонов? - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь добавить ссылку, которая окружает раздел.Эта ссылка будет динамической через CMS.Из которых я ссылался на страницу в доступном поле.Я действительно запутался, почему этот цикл не добавляет URL ссылки.

Этот цикл в настоящее время отображает изображение, заголовок и текстовую строку.Тем не менее, когда я пытаюсь добавить тег с динамическим URL-адресом вокруг фрагмента HTML, это приводит к тому, что тег не заполнен.

{% for i in (1..4) %}

    {% capture item_url %}url_{{ i }}{% endcapture %}
    {% assign item_url = block.settings[item_url] %}

    {% capture item_photo %}img_{{ i }}{% endcapture %}
    {% assign item_photo = block.settings[item_photo] %}

    {% capture item_title %}title_{{ i }}{% endcapture %}
    {% assign item_title = block.settings[item_title] %}

    {% capture item_text %}text_{{ i }}{% endcapture %}
    {% assign item_text = block.settings[item_text] %}

    {% if item_url.size > 0 or item_photo.size > 0 or item_title.size > 0 or item_text.size > 0 %}
        <div class="col-sm-3">

          <a class="item_url" href="{{ item_url }}">
            <div class="item">
                {% if item_photo.size > 0 %}
                    <div class="item_img">
                        <img src="{{ item_photo.src | img_url: '270x270' }}" alt="{{ item_icon.alt }}">
                    </div>
                {% endif %}

                {% if item_title.size > 0 %}
                    <h3 class="item_title">{{ item_title }}</h3>
                {% endif %}

                {% if item_text.size > 0 %}
                    <div class="item_text">{{ item_text }}</div>
                {% endif %}
            </div>
          </a> 

        </div>
    {% endif %}
{% endfor %}

Схема поддержки в блоках и выглядит следующим образом:

// PHOTOS BLOCK ///////////////////////////////////////////////////////////////////////////////////
{
    "type": "photos-block",
    "name": "Photos block",
    "settings": [
        {
            "type": "text",
            "id": "title",
            "label": "Title",
            "default": "Our team"
        },

        // ITEM 1 /////////////////////////////////////////////////////////////////////////////////
        {
            "type": "header",
            "content": "Item 1"
        },
        {
            "type": "image_picker",
            "id": "img_1",
            "label": "Image",
            "info": "Will be resized to 270x270px"
        },
        {
            "type": "text",
            "id": "title_1",
            "label": "Title"
        },
        {
            "type": "text",
            "id": "text_1",
            "label": "Text"
        },
        {
            "type": "url",
            "id": "url_1",
            "label": "Url"
        },

        // ITEM 2 /////////////////////////////////////////////////////////////////////////////////
        {
            "type": "header",
            "content": "Item 2"
        },
        {
            "type": "image_picker",
            "id": "img_2",
            "label": "Image",
            "info": "Will be resized to 270x270px"
        },
        {
            "type": "text",
            "id": "title_2",
            "label": "Title"
        },
        {
            "type": "text",
            "id": "text_2",
            "label": "Text"
        },
        {
            "type": "url",
            "id": "url_2",
            "label": "Url"
        },

        // ITEM 3 /////////////////////////////////////////////////////////////////////////////////
        {
            "type": "header",
            "content": "Item 3"
        },
        {
            "type": "image_picker",
            "id": "img_3",
            "label": "Image",
            "info": "Will be resized to 270x270px"
        },
        {
            "type": "text",
            "id": "title_3",
            "label": "Title"
        },
        {
            "type": "text",
            "id": "text_3",
            "label": "Text"
        },
        {
            "type": "url",
            "id": "url_3",
            "label": "Url"
        },

        // ITEM 4 /////////////////////////////////////////////////////////////////////////////////
        {
            "type": "header",
            "content": "Item 4"
        },
        {
            "type": "image_picker",
            "id": "img_4",
            "label": "Image",
            "info": "Will be resized to 270x270px"
        },
        {
            "type": "text",
            "id": "title_4",
            "label": "Title"
        },
        {
            "type": "text",
            "id": "text_4",
            "label": "Text"
        },
        {
            "type": "url",
            "id": "url_4",
            "label": "Url"
        }
    ]
},

1 Ответ

1 голос
/ 20 марта 2019

Вы генерируете переменную наподобие {% capture item_url %}url_{{ i }}{% endcapture %}

, которая выводит строку наподобие url_1, url_2 и т. Д., Но идентификатор вашего поля называется url_one, url_two.

{
    "type": "url",
    "id": "url_one",
    "label": "Url"
},

Обновите поля схемы, чтобы код работал правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...