список заказов в личном кабинете по странично или с подгрузкой

Есть простое решение выводить огромный список заказов в личном кабинете постранично или с подгрузкой, как товары в списке?

или плагин готовый есть?

1 ответ

  • 0
    Эрик Webasyst 12 марта 2018 11:08 #

    Если вам не удастся найти подходящее решение среди доступных в магазине Webasyst, вы можете заказать его у партнёров Webasyst.

    • -1
      Петр Петр 12 марта 2018 13:26 #

      спасибо я помню

      • +1

        Не уверен, но думаю там все достаточно просто. Посмотреть как сделано в товарах магазина и сделать по аналогии, но с заказами.

        • +1
          Петр Петр 12 марта 2018 15:10 #

          я сейчас пытаюсь разобраться как работает в аналогии вывод товаров, буду пытаться сам сделать

          думаю можно хелпером подхватывать массив заказов в шаблоне, а потом выдавать как нужно с разбиением по страничкам

          • +2

            Ну если совсем затык будет - свистните, гляну как в Хабе разбивал топик на страницы, правда давно дело было, но работает.

            • +1
              Петр Петр 12 марта 2018 15:36 #

              хорошо, вообще надо чтобы кто нибудь запилил красивый плагин там, с настройками для вывода заказов, вроде ничего такого нет, путевого

            • +1
              Петр Петр 12 марта 2018 16:44 #

              вот еще подумал, если заказов много значит нужен какой нибудь поиск по заказам, думаю это можно в один плагин запихнуть


            • +1
              Петр Петр 13 марта 2018 17:39 #

              в общем плагин не нужен, я решил так

              {$orders_on_page = 10} количество заказов
              {$page_count = ceil(count($orders)/$orders_on_page)} <!-- количество страниц -->
              {$curr_page = $smarty.get.page-1}
              {if $curr_page < 0}{$curr_page = 0}{/if}
              
              {$in = $orders_on_page*$curr_page}{$in} <!-- начало вывода заказов по id -->
              
              {$inin = $in+$orders_on_page}{$inin} <!-- конец вывода заказов по id -->
              <br>
              {foreach $orders as $oid => $o}
              {if ($oid > $in AND $oid <= $inin)}
              {$oid}-{$o.id} здесь выводим заказы
              {/if}
              {/foreach}
              
              <div class="pagination">
              {wa_pagination total=$page_count attrs=['class' => "menu-h"]}
              </div>

              красота, всем спасибо

              но поиск бы не помешал

              • +1
                Петр Петр 13 марта 2018 17:56 #

                нет нужно {if ($oid > $in AND $oid <= $inin)} заменить на {if ($oid >= $in AND $oid < $inin)}

                там заказы начинаются с 0 ключа

              • +1
                Максим Максим 9 января 2019 11:03 #

                Петр, если вам плагин уже не нужен, то другим он точно понадобится!

                В каком файле использовать этот код? Как вы реализовали-то постраничную навигацию для заказов? Может опишите решение для остальных?

                • +1
                  Петр Петр 9 января 2019 12:21 #

                  скорее всего так и будет, сам список всех заказов находиться, на витрине в личном кабинете шаблон my.orders.html в бывшем дефолт 2

                  сейчас у нас шаблон сильно переделан, постраничную навигацию реализовал с помощью встроенной функции wa_pagination

                  вот весь блок со списком заказов 

                  <div id="page">
                  {$orders_on_page = 25}
                  {$page_count = ceil(count($orders)/$orders_on_page)} 
                  {$curr_page = $smarty.get.page-1}
                  {if $curr_page < 0}{$curr_page = 0}{/if}
                  {$in = $orders_on_page*$curr_page}
                  {$inin = $in+$orders_on_page}
                  <div class="pagination">
                  {wa_pagination total=$page_count attrs=['class' => "menu-pa"]}
                  </div>
                  <table class="table order">
                  	<tr class="tblprdt">
                  		<td class="align-center">Номер</td>
                  		<td class="align-center">Состояние</td>
                  		<td class="align-center">Наименование</td>
                  		{*<td class="align-center"></td>*}
                  		{*<td class="align-center"></td>*}
                  		<td class="align-center">Дата заказа</td>
                  	</tr>
                  {foreach $orders as $oid => $o}
                  {if ($oid >= $in AND $oid < $inin)}
                      <tr id="order-{$o.id}">
                          <td class="nowrap">
                              <a href="{$o.url}" class="bold">
                                  {$o.id_str}
                              </a>
                          </td>
                          <td class="nowrap">
                              <span class="nowrap order-status" style="{$o.state->getStyle(1)}">
                                  {$o.state->getName()}
                              </span>
                          </td>
                          <td class="name">
                              {if !empty($o.items)}
                                  {foreach $o.items as $i}
                                      {$i.name|escape} <span>x {$i.quantity}</span><br />
                                  {/foreach}
                              {/if}
                          </td>
                          {*<td>
                              {if $o.shipping_name}
                                  {$o.shipping_name|escape}
                              {else}
                                  &nbsp;
                              {/if}
                          </td>*}
                          {*<td>
                              {if $o.payment_name}
                                  {$o.payment_name|escape}
                              {else}
                                  &nbsp;
                              {/if}
                          </td>*}
                          <td class="nowrap">
                              <span>{$o.create_datetime|wa_datetime:'d-m'}</span>&nbsp;<span class="gray">{$o.create_datetime|wa_datetime:'H:i'}</span>
                          </td>
                      </tr>
                  {/if}
                  {foreachelse}
                  	<tr class="no-border">
                          <td>[`You have no order history yet.`]</td>
                    	</tr>
                  {/foreach}
                  </table>
                  
                  <div class="pagination">
                  {wa_pagination total=$page_count attrs=['class' => "menu-pa"]}
                  </div>
                  
                  </div>

                  Shop-Script 6, темя своя переделана


                  еще что-то подобное нужно реализовать в  административной части

                  когда выбираешь пользователя в магазине в покупатели, там тоже сразу весь список заказов выходит с тормозами

                  не знаю сделали ли это в 7 или 8 версии ШС

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите