Hello,
I finally figured out how not to appear as a text instead of a combo when an attribute group has only one attribute, to allow this to give critical information about a product without the characteristics
So in product.tpl you should replace:
PHP Code:
<!-- attributes -->
<div id="attributes">
{foreach from=$groups key=id_attribute_group item=group}
<p>
<label for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label>
{assign var='groupName' value='group_'|cat:$id_attribute_group}
<select name="{$groupName}" id="group_{$id_attribute_group|intval}">
{foreach from=$group.attributes key=id_attribute item=group_attribute}
<option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if}>{$group_attribute|escape:'htmlall':'UTF-8'}</option>
{/foreach}
</select>
</p>
{/foreach}
To:
PHP Code:
<!-- attributes -->
<div id="attributes">
{foreach from=$groups key=id_attribute_group item=group}
<p>
<label for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label>
{assign var='groupName' value='group_'|cat:$id_attribute_group}
{if count($group.attributes) > 1}
<select name="{$groupName}" id="group_{$id_attribute_group|intval}">
{foreach from=$group.attributes key=id_attribute item=group_attribute}
<option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if}>{$group_attribute|escape:'htmlall':'UTF-8'}</option>
{/foreach}
</select>
{else}
{foreach from=$group.attributes key=id_attribute item=group_attribute}
<span class="editable">{$group_attribute|escape:'htmlall':'UTF-8'}</span>
{/foreach}
{/if}
</p>
{/foreach}
Original source (in French) - here