Front.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace App\Http\Middleware\Prepare;
  3. use Closure;
  4. use Illuminate\Support\Facades\View;
  5. use Illuminate\Support\Facades\Cache;
  6. use App\Models\Menu;
  7. use App\Models\Visit;
  8. class Front
  9. {
  10. /**
  11. * Handle an incoming request.
  12. *
  13. * @param \Illuminate\Http\Request $request
  14. * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
  15. * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
  16. */
  17. public function handle($request, Closure $next)
  18. {
  19. // 사용자 메뉴 설정
  20. $menuModel = new Menu();
  21. $menuData = $menuModel->data();
  22. // 현재 메뉴 위치 조회
  23. if (!$ret = Cache::get($menuModel->cacheName_2)) {
  24. if ($menuData->rows > 0) {
  25. $ret = [
  26. 'topMenu' => [],
  27. 'subMenu' => []
  28. ];
  29. foreach ($menuData->list as $row) {
  30. if (DEVICE_TYPE == DEVICE_TYPE_1) { // PC
  31. if (!$row->desktop) {
  32. continue;
  33. }
  34. } else { // MO
  35. if (!$row->mobile) {
  36. continue;
  37. }
  38. }
  39. $row = $menuModel->findCategory($row->id);
  40. $row->hasChildren = $row->children->count();
  41. $row->isRoot = $row->isRoot();
  42. $row->isLeaf = $row->isLeaf();
  43. $row->url = url($row->link);
  44. $row->target = ($row->target ? '_blank' : '_self');
  45. $ret['topMenu'][$row->parent_id][] = $row;
  46. $ret['subMenu'][$row->id] = $row;
  47. }
  48. }
  49. Cache::put($menuModel->cacheName_2, $ret, $menuModel->cacheTime);
  50. }
  51. View::share('topMenu', $ret['topMenu']);
  52. View::share('subMenu', $ret['subMenu']);
  53. // 평점·후기 index 확인값
  54. View::share('isReviewIndex', $request->routeIs('movie.review.index'));
  55. $visit = new Visit();
  56. $visit->register($request); // 방문자 수 기록
  57. View::share('visitorTodayCount', $visit->todayCount()); // 오늘
  58. View::share('visitorYesterdayCount', $visit->yesterdayCount()); // 어제
  59. View::share('visitorTotalCount', $visit->totalCount()); // 누적
  60. unset($menuData, $ret, $visit, $menuModel);
  61. return $next($request);
  62. }
  63. }