Отображение атрибутов товара в таблице Prestashop

Работа с престашопом.

Я установил атрибуты для продукта, который мне нужен, чтобы отобразить их в виде таблицы, подобной этой http://www.solopress.com/leaflet-printing/bond-leaflet.html

Таким образом, вверху отображается размер бумаги, а в каждой строке — количество бумаги.

В моем бэкэнде у меня есть атрибут QTY для 250/500 и т. д. и т. д. и размер A4/A5/A6 и т. д.

Есть ли способ вытащить атрибуты из раскрывающегося списка и перечислить их в виде таблицы с ценой, являющейся кнопкой «Добавить в корзину»?

Любые полезные фрагменты кода или входные данные были бы замечательными.

Большое спасибо!


person Daniel Griffiths    schedule 24.01.2014    source источник


Ответы (1)


Это определенно не ответ, но должен дать вам представление о самой проблеме.

Ваш текст не был таким ясным, но я предполагаю, что вы не имели в виду, что вы создали новые значения атрибутов и назначили их под тегом комбинации.

Вы должны создать определенную структуру таблицы (как вам нужно) в файле product.tpl и отобразить определенные атрибуты с помощью умного цикла forach.

По умолчанию существует три типа групп для атрибутов: выбор, цвет, радио. Вы можете добавить новые атрибуты, но без изменений в самой базе данных (не знаю, сможете ли вы добавить их через панель администратора) типы групп останутся прежними.

Вот код из файла product.tpl, который может вам помочь

                    {foreach from=$groups key=id_attribute_group item=group}
                {if $group.attributes|@count}
                    <fieldset class="attribute_fieldset span5">
                        <div id="attribute_label_container">
                        <label class="attribute_label" for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :&nbsp;</label>
                        </div>
                        {assign var="groupName" value="group_$id_attribute_group"}
                        <div class="attribute_list">
                        {if ($group.group_type == 'select')}
                            <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="attribute_select" onchange="findCombination();getProductAttribute();">
                                {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} title="{$group_attribute|escape:'htmlall':'UTF-8'}">{$group_attribute|escape:'htmlall':'UTF-8'}</option>
                                {/foreach}
                            </select>
                        {elseif ($group.group_type == 'color')}
                            <ul id="color_to_pick_list" class="clearfix">
                                {assign var="default_colorpicker" value=""}
                                {foreach from=$group.attributes key=id_attribute item=group_attribute}
                                <li{if $group.default == $id_attribute} class="selected"{/if}>
                                    <a id="color_{$id_attribute|intval}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}" style="background: {$colors.$id_attribute.value};" title="{$colors.$id_attribute.name}" onclick="colorPickerClick(this);getProductAttribute();">
                                        {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
                                            <img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" />
                                        {/if}
                                    </a>
                                </li>
                                {if ($group.default == $id_attribute)}
                                    {$default_colorpicker = $id_attribute}
                                {/if}
                                {/foreach}
                            </ul>

                            <input type="hidden" class="color_pick_hidden" name="{$groupName}" value="{$default_colorpicker}" />
                        {elseif ($group.group_type == 'radio')}
                            <ul>
                                {foreach from=$group.attributes key=id_attribute item=group_attribute}
                                    <li>
                                        <input type="radio" class="attribute_radio" name="{$groupName}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} onclick="findCombination();getProductAttribute();" />
                                        <span>{$group_attribute|escape:'htmlall':'UTF-8'}</span>
                                    </li>
                                {/foreach}
                            </ul>
                        {/if}
                        </div>
                    </fieldset>
                {/if}
            {/foreach}

Это отобразит результаты в списке, как вы можете видеть. Чтобы он отображался в структуре таблицы, просто отредактируйте правильное содержимое group_type IF.

Я надеюсь, что это поможет вам немного.

BR's

person user2831723    schedule 25.01.2014