예제 #1
0
 public static function store(array $movie)
 {
     $movie = array_only($movie, array('id', 'title', 'duration', 'originalTitle', 'productionYear', 'genres', 'images', 'rating', 'poster', 'ageRestriction'));
     $movie['original_title'] = $movie['originalTitle'];
     unset($movie['originalTitle']);
     $movie['production_year'] = $movie['productionYear'];
     unset($movie['productionYear']);
     $movie['age_restriction'] = $movie['ageRestriction'];
     unset($movie['ageRestriction']);
     if ($movie['genres'] != null) {
         $genre = [];
         foreach ($movie['genres'] as $key => $value) {
             $genre['genre_id'] = $value['id'];
             $genre['movie_id'] = $movie['id'];
             $mGenre = MoviesGenres::firstOrNew($genre);
             $mGenre->save();
         }
     }
     unset($movie['genres']);
     $images = json_encode($movie['images']);
     $movie['images'] = $images;
     $poster = json_encode($movie['poster']);
     $movie['poster'] = $poster;
     foreach ($movie as $key => $value) {
         if ($value == null) {
             unset($movie[$key]);
         }
     }
     if (Movies::find($movie['id']) == null) {
         $movies = Movies::updateOrCreate($movie);
     }
     //$movies->save();
 }
예제 #2
0
 /**
  * La méthode très simple qui envoie à la vue d'affichage
  * d'un film toutes les données correspondantes au film.
  * @param $id L'id du film à afficher
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public function show($id)
 {
     /*Le tout début est une petite astuce qui permet d'obtenir l'url réel d'une vidéo.
       En effet, dans la base de données, les url des vidéos sont des liens de redirection vers un lien
       (qui j'imagine doit être temporaire) réel de la vidéo
       Si l'on donne l'url de redirection au lecteur vidéo, tout marche bien SAUF si l'on souhaite avancer plus loin dans
       la vidéo (et uniquement sur les vidéos de plus de 10 min environ).
       L'astuce consiste donc à faire une requête via curl sur le lien pour obtenir le vrai url de la vidéo (qui
       lui marche sans soucis) ! */
     $curl = new cURL();
     $movie = Movies::find($id);
     $movie->ogv = $curl->get($movie->ogv)->getHeader('location');
     $topics = $movie->topics;
     // Le if qui suit est une personnalisation des recommandations pour les utilisateurs connectés
     if (Auth::guest()) {
         // SI l'utilisateur est un guest (non enregistré) on lui suggére des films du même auteur aléatoirement
         $suggestions = Movies::where('creator', 'LIKE', $movie->creator)->where('title', 'not like', $movie->title)->orderByRaw('RAND()')->take(5)->get();
     } else {
         $currentId = Auth::id();
         // On ajoute un à count pour chaque topic du film
         foreach ($topics as $topic) {
             $truc = UsersTopics::firstOrCreate(['user_id' => $currentId, 'topic_id' => $topic->id]);
             $truc->where('topic_id', '=', $topic->id)->increment('count', 1);
         }
         // On renvoie une liste de films qui sont parmis les genres préférés
         $maxTopic = User::find($currentId)->topics()->max('count');
         $suggestions = User::find($currentId)->topics()->where('count', $maxTopic)->first()->movies()->where('title', 'not like', $movie->title)->orderByRaw('RAND()')->take(5)->get();
     }
     return view('movies', compact('movie', 'topics', 'suggestions'));
 }
예제 #3
0
 public static function getMessage(Request $request)
 {
     $name = User::find($request->input('user_id'))->name;
     $my_name = $request->user()->name;
     $seance = Seances::find($request->input('seance'));
     $movie = Movies::find($seance->movie_id)->title;
     $cinema = Cinemas::find($seance->cinema_id)->title;
     $date = $seance->date;
     $time = $seance->time;
     $msg = [];
     $msg[0] = "Привет, " . $name . "! \n\r" . "Приглашаю тебя пойти со мной в кино на фильм \"" . $movie . "\" в кинотеатр " . $cinema . ". \n\r" . "Сеанс, на который предлагаю пойти: " . $date . " в " . $time . ". \n\r" . "Очень надеюсь на твой ответ, \n\r" . $my_name . ".";
     $msg[1] = "Доброго времени суток, " . $name . "! \n\r" . "Приглашаю Вас посетить кинотеатр " . $cinema . " и посмотреть фильм \"" . $movie . "\".\n\r" . "Сеанс, на который предлагаю пойти: " . $date . " в " . $time . ". \n\r" . "С нетерпением жду Вашего ответа, \n\r" . $my_name . ".";
     $fixnum = rand(0, 1);
     $array = array('message' => $msg[$fixnum], 'seance_id' => $request->input('seance'));
     return response()->json($array);
 }
예제 #4
0
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $randomSuggestions = Movies::orderByRaw('RAND()')->take(5)->get();
     $staffPicks = array(Movies::find(1), Movies::find(89), Movies::find(183), Movies::find(176), Movies::find(72));
     return view('welcome', compact('randomSuggestions', 'staffPicks'));
 }
예제 #5
0
 /**
  *
  * Copy existing cast from one movie to another
  * @return View
  *
  */
 public function duplicateCast()
 {
     if (!$this->isAdmin) {
         return view('auth.login');
     }
     $data = $data = Request::all();
     if (isset($data['id'])) {
         $existing_movie = Movies::find($data['id']);
         $new_movie_id = Session::get('movie_id');
         $new_cast = [];
         $movie = Movies::findorfail($new_movie_id);
         foreach ($existing_movie->cast as $cast) {
             $new_cast[] = ['movie_id' => $new_movie_id, 'person_id' => $cast->pivot->person_id, 'character' => $cast->pivot->character, 'star' => $cast->pivot->star];
         }
         $movie->cast()->sync($new_cast);
         return (string) view('movies.cast', compact('movie'));
     }
     return " ";
 }