PageRenderTime 52ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/app/Http/Controllers/PeopleController.php

https://gitlab.com/macitsimsek/fastsubtitle
PHP | 167 lines | 155 code | 7 blank | 5 comment | 15 complexity | 49c1c70f5731b640be7dd2e4ffb6b8ae MD5 | raw file
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Functions;
  4. use App\People;
  5. use App\VideoProperty;
  6. use Illuminate\Http\Request;
  7. use App\Activity;
  8. use App\User;
  9. use Carbon\Carbon;
  10. use Illuminate\Support\Facades\Cookie;
  11. use Illuminate\Support\Facades\DB;
  12. use Illuminate\Support\Facades\Session;
  13. use Illuminate\Support\Facades\Validator;
  14. use Illuminate\Support\Facades\Input;
  15. class PeopleController extends Controller
  16. {
  17. /**
  18. * @param $personName
  19. * @param null $personID
  20. * @return $this|\Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View
  21. */
  22. public function showPeople($personName, $personID=null){
  23. if($personName=='last' && $personID==null){
  24. $users = DB::table('people')->orderBy('personID', 'DESC')->paginate(10);
  25. return view('backend.people.lastPeople',['lastPeople'=>$users,'peopleImagePath'=>$this->peopleImagePath]);
  26. }elseif($personName=='last' && $personID!=null) {
  27. return redirect('/');
  28. }else{
  29. $validator = Validator::make(
  30. ['personId' => $personID],
  31. ['personId' => 'required|numeric|digits_between:1,10']);
  32. if($validator->fails()){
  33. return redirect('/');
  34. }else{
  35. $person = People::where(['personID' => $personID]);
  36. $datas = $person->first();
  37. if ($datas) {
  38. $personVideos = DB::table('people')
  39. ->join('videopeople', 'videopeople.personID', '=', 'people.personID')
  40. ->join('videoproperties', 'videopeople.videoID', '=', 'videoproperties.videoID')
  41. ->select('videoproperties.videoID', 'videoproperties.name', 'videoproperties.type',
  42. 'videoproperties.turkishName', 'videoproperties.picture','videopeople.job')
  43. ->where('people.personID','=',$datas['personID'])
  44. ->orderBy('videoproperties.videoID', 'DESC')
  45. ->paginate(3);
  46. $popularSeries = VideoProperty::select('videoID', 'name', 'view', 'picture')
  47. ->where('type','serie')
  48. ->orderBy('view', 'DESC')
  49. ->limit(5)
  50. ->get();
  51. $popularMovies = VideoProperty::select('videoID', 'name', 'view', 'picture')
  52. ->where('type','movie')
  53. ->orderBy('view', 'DESC')
  54. ->limit(5)
  55. ->get();
  56. $popularAnimes = VideoProperty::select('videoID', 'name', 'view', 'picture')
  57. ->where('type','anime')
  58. ->orderBy('view', 'DESC')
  59. ->limit(5)
  60. ->get();
  61. $lastVideos = VideoProperty::select('videoID', 'name', 'view', 'picture')
  62. ->orderBy(DB::raw('RAND()'))
  63. ->where('view','<',50)
  64. ->limit(5)
  65. ->get();
  66. if(!Cookie::has('person-'.$datas['personID'])){
  67. $datas->view++;
  68. $datas->save();
  69. $view = view('backend.people.person',[
  70. 'personVideos' => $personVideos,
  71. 'title' => $datas['personName'],
  72. 'person' => $datas,
  73. 'peopleImagePath' => $this->peopleImagePath,
  74. 'videoImagePath' => $this->videoImagePath,
  75. 'profilImagePath' => $this->profilImagePath,
  76. 'popularSeries' => $popularSeries,
  77. 'popularMovies' => $popularMovies,
  78. 'popularAnimes' => $popularAnimes,
  79. 'lastVideos' => $lastVideos]);
  80. $cookie = Cookie::make('person-'.$datas['personID'], '1', 60*24);
  81. return response()->make($view)->withCookie($cookie);
  82. }else{
  83. return view('backend.people.person',[
  84. 'personVideos' => $personVideos,
  85. 'title' => $datas['personName'],
  86. 'person' => $datas,
  87. 'peopleImagePath' => $this->peopleImagePath,
  88. 'videoImagePath' => $this->videoImagePath,
  89. 'profilImagePath' => $this->profilImagePath,
  90. 'popularSeries' => $popularSeries,
  91. 'popularMovies' => $popularMovies,
  92. 'popularAnimes' => $popularAnimes,
  93. 'lastVideos' => $lastVideos]);
  94. }
  95. }else{
  96. return redirect('/');
  97. }
  98. }
  99. }
  100. }
  101. public function peopleEdit($personName,$personID){
  102. $peopleImagePath = 'backend/peopleImages/';
  103. if($personName!=null && $personID!=null) {
  104. $users = User::where(['username' => Session::get('user')]);
  105. $datas = $users->first();
  106. if ($datas) {
  107. $person = People::findOrFail($personID);
  108. $title=$person->personName;
  109. return view('backend.people.editPerson',compact('person','title','peopleImagePath'));
  110. }else{
  111. $title = 'Login';
  112. $page = 'login';
  113. $response = 'Üye Girişi Yapınız';
  114. return view('backend.user.login',['page'=>$page,'title'=>$title,'response'=>$response]);
  115. }
  116. }else{
  117. return redirect('/');
  118. }
  119. }
  120. public function update($personID,Request $request){
  121. $users = User::where(['username' => Session::get('user')]);
  122. $datas = $users->first();
  123. if ($datas) {
  124. $validator = Validator::make(Input::only(['personName','content']),
  125. [ 'personName' => 'required|max:255|unique:people,personName,'.$personID.',personID',
  126. 'content' => 'required'
  127. ]);
  128. if($validator->fails())return redirect()->back()->withErrors($validator->errors()->all());
  129. $person = People::findOrFail($personID);
  130. if($person){
  131. if(Input::get('personPicture')!=$person->personPicture){
  132. $validatorUrl =Validator::make(Input::only(['personPicture']),
  133. [ 'personPicture' => 'required|url'
  134. ]);
  135. if($validatorUrl->fails()) return redirect()->back()->withErrors($validatorUrl->errors()->all());
  136. $newPictureLink=Functions::downloadPicture(Input::get('personPicture'),Input::get('personName'),'peopleImages');
  137. Input::merge(array('personPicture' => $newPictureLink));
  138. }
  139. $person->fill(Input::only(['personName', 'personPicture', 'content']));
  140. if(!$person->isDirty()) return redirect('/people/' . Functions::beGoodSeo($person->personName) . '/' . $person->personID);
  141. $person->save();
  142. $users->update(['ipAdress' => $request->ip()]);
  143. $activity = new Activity([
  144. 'userID' => $datas['userID'],
  145. 'committedID' => $person->personID,
  146. 'activityName' => 'people_update',
  147. 'activityDate' => Carbon::now()]);
  148. $activity->save();
  149. return redirect('/people/' . Functions::beGoodSeo($person->personName) . '/' . $person->personID);
  150. }else{
  151. return redirect('/');
  152. }
  153. }else{
  154. $title = 'Login';
  155. $page = 'login';
  156. $response = 'Üye Girişi Yapınız';
  157. return view('backend.user.login',['page'=>$page,'title'=>$title,'response'=>$response]);
  158. }
  159. }
  160. }