Prechádzať zdrojové kódy

upgrade_illuminate/database_6.x

GeekQuerxy 4 rokov pred
rodič
commit
ae89ed76d3

+ 2 - 2
composer.json

@@ -9,8 +9,8 @@
         "cloudflare/sdk": "1.1.1",
         "esdeathlove/datatables": "^1.6",
         "firebase/php-jwt": "~3.0",
-        "illuminate/database": "5.2.*",
-        "illuminate/pagination": "5.2.*",
+        "illuminate/database": "6.*",
+        "illuminate/pagination": "6.*",
         "irazasyed/telegram-bot-sdk": "^2.0",
         "khanamiryan/qrcode-detector-decoder": "*",
         "league/omnipay": "^3",

+ 2 - 2
resources/views/material/admin/ticket/view.tpl

@@ -61,7 +61,7 @@
                         </div>
                     </div>
                 </div>
-                {$ticketset->render()}
+                {$render}
                 {foreach $ticketset as $ticket}
                     <div class="card">
                         <aside class="card-side pull-left" style="padding: 16px; text-align: center">
@@ -77,7 +77,7 @@
                         </div>
                     </div>
                 {/foreach}
-                {$ticketset->render()}
+                {$render}
                 {include file='dialog.tpl'}
         </div>
     </div>

+ 3 - 3
resources/views/material/user/bought.tpl

@@ -22,7 +22,7 @@
                         <div class="card-inner">
                             <div class="card-table">
                                 <div class="table-responsive table-user">
-                                    {$shops->render()}
+                                    {$render}
                                     <table class="table">
                                         <tr>
                                             <th>ID</th>
@@ -58,7 +58,7 @@
                                             </tr>
                                         {/foreach}
                                     </table>
-                                    {$shops->render()}
+                                    {$render}
                                 </div>
                             </div>
                         </div>
@@ -133,4 +133,4 @@
             delete_id($$.getElementById('delete_input').getAttribute('data-id'));
         });
     })
-</script>
+</script>

+ 3 - 3
resources/views/material/user/code.tpl

@@ -84,7 +84,7 @@
                             <div class="card-inner">
                                 <div class="card-table">
                                     <div class="table-responsive table-user">
-                                        {$codes->render()}
+                                        {$render}
                                         <table class="table table-hover">
                                             <tr>
                                                 <!--<th>ID</th> -->
@@ -127,7 +127,7 @@
                                                 {/if}
                                             {/foreach}
                                         </table>
-                                        {$codes->render()}
+                                        {$render}
                                     </div>
                                 </div>
                             </div>
@@ -184,4 +184,4 @@
     })
 </script>
 
-{include file='user/footer.tpl'}
+{include file='user/footer.tpl'}

+ 3 - 3
resources/views/material/user/detect_index.tpl

@@ -44,7 +44,7 @@
                         <div class="card-inner">
                             <div class="card-table">
                                 <div class="table-responsive table-user">
-                                    {$rules->render()}
+                                    {$render}
                                     <table class="table">
                                         <tr>
                                             <th>ID</th>
@@ -68,7 +68,7 @@
                                             </tr>
                                         {/foreach}
                                     </table>
-                                    {$rules->render()}
+                                    {$render}
                                 </div>
                             </div>
                         </div>
@@ -78,4 +78,4 @@
     </div>
 </main>
 
-{include file='user/footer.tpl'}
+{include file='user/footer.tpl'}

+ 3 - 3
resources/views/material/user/detect_log.tpl

@@ -22,7 +22,7 @@
                         <div class="card-inner">
                             <div class="card-table">
                                 <div class="table-responsive table-user">
-                                    {$logs->render()}
+                                    {$render}
                                     <table class="table">
                                         <tr>
                                             <th>ID</th>
@@ -56,7 +56,7 @@
                                             {/if}
                                         {/foreach}
                                     </table>
-                                    {$logs->render()}
+                                    {$render}
                                 </div>
                             </div>
                         </div>
@@ -66,4 +66,4 @@
     </div>
 </main>
 
-{include file='user/footer.tpl'}
+{include file='user/footer.tpl'}

+ 3 - 3
resources/views/material/user/donate.tpl

@@ -58,7 +58,7 @@
                             <div class="card-inner">
                                 <div class="card-table">
                                     <div class="table-responsive table-user">
-                                        {$codes->render()}
+                                        {$render}
                                         <table class="table table-hover">
                                             <tr>
                                                 <th>ID</th>
@@ -93,7 +93,7 @@
                                                 </tr>
                                             {/foreach}
                                         </table>
