search.blade.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. {{-- resources/views/library/search.blade.php
  2. 全站统一搜索结果页。
  3. 路由:/library/search?q=&type=&category=&lang=
  4. 原 wiki/search.blade.php 移至此处,@extends 路径更新,
  5. 搜索框改用 <x-ui.search-input>,空状态改用 <x-ui.empty-state>。
  6. --}}
  7. @extends('library.wiki.layouts.app')
  8. @section('title', $query ? '"' . $query . '" ' . __('library.search_results_title') . ' · WikiPāli' : __('library.search_title') . ' · WikiPāli')
  9. @section('wiki-content')
  10. {{-- 搜索框 --}}
  11. <div class="wiki-search-bar-wrap">
  12. <x-ui.search-input
  13. :value="$query"
  14. :placeholder="__('library.search_placeholder')"
  15. :autofocus="true"
  16. :hidden-fields="array_filter(['category' => $category !== 'all' ? $category : null])" />
  17. </div>
  18. {{-- 结果摘要 --}}
  19. <div class="wiki-search-summary">
  20. @if ($query)
  21. {{ __('library.searching') }} <strong>「{{ $query }}」</strong>
  22. @if ($pagination['total'] > 0)
  23. {{ __('library.results_found_prefix') }} <strong>{{ $pagination['total'] }}</strong> {{ __('library.results_found_suffix') }}
  24. @if ($pagination['last_page'] > 1)
  25. {{ __('library.page_prefix') }} {{ $pagination['current_page'] }} / {{ $pagination['last_page'] }} {{ __('library.page_suffix') }}
  26. @endif
  27. @else
  28. {{ __('library.no_results') }}
  29. @endif
  30. @endif
  31. </div>
  32. {{-- 结果列表 --}}
  33. @if (count($results) > 0)
  34. <div class="wiki-card wiki-search-results">
  35. @foreach ($results as $result)
  36. <x-wiki.search-result-card :result="$result" :lang="$lang" />
  37. @endforeach
  38. </div>
  39. {{-- 分页 --}}
  40. @if ($pagination['last_page'] > 1)
  41. <x-wiki.pagination
  42. :pagination="$pagination"
  43. routeName="library.search"
  44. :queryParams="array_filter([
  45. 'q' => $query,
  46. 'lang' => $lang,
  47. 'category' => $category !== 'all' ? $category : null,
  48. ])" />
  49. @endif
  50. @else
  51. <div class="wiki-card">
  52. <x-ui.empty-state
  53. :title="__('library.no_results')"
  54. :desc="__('library.try_other_keywords')" />
  55. </div>
  56. @endif
  57. @endsection
  58. @section('wiki-sidebar')
  59. {{-- 分类筛选 --}}
  60. @isset($filters)
  61. @foreach ($filters as $key=>$filter)
  62. <div class="wiki-sidebar-section">
  63. <div class="wiki-sidebar-title">{{ __('library.filter_by') }}{{ $key }}{{ __('library.filter') }}</div>
  64. <ul class="wiki-cat-list">
  65. <li>
  66. <a href="{{ route('library.search', ['q' => $query]) }}"
  67. class="{{ $category === 'all' ? 'active' : '' }}">
  68. {{ __('library.all') }}
  69. </a>
  70. </li>
  71. @foreach ($filter['buckets'] as $bucket)
  72. <li>
  73. <a href="{{ route('library.search', ['q' => $query, $key => $bucket['key']]) }}"
  74. class="{{ $category === $bucket['key'] ? 'active' : '' }}">
  75. {{ $bucket['key'] }}
  76. <span class="wiki-cat-count">{{ $bucket['doc_count'] }}</span>
  77. </a>
  78. </li>
  79. @endforeach
  80. </ul>
  81. </div>
  82. @endforeach
  83. @endisset
  84. {{-- 近似词条(无结果时显示) --}}
  85. @if (count($results) === 0 && $query)
  86. <div class="wiki-sidebar-section">
  87. <div class="wiki-sidebar-title">{{ __('library.did_you_mean') }}</div>
  88. <ul class="wiki-related-list">
  89. <li>
  90. <a href="{{ route('library.search', ['q' => substr($query, 0, -1), 'lang' => $lang]) }}">
  91. {{ substr($query, 0, -1) }}
  92. </a>
  93. </li>
  94. </ul>
  95. </div>
  96. @endif
  97. @endsection
  98. @section('wiki-sidebar-left')
  99. <div class="wiki-sidebar-section">
  100. <div class="wiki-sidebar-title">{{ __('library.browse_categories') }}</div>
  101. <ul class="wiki-cat-list">
  102. <li>
  103. <a href="{{ route('library.search', ['q' => $query]) }}"
  104. class="{{ $category === 'all' ? 'active' : '' }}">
  105. {{ __('library.all') }}
  106. </a>
  107. </li>
  108. @foreach ($types as $type)
  109. <li>
  110. <a href="{{ route('library.search', ['q' => $query,'resource_type' => $type['slug']]) }}"
  111. class="{{ (request('resource_type', 'all') === $type['slug']) ? 'active' : '' }}">
  112. {{ $type['label'] }}
  113. @if(isset($type['count']))
  114. <span class="wiki-cat-count">{{ $type['count'] }}</span>
  115. @endif
  116. </a>
  117. </li>
  118. @endforeach
  119. </ul>
  120. </div>
  121. @endsection