src/Trinity/WebshopBundle/Resources/views/front/product/configurable-options.html.twig line 1

Open in your IDE?
  1. {# Make the config options show up as checkmark buttons or dropdown #}
  2. {% set specType = WebshopSettings.getConfigurableSpecFrontendType %}
  3. {% if configSpecs is not empty %}
  4.     {# CONFIGURABLE #}
  5.     {% set simplified_specs = Product.getSimplifiedSpecValues %}
  6.     <form method="post" id="configurable-options">
  7.         <table>
  8.             {% for specid, specData in configSpecs %}
  9.                 {% if specs[specid] is defined and (specData|length > 1) %}
  10.                     {% set valueToId = configSpecsIds[specid] %}
  11.                     {% set simplified_details = [] %}
  12.                     {% if simplified_specs[specid] is defined %}
  13.                         {% set simplified_details = simplified_specs[specid] %}
  14.                     {% endif %}
  15.                     {% set option_index = loop.index %}
  16.                     <tr class="config-spec-row {{option_index == 1 ? 'active-step' : ''}}" data-specid="{{specid}}" id="config-spec-row-{{specid}}">
  17.                         <td>
  18.                             <div class="table-wrapper">
  19.                                 <table>
  20.                                     <tr>
  21.                                         <td>
  22.                                             {{specs[specid].label}}
  23.                                             {# [{{specid}}] #}
  24.                                         </td>
  25.                                         <td>
  26.                                             {% if specs[specid].type == 'color' %}
  27.                                                 {% if specType == 1 %}
  28.                                                     <div class="type-colors">
  29.                                                         <select class="configurable-option form-select" {{option_index > 1 ? 'disabled' : ''}} name="spec[{{specid}}]" data-specid="{{specid}}" onchange="changeConfigurable(this)">
  30.                                                             <option disabled selected value="">- {{ 'Selecteer een optie' | trans({}, 'webshop', app.request.locale) }} -</option>}
  31.                                                             {% for v,products in specData %}
  32.                                                                 {% set unavailable = (option_index > 1 or (specs_disabled[specid] is defined and v in specs_disabled[specid])) %}
  33.                                                                 {% set enabled = (v in simplified_details) %}
  34.                                                                 <option {{unavailable ? 'disabled' : ''}} data-svid="{{valueToId[v]}}" data-id="{{specid}}_{{v}}" {{enabled ? 'selected' : ''}} data-products="{{products[0]}}" value="{{v}}">
  35.                                                                     {{v}}
  36.                                                                 </option>
  37.                                                             {% endfor %}
  38.                                                         </select>
  39.                                                     </div>
  40.                                                 {% else %}
  41.                                                     <div class="type-colors">
  42.                                                         {% for v, products in specData %}
  43.                                                             {% set unavailable = ((option_index > 1) or (specs_disabled[specid] is defined and v in specs_disabled[specid])) %}
  44.                                                             {% set enabled = (v in simplified_details) %}
  45.                                                             {% if enabled or option_index == 1 %}
  46.                                                                 {% set unavailable = false %}
  47.                                                             {% endif %}
  48.                                                             <label class="{{enabled ? 'active' : ''}} {{unavailable ? 'not-available' : ''}}" data-id="{{specid}}_{{v}}" title="{{v}}">
  49.                                                                 <input data-svid="{{valueToId[v]}}" name="spec[{{specid}}]" style="display:none;" onclick="changeConfigurable(this)" {{enabled ? 'checked' : ''}} type="radio" data-products="{{products[0]}}" value="{{v}}"  data-bs-toggle="tooltip" title="{{v}}"/>
  50.                                                                 <span class="color-dot {{enabled ? 'active' : ''}}" style="{% if v == null %}background-image:url(/bundles/trinitywebshop/img/multi-color.png);background-position:center;background-size:cover;{% else %}background:{{configHex[v]}};{% endif %}"></span>
  51.                                                                 <span class="color-label">{{v}}</span>
  52.                                                             </label>
  53.                                                         {% endfor %}
  54.                                                     </div>
  55.                                                 {% endif %}
  56.                                             {% elseif specs[specid].code == 'size' %}
  57.                                                 {% if specType == 1 %}
  58.                                                     <select class="configurable-option form-select" {{option_index > 1 ? 'disabled' : ''}} name="spec[{{specid}}]" data-specid="{{specid}}" onchange="changeConfigurable(this)">
  59.                                                         <option disabled selected value="">- {{ 'Selecteer een optie' | trans({}, 'webshop', app.request.locale) }} -</option>}
  60.                                                         {% for v,products in specData %}
  61.                                                             {% set unavailable = (option_index > 1 or (specs_disabled[specid] is defined and v in specs_disabled[specid])) %}
  62.                                                             {% set enabled = (v in simplified_details) %}
  63.                                                             <option {{unavailable ? 'disabled' : ''}} data-svid="{{valueToId[v]}}" data-id="{{specid}}_{{v}}" {{enabled ? 'selected' : ''}} data-products="{{products[0]}}" value="{{v}}">
  64.                                                                 {{v}}
  65.                                                             </option>
  66.                                                         {% endfor %}
  67.                                                     </select>
  68.                                                 {% else %}
  69.                                                     {% for v, products in specData %}
  70.                                                         {% set unavailable = (option_index > 1 or (specs_disabled[specid] is defined and v in specs_disabled[specid])) %}
  71.                                                         {% set enabled = (v in simplified_details) %}
  72.                                                         {% if enabled %}
  73.                                                             {% set unavailable = false %}
  74.                                                         {% endif %}
  75.                                                         <label data-id="{{specid}}_{{v}}" class="square-select {{enabled ? 'active' : ''}} {{unavailable ? 'not-available' : ''}}">
  76.                                                             <input name="spec[{{specid}}]" style="display:none;" data-svid="{{valueToId[v]}}" {{enabled ? 'checked' : ''}} onclick="if(!$(this).closest('label').hasClass('disabled')){$(this).closest('td').find('.square-select').removeClass('active');$(this).parent().addClass('active');changeConfigurable(this)}" type="radio" data-products="{{products[0]}}" value="{{v}}"/>
  77.                                                             {{v}}
  78.                                                         </label>
  79.                                                     {% endfor %}
  80.                                                 {% endif %}
  81.                                             {% else %}
  82.                                                 {% if specData|length > 1 %}
  83.                                                     {% if specType == 1 %}
  84.                                                         <select class="configurable-option form-select" {{option_index > 1 ? 'disabled' : ''}} name="spec[{{specid}}]" data-specid="{{specid}}" onchange="changeConfigurable(this)">
  85.                                                             <option disabled selected value="">- {{ 'Selecteer een optie' | trans({}, 'webshop', app.request.locale) }} -</option>}
  86.                                                             {% for v,products in specData %}
  87.                                                                 {% set unavailable = (option_index > 1 or (specs_disabled[specid] is defined and v in specs_disabled[specid])) %}
  88.                                                                 {% set enabled = (v in simplified_details) %}
  89.                                                                 <option {{unavailable ? 'disabled' : ''}} data-svid="{{valueToId[v]}}" data-id="{{specid}}_{{v}}" {{enabled ? 'selected' : ''}} data-products="{{products[0]}}" value="{{v}}">
  90.                                                                     {{v}}
  91.                                                                 </option>
  92.                                                             {% endfor %}
  93.                                                         </select>
  94.                                                     {% else %}
  95.                                                         {% for v, products in specData %}
  96.                                                             {% set unavailable = (option_index > 1) %}
  97.                                                             {% set enabled = (v in simplified_details) %}
  98.                                                             {% if enabled %}
  99.                                                                 {% set unavailable = false %}
  100.                                                             {% endif %}
  101.                                                             <label data-id="{{specid}}_{{v}}" class="square-select {{enabled ? 'active' : ''}} {{unavailable ? 'not-available' : ''}}">
  102.                                                                 <input name="spec[{{specid}}]" style="display:none;" data-svid="{{valueToId[v]}}" {{enabled ? 'checked' : ''}} onclick="if(!$(this).closest('label').hasClass('disabled')){$(this).closest('td').find('.square-select').removeClass('active');$(this).parent().addClass('active');changeConfigurable(this)}" type="radio" data-products="{{products[0]}}" value="{{v}}"/>
  103.                                                                 {{v}}
  104.                                                             </label>
  105.                                                         {% endfor %}
  106.                                                     {% endif %}
  107.                                                 {% else %}
  108.                                                     {#{% for v, products in specData %}
  109.                                                         <span>{{v}}</span>
  110.                                                     {% endfor %}#}
  111.                                                 {% endif %}
  112.                                             {% endif %}
  113.                                         </td>
  114.                                     </tr>
  115.                                 </table>
  116.                             </div>
  117.                         </td>
  118.                     </tr>
  119.                 {% endif %}
  120.             {% endfor %}
  121.         </table>
  122.     </form>
  123. {% endif %}