Показать массив данных JSON из settings_data.json в жидкости шаблона страницы (Shopify) - PullRequest
0 голосов
/ 03 декабря 2018

Мой файл setting_data.json (Deput Shopify Theme):

{
  "current": {
    "checkout_error_color": "#ff6d6d",
    "sections": {
      "header": {
        "type": "header",
        "settings": {
          "align_logo": "left",
          "logo": "shopify:\/\/shop_images\/logo_9bb43dd5-21d6-442c-8a19-0f4adf03e13a.png",
          "logo_max_width": 100,
          "main_linklist": "main-menu",
          "message": true,
          "home_page_only": true,
          "message_text": "Paw Paper – Edible Gift Wrap for Pets",
          "message_link": "",
          "color_bg": "#162950",
          "color_text": "#ffffff"
        }
      },

Как получить переменные заголовка раздела на странице шаблона Shopify liquid?

Я могу получить одну переменную:

{% assign text_color = settings.color_text %}
{{ text_color }}

Мне нужно показать пользовательский блок на странице и получить данные для него из settings_data.json

"1543393771012": {
        "type": "custom-content",
        "blocks": {
          "1543393771012-1": {
            "type": "image",
            "settings": {
              "image": "shopify:\/\/shop_images\/info.png",
              "width": "50%",
              "alignment": "center"
            }
          },
          "1543393802354": {
            "type": "html",
            "settings": {
              "code": "<p>Paw Paper is the world's first edible wrapping paper designed specifically for pets. Our edible paper is 100% all-natural, made from potato starch with Omega-3 enhanced beef flavoring. It's water-soluble so no tape required!<\/p> <p>Just lick it like a stamp or dab water on the edges to bind the seams.<\/p>",
              "width": "50%"
            }
          }
        },

Но я не могу получить и отобразить массив с переменными.

Помогите, пожалуйста.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Файл settings_data.json - это не то, к чему вы можете обращаться напрямую в Liquid, но вы можете получить доступ к значениям, хранящимся в нем, с помощью соответствующих команд Liquid.

Глобальный объект settings в Liquid дает вам доступко всем переменным, определенным в вашем файле settings_schema.json, и ничего более.

Однако ваша настройка color_text не является настройкой темы, это настройка раздела для заголовка «header».Эта переменная может быть доступна как section.settings.color_text, если вы вызываете ее из раздела заголовка.

Доступ к настройкам блока осуществляется аналогичным образом.Предполагая, что у вас есть какой-то цикл for block in section.blocks, к этим настройкам уровня блока можно получить доступ как block.settings.whatever_key_you_made

Помните - все создаваемые вами настройки имеют соответствующую область действия и должны быть доступны соответствующим образом!settings_schema.json дает вам ваш глобальный settings объект;каждый раздел имеет свой собственный settings объект;и у каждого блока есть свой личный settings объект.

Надеюсь, это поможет!

0 голосов
/ 03 декабря 2018

Предполагая, что ваш JSONOBJ правильный.

var JSONOBJ={
  "current": {
    "checkout_error_color": "#ff6d6d",
    "sections": {
      "header": {
        "type": "header",
        "settings": {
          "align_logo": "left",
          "logo": "shopify:\/\/shop_images\/logo_9bb43dd5-21d6-442c-8a19-0f4adf03e13a.png",
          "logo_max_width": 100,
          "main_linklist": "main-menu",
          "message": true,
          "home_page_only": true,
          "message_text": "Paw Paper – Edible Gift Wrap for Pets",
          "message_link": "",
          "color_bg": "#162950",
          "color_text": "#ffffff"
        }
      }}}}

console.log(JSONOBJ.current.sections.header.settings.message_text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...