====== Шаг8. Работа с заказами ====== Итак, наши пользователи могут отсылать заказы. Теперь наша задача - расширить панель управления так, чтобы администраторы могли просматривать список заказов, а пользователи - просматривать сделанные ими заказы. Администратор должен иметь возможность: * просмотреть все заказы, * просмотреть только заказы с определенным статусом (новый, в обработке, выполненный) * просмотреть информацию по заказу * сменить статус заказа ===== Просмотр и изменение статусов заказов администраторами ===== ==== Шаблон admin_order/display.phtml ==== При помощи этого шаблона мы будет выводить список заказов. Страница будет также содержать небольшую форму, которая позволит указать статус заказов, которые нужно отобразить. Для вывода списка заказов, мы будем использовать статический find()-метод Order :: findForAdmin(), который мы добавим чуть позже. В принпипе, аналогичную задачу мы решали при выводе списка товаров на фронтальной части для покупателей с возможностью поиска и фильтрации. Файл shop/template/admin_order/display.phtml: title = 'Orders'; ?> {{wrap with="admin_page_layout.phtml" in="content_zone"}}

{{form method="GET" id='filter_form'}} Filter : {{select id='status' name='status' options="$statuses"}} {{option value='' prepend='true'}}Show all{{/option}}{{/select}}
{{/form}}

{{include file="_admin/selectors.phtml"/}} {{include file="_admin_object/actions.phtml"/}} {{include file='_admin/pager.phtml' items="$#orders"/}}
{{list using="$#orders" parity="$parity"}}
{{list:item}} {{/list:item}} {{list:empty}}
We have no orders yet.
{{/list:empty}}
User Date Status Summ Action
{$item.user.login} {$item.date|date:"d.m.Y"} {$item.status_name} {$item.summ} {{apply template="object_action" action="details" title="Details" icon="zoom" item="{$item}"/}} {{apply template="object_action_edit" item="{$item}"/}} {{apply template="object_action_delete" item="{$item}"/}}
{{/list}}
{{/wrap}}
Обратите внимание вот на эти две строки: Filter : {{select id='status' name='status' options="$statuses"}}{{option value='' prepend='true'}}Show all{{/option}}{{/select}} При помощи php-вставки мы передаем набор данных в тег [[limb3:ru:packages:macro:tags:form_tags:select_tag| {{select}}]]. Этот тег используется для заполнения списка опций тега