Exemplo n.º 1
0
 public function publish()
 {
     $this->viewModel->set('pageTitle', TITLE . '');
     include 'class/arraytools.php';
     $title = trim($_POST['title']);
     $imdb = trim($_POST['imdbid']);
     $sql = "DELETE FROM queue WHERE imdb = :imdb";
     $param = array(':imdb' => $imdb);
     $this->db->select_query($sql, $param);
     $sql = "SELECT * FROM movies WHERE title = :title";
     $param = array(':title' => $title);
     $count = $this->db->select_query($sql, $param);
     if (sizeof($count) == 0) {
         $ar = new ArrayTools();
         $directors = $ar->pickvalues_to_array($_POST, 1, $_POST['NoDirectors']);
         $actors = $ar->pickvalues_to_array($_POST, 100, $_POST['NoActors']);
         $genres = $ar->pickvalues_to_array($_POST, 1000, $_POST['NoGenres']);
         //Hämta hem postern -- http://www.phpriot.com/articles/download-with-curl-and-php
         $path = $_POST['poster'];
         /*
         $fp = fopen('public/img/posters/' . $path, 'w');
         $ch = curl_init($url);
         curl_setopt($ch, CURLOPT_FILE, $fp);
         $data = curl_exec($ch);
         curl_close($ch);
         fclose($fp);
         *
         */
         $sql = "INSERT INTO movies (imdbid, title, plot, year, poster, type, sub, runtime, date, youtube)\n \t\t\t\t\tVALUES(:imdbid, :title, :plot, :year, :path, :type, :sub, :runtime, now(), :youtube)";
         $param = array(':imdbid' => $_POST['imdbid'], ':title' => strip_tags($_POST['title']), ':plot' => strip_tags($_POST['plot']), ':year' => strip_tags($_POST['year']), ':path' => $path, ':type' => strip_tags($_POST['type']), ':sub' => strip_tags($_POST['sub']), ':runtime' => strip_tags($_POST['runtime']), ':youtube' => strip_tags($_POST['youtube']));
         $this->db->select_query($sql, $param);
         $mid = $this->db->lastInsertId('id');
         $genreparam = array();
         foreach ($genres as $value) {
             $genreparam[] = array(':genre' => strip_tags($value));
         }
         $actorparam = array();
         foreach ($actors as $value) {
             $actorparam[] = array(':actor' => strip_tags($value));
         }
         $directorparam = array();
         foreach ($directors as $value) {
             $directorparam[] = array(':director' => strip_tags($value));
         }
         ########################################################
         #	Genres hanteras här								   #
         #	Ser till att mata in all data i databasen		   #
         ########################################################
         $sql = "SELECT * FROM genres\n\t\t\t\t\tWHERE genre = :genre";
         $genreids = $this->db->multi_query($sql, $genreparam);
         $genrenotindb = array_diff($ar->flatten_array($genreparam), $ar->flatten_array($genreids));
         $paraminsert = array();
         foreach ($genrenotindb as $value) {
             $paraminsert[] = array(':genre' => strip_tags($value));
         }
         $sql = "INSERT INTO genres (genre)\n\t\t\t\t\tVALUES(:genre)";
         $result = $this->db->multi_query($sql, $paraminsert);
         $genrefromdbid = $this->db->lastInsertId();
         $genreidstomovie = array();
         for ($i = $genrefromdbid - sizeof($result) + 1; $i <= $genrefromdbid; $i++) {
             $genresinmovies[] = array(':genreid' => (int) $i, ':movieid' => $mid);
         }
         $genreindb = $ar->unique_flat_array(array_diff($ar->flatten_array($genreids), $ar->flatten_array($genreparam)));
         foreach ($genreindb as $value) {
             $genresinmovies[] = array(':genreid' => (int) $value, ':movieid' => $mid);
         }
         $sql = "INSERT INTO genresinmovies (movie_id, genre_id)\n\t\t\t\t\tVALUES (:movieid,:genreid)";
         $this->db->multi_query($sql, $genresinmovies);
         ########################################################
         #	Actors hanteras här								   #
         #	Ser till att mata in all data i databasen		   #
         ########################################################
         $sql = "SELECT * FROM actors\n\t\t\t\t\tWHERE actor = :actor";
         $actorsinmovie = $this->db->multi_query($sql, $actorparam);
         $actorsinmovienotdb = array_diff($ar->flatten_array($actorparam), $ar->flatten_array($actorsinmovie));
         $actorinsertparam = array();
         foreach ($actorsinmovienotdb as $value) {
             $actorinsertparam[] = array(':actor' => strip_tags($value));
         }
         $sql = "INSERT INTO actors (actor)\n\t\t\t\t\tVALUES (:actor)";
         $this->db->multi_query($sql, $actorinsertparam);
         $actorid = $this->db->lastInsertId();
         $actorsparam = array();
         for ($i = $actorid - sizeof($actorinsertparam) + 1; $i <= $actorid; $i++) {
             $actorsparam[] = array(':actor' => (int) $i, ':movieid' => $mid);
         }
         $actorsinmoviedb = $ar->unique_flat_array(array_diff($ar->flatten_array($actorsinmovie), $ar->flatten_array($actorparam)));
         foreach ($actorsinmoviedb as $value) {
             $actorsparam[] = array(':actor' => (int) $value, ':movieid' => $mid);
         }
         $sql = "INSERT INTO actorsinmovies (movie_id,actor_id)\n\t\t\t\t\tVALUES (:movieid,:actor)";
         $this->db->multi_query($sql, $actorsparam);
         ########################################################
         #	Directors hanteras här							   #
         #	Ser till att mata in all data i databasen		   #
         ########################################################
         $sql = "SELECT * FROM directors\n\t\t\t\t\tWHERE director = :director";
         $directorsindb = $this->db->multi_query($sql, $directorparam);
         $directorsnotindb = array_diff($ar->flatten_array($directorparam), $ar->flatten_array($directorsindb));
         $directorsinsertdb = array();
         foreach ($directorsnotindb as $value) {
             $directorsinsertdb[] = array(':director' => strip_tags($value));
         }
         $sql = "INSERT INTO directors (director)\n\t\t\t\t\tVALUES (:director)";
         $this->db->multi_query($sql, $directorsinsertdb);
         $dib = $this->db->lastInsertId();
         $directorsparam = array();
         for ($i = $dib - sizeof($directorsinsertdb) + 1; $i <= $dib; $i++) {
             $directorsparam[] = array(':directorid' => (int) $i, ':movieid' => $mid);
         }
         $directorsindb = $ar->unique_flat_array(array_diff($ar->flatten_array($directorsindb), $ar->flatten_array($directorparam)));
         foreach ($directorsindb as $value) {
             $directorsparam[] = array(':directorid' => (int) $value, ':movieid' => $mid);
         }
         $sql = "INSERT INTO directorsinmovies (movie_id,director_id)\n\t\t\t\t\tVALUES (:movieid,:directorid)";
         $res = $this->db->multi_query($sql, $directorsparam);
         header('Location:' . URL . 'movie/display/' . $mid);
     } else {
         header('Location:' . URL . 'movie/display/' . $count[0][id]);
         break;
     }
     return $this->viewModel;
 }