-                                        {$codes->render()}
+                                        {$render}
                                     </div>
                                 </div>
                             </div>
@@ -131,4 +131,4 @@
             })
         })
     })
-</script>
+</script>

+ 3 - 3
resources/views/material/user/invite.tpl

@@ -138,7 +138,7 @@
                             <div class="card-inner">
                                 <div class="card-table">
                                     <div class="table-responsive bgc-fix table-user">
-                                        {$paybacks->render()}
+                                        {$render}
                                         <table class="table">
                                             <tr>
                                                 <th>ID</th>
@@ -161,7 +161,7 @@
                                                 </tr>
                                             {/foreach}
                                         </table>
-                                        {$paybacks->render()}
+                                        {$render}
                                     </div>
                                 </div>
                             </div>
@@ -275,4 +275,4 @@
         $$.getElementById('msg').innerHTML = '已重置您的邀请链接,复制您的邀请链接发送给其他人!';
         window.setTimeout("location.href='/user/inviteurl_reset'", {$config['jump_delay']});
     });
-</script>
+</script>

+ 3 - 3
resources/views/material/user/relay/index.tpl

@@ -37,7 +37,7 @@
                         <div class="tab-content">
                             <div class="tab-pane fade active in" id="rule_table">
                                 <div class="table-responsive table-user">
-                                    {$rules->render()}
+                                    {$render}
                                     <table class="table table-user">
                                         <tr>
                                             <!--	<th>ID</th>   -->
@@ -74,7 +74,7 @@
                                             </tr>
                                         {/foreach}
                                     </table>
-                                    {$rules->render()}
+                                    {$render}
                                 </div>
                             </div>
                             <div class="tab-pane fade" id="link_table">
@@ -189,4 +189,4 @@
             delete_id();
         });
     })
-</script>
+</script>

+ 3 - 3
resources/views/material/user/subscribe_log.tpl

@@ -21,7 +21,7 @@
                         <div class="card-inner">
                             <div class="card-table">
                                 <div class="table-responsive table-user">
-                                    {$logs->render()}
+                                    {$render}
                                     <table class="table">
                                         <tr>
                                             <th>ID</th>
@@ -43,7 +43,7 @@
                                             </tr>
                                         {/foreach}
                                     </table>
-                                    {$logs->render()}
+                                    {$render}
                                 </div>
                             </div>
                         </div>
@@ -53,4 +53,4 @@
     </div>
 </main>
 
-{include file='user/footer.tpl'}
+{include file='user/footer.tpl'}

+ 3 - 3
resources/views/material/user/ticket.tpl

@@ -21,7 +21,7 @@
                         <div class="card-inner">
                             <div class="card-table">
                                 <div class="table-responsive table-user">
-                                    {$tickets->render()}
+                                    {$render}
                                     <table class="table">
                                         <tr>
                                             <!--  <th>ID</th>   -->
@@ -47,7 +47,7 @@
                                             </tr>
                                         {/foreach}
                                     </table>
-                                    {$tickets->render()}
+                                    {$render}
                                 </div>
                             </div>
                         </div>
@@ -71,4 +71,4 @@
     </div>
 </main>
 
-{include file='user/footer.tpl'}
+{include file='user/footer.tpl'}

+ 3 - 3
resources/views/material/user/ticket_view.tpl

@@ -37,7 +37,7 @@
                         </div>
                     </div>
                 </div>
-                {$ticketset->render()}
+                {$render}
                 {foreach $ticketset as $ticket}
                     <div class="card">
                         <aside class="card-side pull-left" style="padding: 16px; text-align: center">
@@ -53,7 +53,7 @@
                         </div>
                     </div>
                 {/foreach}
-                {$ticketset->render()}
+                {$render}
                 {include file='dialog.tpl'}
             </section>
         </div>
@@ -151,4 +151,4 @@
         });
         */
     });
-</script>
+</script>

+ 7 - 1
src/Controllers/Admin/TicketController.php

@@ -9,6 +9,7 @@ use App\Models\{
 };
 use App\Services\Auth;
 use App\Utils\DatatablesHelper;
+use App\Utils\Tools;
 use voku\helper\AntiXSS;
 use Ozdemir\Datatables\Datatables;
 
@@ -92,7 +93,12 @@ class TicketController extends AdminController
         $ticketset = Ticket::where('id', $id)->orWhere('rootid', '=', $id)->orderBy('datetime', 'desc')->paginate(5, ['*'], 'page', $pageNum);
         $ticketset->setPath('/admin/ticket/' . $id . '/view');
 
