HomeController.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <?php
  2. namespace App\Http\Controllers;
  3. /*
  4. * 用户认证控制器
  5. */
  6. use App\Models\SiteAlbum;
  7. use App\Models\SiteAlbumFolder;
  8. use App\Models\SiteAlbumLog;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\Auth;
  11. use Illuminate\Support\Facades\Validator;
  12. class HomeController extends Controller
  13. {
  14. /*
  15. * 首页
  16. */
  17. public function index(Request $request)
  18. {
  19. return view('index',['foldersTree' => $this->foldersTree]);
  20. }
  21. /*
  22. * 分类列表
  23. */
  24. public function gallery(Request $request)
  25. {
  26. $folder_id = $request->input('fid',$this->getFoldersTreeFirstId());
  27. $father_id = $this->getFoldersTreeFatherId($folder_id);
  28. $folder = SiteAlbumFolder::find($folder_id);
  29. $albums = SiteAlbum::where('folder_id', $folder_id)->get();
  30. $albums = $albums->toArray();
  31. foreach ($albums as $key => $album) {
  32. $cover = json_decode($album['cover']);
  33. foreach ($cover as $k => $v) {
  34. if (strpos($v, 'http') === false && strpos($v, 'https') === false) {
  35. unset($cover[$k]);
  36. }
  37. }
  38. $cover = empty($cover) ? ['/static/images/noimg.jpg'] : $cover;
  39. $albums[$key]['cover'] = $cover;
  40. }
  41. return view('gallery',
  42. [
  43. 'foldersTree' => $this->foldersTree,
  44. 'folderName'=> $folder->title,
  45. 'folder_id' => $folder_id,
  46. 'father_id' => $father_id,
  47. 'albums' => $albums
  48. ]
  49. );
  50. }
  51. public function detail(Request $request) {
  52. $id = $request->input('id',0);
  53. $album = SiteAlbum::find($id);
  54. $bumFolder = SiteAlbumFolder::where('id', $album->folder_id)->first();
  55. $showTabs = [];
  56. if ($bumFolder) {
  57. $row = json_decode($bumFolder->show_tabs);
  58. foreach ($row as $key => $value) {
  59. $column = '';
  60. $title = '';
  61. switch ($value) {
  62. case '0':
  63. $column = 'cover';
  64. $title = '主页';
  65. break;
  66. case '1':
  67. $column = 'en_detail';
  68. $title = '英文详情';
  69. break;
  70. case '2':
  71. $column = 'cn_detail';
  72. $title = '中文详情';
  73. break;
  74. case '3':
  75. $column = 'video';
  76. $title = '视频';
  77. break;
  78. case '4':
  79. $column = 'poster';
  80. $title = '海报';
  81. break;
  82. case '5':
  83. $column = 'cert';
  84. $title = '证书';
  85. break;
  86. case '6':
  87. $column = 'pdf';
  88. $title = 'PDF';
  89. break;
  90. }
  91. $showTabs[$key] = ['value'=>$value,'column'=>$column, 'title'=>$title];
  92. }
  93. }
  94. return view('gallery-detail',[
  95. 'foldersTree' => $this->foldersTree,
  96. 'album' => $album->toArray(),
  97. 'showTabs' => $showTabs
  98. ]);
  99. }
  100. public function updateLog(Request $request)
  101. {
  102. $losgs = SiteAlbumLog::getFormattedLogs();
  103. return view('update_log',[
  104. 'foldersTree' => $this->foldersTree,
  105. 'logs' => $losgs
  106. ]);
  107. }
  108. /*
  109. * 更新日志
  110. */
  111. public function nextLog(Request $request)
  112. {
  113. $id = $request->input('id', 0);
  114. $log = SiteAlbumLog::getNextLogEntry($id);
  115. if ($log) {
  116. return response()->json(['status' => 'success', 'data' => $log]);
  117. } else {
  118. return response()->json(['status' => 'error', 'data' => []]);
  119. }
  120. }
  121. //获取分类树父ID
  122. private function getFoldersTreeFatherId($folder_id)
  123. {
  124. foreach ($this->foldersTree as $key => $value) {
  125. $father_id = $value['id'];
  126. if ($folder_id == $value['id']) {
  127. return $father_id;
  128. }
  129. foreach ($value['children'] as $k => $v) {
  130. if ($folder_id == $v['id']) {
  131. return $father_id;
  132. }
  133. foreach ($v['children'] as $kk => $vv) {
  134. if ($folder_id == $vv['id']) {
  135. return $father_id;
  136. }
  137. }
  138. }
  139. }
  140. return 0;
  141. }
  142. //返回分类树第一个无子节点的ID
  143. private function getFoldersTreeFirstId()
  144. {
  145. foreach ($this->foldersTree as $key => $value) {
  146. if (isset($value['children'])) {
  147. foreach ($value['children'] as $k => $v) {
  148. return $v['id'];
  149. }
  150. } else {
  151. return $value['id'];
  152. }
  153. }
  154. return 0;
  155. }
  156. }