igb 4 місяців тому
батько
коміт
a9dd596e5e

+ 21 - 2
app/Http/Controllers/CollectionController.php

@@ -40,12 +40,30 @@ class CollectionController extends Controller
             ->first();
 
         if (!$tag) {
-            return response()->json(['message' => '标签未找到'], 404);
+
+            abort('404','tag not found.');
         }
 
 
         // 获取关联的 pages
-        $pages = $tag->pages()->get();
+
+        $perPage = 12;
+        $pages = $tag->pages($perPage); // 使用分页
+
+        // 创建分页数据结构
+        $paginator = [
+            'previous_page' => $pages->previousPageUrl() ? true : false, // 是否有上一页
+            'previous_page_url' => $pages->previousPageUrl(), // 上一页的 URL
+            'next_page' => $pages->nextPageUrl() ? true : false, // 是否有下一页
+            'next_page_url' => $pages->nextPageUrl(), // 下一页的 URL
+            'current_page' => $pages->currentPage(), // 当前页
+            'total_pages' => $pages->lastPage(), // 总页数
+            'pages' => range(1, $pages->lastPage()), // 页码数组
+            'page_url' => array_combine(
+                range(1, $pages->lastPage()),
+                array_map(fn($page) => $pages->url($page), range(1, $pages->lastPage()))
+            ), // 每页的 URL
+        ];
 
 
         // 构建导航数据 开始
@@ -68,6 +86,7 @@ class CollectionController extends Controller
         $output = LiquidRenderer::render('collection_list.liquid', [
             'tag' => $tag,
             'pages' => $pages,
+            'paginator' => $paginator, // 分页信息
             'breadcrumbs' => $breadcrumbs,
         ]);
 

+ 2 - 1
app/Http/Controllers/ProductController.php

@@ -47,7 +47,8 @@ class ProductController extends Controller
             ->where('dist_id', getDistId())
             ->where('enabled', 1)
             ->with('images') // Eager load images
-            ->orderBy('is_pinned', 'desc') // 按 is_pinned 降序排序
+            ->orderBy('order', 'desc') // 按 order 字段降序排序
+            ->orderBy('id', 'desc') // 按 id 降序排序
             ->paginate(12);
 
         // 创建分页数据结构

+ 2 - 2
app/Http/Controllers/VideoController.php

@@ -42,8 +42,8 @@ class VideoController extends Controller
         $videos = DistVideo::where('category_id', $category->id)
             ->where('dist_id', getDistId())
             ->where('enabled', 1)
-
-            ->orderBy('order', 'desc') // 按 is_pinned 降序排序
+            ->orderBy('order', 'desc')
+            ->orderBy('id', 'desc')
             ->paginate(12);
 
 

+ 3 - 1
app/Models/DistProduct.php

@@ -58,7 +58,9 @@ class DistProduct extends Model
         // 包括关联数据(图片和分类)
         $query->with(['images', 'distProductCategory']);
 
-        $query->orderBy('is_pinned', 'desc');
+        // 添加排序逻辑:按 is_pinned 降序,再按 order 降序,再按 id 降序
+        $query->orderBy('order', 'desc')
+            ->orderBy('id', 'desc');
         // 如果提供了限制数量,限制查询结果
         if ($limit) {
             return $query->limit($limit)->get();

+ 5 - 2
app/Models/SitePageTag.php

@@ -10,13 +10,16 @@ class SitePageTag extends Model
     use HasFactory;
     protected $table = 'site_pages_tag';
 
-    public function pages()
+    public function pages($perPage = 10)
     {
         return $this->belongsToMany(
             SitePage::class,
             'site_pages_tag_relationship',
             'tag_id',
             'pages_id'
-        )->where('status', 1);
+        )->where('status', 1)
+            ->orderBy('post_date', 'desc')
+            ->orderBy('id', 'desc')
+            ->paginate($perPage); // 支持分页
     }
 }

+ 40 - 0
resources/views/liquid_src/1/TechVista/collection_list.liquid

@@ -109,6 +109,46 @@
 
                             </div>
                         </div>
+                        <div class="pt-5">
+                            <nav aria-label="Product pagination">
+                                <ul class="pagination pagination--style-2 justify-content-center">
+                                    <!-- Previous Page Link -->
+                                    {% if paginator.previous_page %}
+                                        <li class="page-item">
+                                            <a class="page-link" href="{{ paginator.previous_page_url }}" tabindex="-1">Previous</a>
+                                        </li>
+                                    {% else %}
+                                        <li class="page-item disabled">
+                                            <a class="page-link" href="#" tabindex="-1">Previous</a>
+                                        </li>
+                                    {% endif %}
+
+                                    <!-- Pagination Links -->
+                                    {% for page in paginator.pages %}
+                                        {% if page == paginator.current_page %}
+                                            <li class="page-item active">
+                                                <span class="page-link">{{ page }}</span>
+                                            </li>
+                                        {% else %}
+                                            <li class="page-item">
+                                                <a class="page-link" href="{{ paginator.page_url[page] }}">{{ page }}</a>
+                                            </li>
+                                        {% endif %}
+                                    {% endfor %}
+
+                                    <!-- Next Page Link -->
+                                    {% if paginator.next_page %}
+                                        <li class="page-item">
+                                            <a class="page-link" href="{{ paginator.next_page_url }}">Next</a>
+                                        </li>
+                                    {% else %}
+                                        <li class="page-item disabled">
+                                            <a class="page-link" href="#">Next</a>
+                                        </li>
+                                    {% endif %}
+                                </ul>
+                            </nav>
+                        </div>
                     </section>    <!-- FOOTER -->
                     {% include '_footer.liquid' %}
                 </div>

+ 1 - 1
resources/views/liquid_src/1/TechVista/version.liquid

@@ -1 +1 @@
-<!-- update date 2024-12-11 12:33 -->
+<!-- update date 2024-12-12 11:45 -->