-        return $this->view()->assign('ticketset', $ticketset)->assign('id', $id)->display('admin/ticket/view.tpl');
+        $render = Tools::paginate_render($ticketset);
+        return $this->view()
+            ->assign('ticketset', $ticketset)
+            ->assign('id', $id)
+            ->assign('render', $render)
+            ->display('admin/ticket/view.tpl');
     }
 
     public function ajax($request, $response, $args)

+ 4 - 0
src/Controllers/User/RelayController.php

@@ -146,12 +146,16 @@ class RelayController extends UserController
             return $response->withJson($res);
         }
 
+        $logs->setPath('/user/relay');
+        $render = Tools::paginate_render($logs);
+
         return $response->write(
             $this->view()
                 ->assign('rules', $logs)
                 ->assign('relay_able_protocol_list', Config::getSupportParam('relay_able_protocol'))
                 ->assign('is_relay_able', $is_relay_able)
                 ->assign('pathset', $pathset)
+                ->assign('render', $render)
                 ->display('user/relay/index.tpl')
         );
     }

+ 5 - 1
src/Controllers/User/TicketController.php

@@ -7,6 +7,7 @@ use App\Models\{
     User,
     Ticket
 };
+use App\Utils\Tools;
 use voku\helper\AntiXSS;
 use Slim\Http\{
     Request,
@@ -41,10 +42,12 @@ class TicketController extends UserController
                 ]
             );
         }
+        $render = Tools::paginate_render($tickets);
 
         return $response->write(
             $this->view()
                 ->assign('tickets', $tickets)
+                ->assign('render', $render)
                 ->display('user/ticket.tpl')
         );
     }
@@ -308,11 +311,12 @@ class TicketController extends UserController
                 ]
             );
         }
-
+        $render = Tools::paginate_render($ticketset);
         return $response->write(
             $this->view()
                 ->assign('ticketset', $ticketset)
                 ->assign('id', $id)
+                ->assign('render', $render)
                 ->display('user/ticket_view.tpl')
         );
     }

+ 42 - 9
src/Controllers/UserController.php

@@ -126,7 +126,13 @@ class UserController extends BaseController
         $pageNum = $request->getQueryParams()['page'] ?? 1;
         $codes = Code::where('type', '<>', '-2')->where('userid', '=', $this->user->id)->orderBy('id', 'desc')->paginate(15, ['*'], 'page', $pageNum);
         $codes->setPath('/user/code');
-        return $this->view()->assign('codes', $codes)->assign('pmw', Payment::purchaseHTML())->assign('bitpay', BitPayment::purchaseHTML())->display('user/code.tpl');
+        $render = Tools::paginate_render($codes);
+        return $this->view()
+            ->assign('codes', $codes)
+            ->assign('pmw', Payment::purchaseHTML())
+            ->assign('bitpay', BitPayment::purchaseHTML())
+            ->assign('render', $render)
+            ->display('user/code.tpl');
     }
 
     public function orderDelete($request, $response, $args)
@@ -148,7 +154,13 @@ class UserController extends BaseController
             }
         )->where('isused', 1)->orderBy('id', 'desc')->paginate(15, ['*'], 'page', $pageNum);
         $codes->setPath('/user/donate');
-        return $this->view()->assign('codes', $codes)->assign('total_in', Code::where('isused', 1)->where('type', -1)->sum('number'))->assign('total_out', Code::where('isused', 1)->where('type', -2)->sum('number'))->display('user/donate.tpl');
+        $render = Tools::paginate_render($codes);
+        return $this->view()
+            ->assign('codes', $codes)
+            ->assign('total_in', Code::where('isused', 1)->where('type', -1)->sum('number'))
+            ->assign('total_out', Code::where('isused', 1)->where('type', -2)->sum('number'))
+            ->assign('render', $render)
+            ->display('user/donate.tpl');
     }
 
     public function isHTTPS()
@@ -521,8 +533,13 @@ class UserController extends BaseController
             $paybacks_sum = 0;
         }
         $paybacks->setPath('/user/invite');
-
-        return $this->view()->assign('code', $code)->assign('paybacks', $paybacks)->assign('paybacks_sum', $paybacks_sum)->display('user/invite.tpl');
+        $render = Tools::paginate_render($paybacks);
+        return $this->view()
+            ->assign('code', $code)
+            ->assign('paybacks', $paybacks)
+            ->assign('paybacks_sum', $paybacks_sum)
+            ->assign('render', $render)
+            ->display('user/invite.tpl');
     }
 
     public function buyInvite($request, $response, $args)
@@ -982,7 +999,11 @@ class UserController extends BaseController
             $res['shops'] = $shops;
             return $response->getBody()->write(json_encode($res));
         };
