代码之家  ›  专栏  ›  技术社区  ›  Nidhi

在“settings\u schema”中添加“blocks”。shopify主题中的json

  •  5
  • Nidhi  · 技术社区  · 6 年前

    我不熟悉Shopify并在Shopify中构建自定义主题,我想在settings\u模式中添加“块”。当我在节模式中添加json时,是否可能?如果是,如何添加?请帮帮我
    我添加了以下代码:

        [
      {
        "name": "theme_info",
        "theme_name": "Slate",
        "theme_version": "0.11.0",
        "theme_author": "Shopify",
        "theme_documentation_url": "https:\/\/shopify.github.io\/slate\/",
        "theme_support_url": "https:\/\/github.com\/Shopify\/slate"
      },
      {
        "name": "Colors",
        "settings": [
          {
            "type": "header",
            "content": "General colors"
          },
          {
            "type": "color",
            "id": "color_theme",
            "label": "Theme color",
            "default": "#efeeeb",
            "info": "Used for theme"
          },
          {
            "type": "color",
            "id": "color_primary",
            "label": "Primary color",
            "default": "#4d4d4d",
            "info": "Used for text links, and primary buttons"
          }
        ],
        "blocks": [
          {
            "type": "product_colors",
            "name": "Product colors",
            "settings": [
              {
                "type": "color",
                "id": "color_label",
                "label": "Color label",
                "default": "red"
              },
              {
                "type": "color",
                "id": "color_code",
                "label": "Color code",
                "default": "#ff0000"
              }
            ]
          }
        ]
      }
    ]
    

    但它给出了一个错误:

    错误:第2节:“块”不是有效属性

    任何其他解决方案也值得赞赏

    1 回复  |  直到 6 年前
        1
  •  13
  •   drip    6 年前

    中不支持块 settings_schema.json 文件

    块仅在 {% schema %}{% endschema %} 标签。

    你的问题有一些解决办法。

    使用链接列表

    如果必须使用 settings\u架构。json 您可以使用 link_list 字段来选择特定的link\u列表,您可以在其中创建一个导航,其中颜色标签作为链接标题,十六进制代码作为链接url地址。

    使用seprate部分

    对颜色使用单独的部分,您可以在其中选择块。

    使用文本区域

    你可以使用一个文本区域,只需稍微拆分一下,就可以得到你想要的效果。

    例如,textarea的值为:

    Black|#000000
    White|#ffffff
    Grey|#cccccc
    

    你会做一些类似的事情:

    {% assign textarea = settings.textarea | newline_to_br | split: '<br /> %}
    {% for text_row in textarea %}
      {% assign text_row_array = text_row | split: '|" %}
      {% assign color_name = text_row_array[0] %}
      {% assign color_hex = text_row_array[1] %}
      ...
    {% endfor %}
    

    总结

    最方便用户的选项是分区选项,但您可以决定什么最适合您的需要。