1 Отредактировано Илья (13.02.2017 13:30:18)

Тема: Вывод сохраненных адресов пользователя [Решено]

Добрый день. Сейчас сохраненные адреса пользователя выводятся следующим образом
Адрес с id 1
Адрес с id 2
т.е. вывод начинается с первого id, подскажите как это переделать наоборот?
http://storage3.static.itmages.ru/i/16/0901/s_1472726156_9807491_872461d84f.png

Вывод адресов наоборот

Вставить в шаблон

{$address_list = array_reverse($address_list)}  

Выбор последнего адреса

Заменить

<td><input type="radio" name="use_addr" value="{$address.id}" id="adr_{$address.id}" {if $order.use_addr == $address.id}checked{/if}></td>

На это

<td><input type="radio" name="use_addr" value="{$address.id}" id="adr_{$address.id}" {if $address@last}checked{/if}></td>

Повысить оценку Понизить оценку

2

Re: Вывод сохраненных адресов пользователя [Решено]

Воспользуйтесь функцией array_reverse в шаблоне для списка адресов, это будет самым простым решением.

Повысить оценку +1 Понизить оценку

3

Re: Вывод сохраненных адресов пользователя [Решено]

checked ставиться на адрес с первым id, а хотелось бы переделать, что бы checked ставил на последний id, я могу это поправить в шаблоне?

Использовать следующие данные: 
        <table id="address-list">  
        {if $current_user->inGroup('supervisor')} 
            {$address_list = array_reverse($address_list)}          
            {foreach from=$address_list item=address}
                <tr class="addressItem">
                    <td><input type="radio" name="use_addr" value="{$address.id}" id="adr_{$address.id}" {if $order.use_addr == $address.id}checked{/if}></td>
                    <td><label for="adr_{$address.id}">{$address->getLineView()}</label>
                        <a href="{$router->getUrl('shop-front-checkout', ['Act' =>'deleteAddress', 'id' => $address.id])}" class="deleteAddress"/>&times;</a>
                    </td>
                </tr>
            {/foreach}
            {/if}
            <tr class="addressItem">
                <td><input type="radio" name="use_addr" value="0" id="use_addr_new" {if $order.use_addr == 0}checked{/if}></td>
                <td><label for="use_addr_new">Другие данные</label></td>
            </tr>                
        </table>

Повысить оценку Понизить оценку

Re: Вывод сохраненных адресов пользователя [Решено]

Надо воспользоваться конструкцей Smarty @last где вы проверяете на checked.

<table id="address-list">  
        {if $current_user->inGroup('supervisor')} 
            {$address_list = array_reverse($address_list)}          
            {foreach from=$address_list item=address}
                <tr class="addressItem">
                    <td><input type="radio" name="use_addr" value="{$address.id}" id="adr_{$address.id}" {if $address@last}checked{/if}></td>
                    <td><label for="adr_{$address.id}">{$address->getLineView()}</label>
                        <a href="{$router->getUrl('shop-front-checkout', ['Act' =>'deleteAddress', 'id' => $address.id])}" class="deleteAddress"/>&times;</a>
                    </td>
                </tr>
            {/foreach}
            {/if}
            <tr class="addressItem">
                <td><input type="radio" name="use_addr" value="0" id="use_addr_new" {if $order.use_addr == 0}checked{/if}></td>
                <td><label for="use_addr_new">Другие данные</label></td>
            </tr>                
        </table>

http://www.smarty.net/docs/en/language. … perty.last

5

Re: Вывод сохраненных адресов пользователя [Решено]

Закусило Александр, То что нужно, спасибо!

Повысить оценку Понизить оценку