-        return $this->view()->assign('shops', $shops)->display('user/bought.tpl');
+        $render = Tools::paginate_render($shops);
+        return $this->view()
+            ->assign('shops', $shops)
+            ->assign('render', $render)
+            ->display('user/bought.tpl');
     }
 
     public function deleteBoughtGet($request, $response, $args)
@@ -1374,7 +1395,11 @@ class UserController extends BaseController
         }
 
         $logs->setPath('/user/detect');
-        return $this->view()->assign('rules', $logs)->display('user/detect_index.tpl');
+        $render = Tools::paginate_render($logs);
+        return $this->view()
+            ->assign('rules', $logs)
+            ->assign('render', $render)
+            ->display('user/detect_index.tpl');
     }
 
     public function detect_log($request, $response, $args)
@@ -1397,7 +1422,11 @@ class UserController extends BaseController
         }
 
         $logs->setPath('/user/detect/log');
-        return $this->view()->assign('logs', $logs)->display('user/detect_log.tpl');
+        $render = Tools::paginate_render($logs);
+        return $this->view()
+            ->assign('logs', $logs)
+            ->assign('render', $render)
+            ->display('user/detect_log.tpl');
     }
 
     public function disable($request, $response, $args)
@@ -1520,8 +1549,12 @@ class UserController extends BaseController
             $res['subscribeLog_keep_days'] = $_ENV['subscribeLog_keep_days'];
             return $this->echoJson($response, $res);
         }
-
-        return $this->view()->assign('logs', $logs)->assign('iplocation', $iplocation)->fetch('user/subscribe_log.tpl');
+        $render = Tools::paginate_render($logs);
+        return $this->view()
+            ->assign('logs', $logs)
+            ->assign('iplocation', $iplocation)
+            ->assign('render', $render)
+            ->fetch('user/subscribe_log.tpl');
     }
 
     /**

+ 72 - 0
src/Utils/Tools.php

@@ -926,4 +926,76 @@ class Tools
             $db->query('ALTER TABLE `' . $table . '` auto_increment = 1');
         }
     }
+
+    /**
+     * Eloquent 分页链接渲染
+     *
+     * @param mixed $data
+     */
+    public static function paginate_render($data): string
+    {
+        $totalPage   = $data->lastPage();
+        $currentPage = $data->currentPage();
+        $html = '<ul class="pagination">';
+        for ($i = 1; $i <= $totalPage; $i++) {
+            $active = '<li class="active"><span>' . $i . '</span></li>';
+            $page   = '<li><a href="' . $data->url($i) . '">' . $i . '</a></li>';
+            if ($i == 1) {
+                // 当前为第一页
+                if ($currentPage == $i) {
+                    $html .= '<li class="disabled"><span>«</span></li>';
+                    $html .= $active;
+                    if ($i == $totalPage) {
+                        $html .= '<li class="disabled"><span>»</span></li>';
+                        continue;
+                    }
+                } else {
+                    $html .= '<li><a href="' . $data->url($currentPage - 1) . '" rel="prev">«</a></li>';
+                    if ($currentPage > 4) {
+                        $html .= '<li><a href="javascript:void(0)">...</a></li>';
+                    } else {
+                        $html .= $page;
+                    }
+                }
+            }
+            if ($i == $totalPage) {
+                // 当前为最后一页
+                if ($currentPage == $i) {
+                    $html .= $active;
+                    $html .= '<li class="disabled"><span>»</span></li>';
+                } else {
+                    if ($totalPage - $currentPage > 3) {
+                        $html .= '<li><a href="javascript:void(0)">...</a></li>';
+                    } else {
+                        $html .= $page;
+                    }
+                    $html .= '<li><a href="' . $data->url($currentPage + 1) . '" rel="next">»</a></li>';
+                }
+            }
+            if ($i > 1 && $i < $totalPage) {
+                // 其他页
+                if ($currentPage == $i) {
+                    $html .= $active;
+                } else {
+                    if ($totalPage > 10) {
+                        if (
+                            ($currentPage > 4 && $i < $currentPage && $i > $currentPage - 3)
+                            ||
+                            ($totalPage - $currentPage > 4 && $i > $currentPage && $i < $currentPage + 4)
+                            ||
+                            ($currentPage <= 4 && $i <= 4)
+                            ||
+                            ($totalPage - $currentPage <= 4 && $i > $currentPage)
+                        ) {
+                            $html .= $page;
+                        }
+                        continue;
+                    }
+                    $html .= $page;
+                }
+            }
+        }
+        $html .= '</ul>';
+        return $html;
+    }
 }