Jump to content
  • 0

Atrybuty - select i input-radio w innych miejscach na stronie


Adam

Question

Cześć

 

Jak w tytule - jak / czy można rozdzielić atrybuty (select i input-radio) by były w innych miejscach na stronie? Np. select gdzieś na górze w product.tpl a input-radio na dole.

 

Wiadomo - zrobić łatwo ale żeby działało już tak nie :)

 

Z góry dzięki.

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Atrybuty muszą się znajdować w tym samym <form> i dobrze by było żeby posiadały taką samą strukturę klas ponieważ są tam uruchamiane eventy na ich podstawie np. podczas wyboru konkretnego atrybutu. Może jakbyś bardziej opisał przypadek takiego użycia to było by łatwiej podpowiedzieć.

Link to comment
Share on other sites

  • 0

Dzięki za odpowiedź - dlatego mi to nie działało :)

 

Wymyśliłem to tak, że product-variants.tpl wygląda następujaco:

<div class="product-variants js-product-variants">
  {foreach from=$groups key=id_attribute_group item=group}
    {if !empty($group.attributes)}
    <div class="clearfix product-variants-item">
      <span class="control-label">{$group.name}
          {foreach from=$group.attributes key=id_attribute item=group_attribute}
            
          {/foreach}
      </span>

      
      {if $group.group_type == 'color'}
        <ul id="group_{$id_attribute_group}">
          {foreach from=$group.attributes key=id_attribute item=group_attribute}
            <li class="float-xs-left input-container {if $group.attributes_quantity[$id_attribute]<=0}outstock{else}instock{/if}">
              <label aria-label="{$group_attribute.name}">
                <input class="input-color" type="radio" data-product-attribute="{$id_attribute_group}" name="group[{$id_attribute_group}]" value="{$id_attribute}" title="{$group_attribute.name}"{if $group_attribute.selected} checked="checked"{/if}>
                <span
                  {if $group_attribute.texture}
                    class="color texture" style="background-image: url({$group_attribute.texture})"
                  {elseif $group_attribute.html_color_code}
                    class="color" style="background-color: {$group_attribute.html_color_code}"
                  {/if}
                ><span class="attribute-name sr-only">{$group_attribute.name}</span></span>
              </label>
            </li>
          {/foreach}
        </ul>

      {elseif $group.group_type == 'radio'}
        <ul id="group_{$id_attribute_group}">
          {foreach from=$group.attributes key=id_attribute item=group_attribute}
            <li class="input-container float-xs-left {if $group.attributes_quantity[$id_attribute]<=0}outstock{else}instock{/if}">
              <label>
                <input class="input-radio" type="radio" data-product-attribute="{$id_attribute_group}" name="group[{$id_attribute_group}]" value="{$id_attribute}" title="{$group_attribute.name}"{if $group_attribute.selected} checked="checked"{/if}>
                <div class="container-option">
                <span class="radio-label"><span>{$group_attribute.name}</span></span>{if $group.group_type == 'radio' && $id_attribute_group == '3'}

      {$group_attribute.name}

{/if}</div>
              </label>
            </li>
          {/foreach}
        </ul>
      {/if}
    
    </div>
    {/if}
  {/foreach}
</div>

 

Czyli wszystko poza selectem.

Select jest w innym pliku, który wygląda następująco:

<div class="product-variants js-product-variants">
  {foreach from=$groups key=id_attribute_group item=group}
    

      {if $group.group_type == 'select'}

        <select
          class="form-control form-control-select"
          id="group_{$id_attribute_group}"
          aria-label="{$group.name}"
          data-product-attribute="{$id_attribute_group}"
          name="group[{$id_attribute_group}]">
          {foreach from=$group.attributes key=id_attribute item=group_attribute}
            <option value="{$id_attribute}" title="{$group_attribute.name}"{if $group_attribute.selected} selected="selected"{/if}>{$group_attribute.name}</option>
          {/foreach}
        </select>
      
{/if}{/foreach}</div>

 

Dodaję go jako include w product.tpl i wyświeta się on na stronie tyle, że nie działa (nie wpływa na cenę, itd.).

 

Generalnie chodzi o to by wyświetlić go w DOM dużo wyżej niż jest:

- fajnie jakby był tu, np. <div class="opcja-wyboru">

--

--- a tu jest obecnie <div class="product-variants-item">

 

Pozdrawiam

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...