КОНТРОЛЫ/smart_address.md


Исходный код

Twig код

{% set input_subtypes = [
  'address_line_1',
  'address_line_2',
  'city',
  'state',
  'zip'
] %}

{% if items is defined %}
  <div class="control-address control-address__wrapper">
    {% for key, item in items %}
      {% if item.subtype_name in input_subtypes %}
        {#
          есть проблема, что в значениях
          адреса по умолчанию приходят null
          и null выводился строкой в шаблоне
          поэтому у пользователей уже насохранялось
          куча кривых данных с этими null
          в виде строки

          таким вот костылем исправляем
          этот косяк

          ниже также исправление этого косяка
        #}
        {% set item_value = item.value %}

        {% if item_value == 'null' %}
          {% set item_value = '' %}
        {% endif %}

        <div class="control-address__field" data-field-type="{{item.subtype_name}}">
          {% include 'interface/controls/input.twig' with item|merge({ value: item_value }) %}
        </div>
      {% endif %}

      {% if item.subtype_name == 'country' %}
        <div class="control-address__field" data-field-type="{{item.subtype_name}}">
          {% set sb = lang.country_placeholder %}
          {% set cn = item.class_name ~ ' control-address__select' %}

          {% if item.selected_before %}
            {% set sb = item.selected_before %}
          {% endif %}

          {% include "interface/controls/select.twig" with item|merge({
            selected_before: sb,
            class_name: cn
          }) %}
        </div>
      {% endif %}
    {% endfor %}
  </div>
{% endif %}

Ссылка на вики репозиторий