updates
This commit is contained in:
		
							
								
								
									
										10
									
								
								app/controllers/FilmController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								app/controllers/FilmController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Controller für all den Filmkram
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @author Daniel
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
							
								
								
									
										76
									
								
								app/database/migrations/2013_09_07_032049_create_tables.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								app/database/migrations/2013_09_07_032049_create_tables.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Illuminate\Database\Migrations\Migration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CreateTables extends Migration {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Run the migrations.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @return void
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function up()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							Schema::create('users', function($table) {
 | 
				
			||||||
 | 
								$table->increments('id');
 | 
				
			||||||
 | 
								$table->string('name');
 | 
				
			||||||
 | 
								$table->string('email');
 | 
				
			||||||
 | 
								$table->string('password');
 | 
				
			||||||
 | 
								$table->boolean('admin');
 | 
				
			||||||
 | 
								$table->text('settings');
 | 
				
			||||||
 | 
								$table->timestamps();
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Schema::create('films', function($table) {
 | 
				
			||||||
 | 
								$table->increments('id');
 | 
				
			||||||
 | 
								$table->string('name');
 | 
				
			||||||
 | 
								$table->bigInteger('tvdbid');
 | 
				
			||||||
 | 
								$table->date('vorgeschlagen');
 | 
				
			||||||
 | 
								$table->date('gesehen')->nullable();
 | 
				
			||||||
 | 
								$table->integer('user');
 | 
				
			||||||
 | 
								$table->timestamps();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Schema::create('comments', function($table) {
 | 
				
			||||||
 | 
								$table->increments('id');
 | 
				
			||||||
 | 
								$table->integer('user');
 | 
				
			||||||
 | 
								$table->string('headline');
 | 
				
			||||||
 | 
								$table->text('text');
 | 
				
			||||||
 | 
								$table->integer('film');
 | 
				
			||||||
 | 
								$table->integer('event');
 | 
				
			||||||
 | 
								$table->timestamps();
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Schema::create('events', function($table) {
 | 
				
			||||||
 | 
								$table->increments('id');
 | 
				
			||||||
 | 
								$table->string('name');
 | 
				
			||||||
 | 
								$table->date('datum');
 | 
				
			||||||
 | 
								$table->text('beschreibung');
 | 
				
			||||||
 | 
								$table->timestamps();
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Schema::create('votes', function($table) {
 | 
				
			||||||
 | 
								$table->increments('id');
 | 
				
			||||||
 | 
								$table->integer('film');
 | 
				
			||||||
 | 
								$table->integer('user');
 | 
				
			||||||
 | 
								$table->boolean('stimme');
 | 
				
			||||||
 | 
								$table->timestamps();
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Reverse the migrations.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @return void
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function down()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							Schema::drop('users');
 | 
				
			||||||
 | 
							Schema::drop('films');
 | 
				
			||||||
 | 
							Schema::drop('comments');
 | 
				
			||||||
 | 
							Schema::drop('events');
 | 
				
			||||||
 | 
							Schema::drop('votes');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -11,7 +11,14 @@ class DatabaseSeeder extends Seeder {
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		Eloquent::unguard();
 | 
							Eloquent::unguard();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// $this->call('UserTableSeeder');
 | 
							User::create(array('name' => 'Daniel', 'email' => 'daniel@ascarion.net', 'admin' => true, 'password' => Hash::make('natrium')));
 | 
				
			||||||
 | 
							Film::create(array('name' => 'Star Trek - Der Film', 'tvdbid' => 152, 'vorgeschlagen' => '2012-12-24', 'user' => 1));
 | 
				
			||||||
 | 
							Film::create(array('name' => 'James Bond 007 - Moonraker - Streng Geheim', 'tvdbid' => 698, 'vorgeschlagen' => '2012-08-17', 'gesehen' => '2012-11-30', 'user' => 1));
 | 
				
			||||||
 | 
							Comment::create(array('user' => 1, 'text' => 'Das ist ein toller Film!!', 'headline' => 'Überschrift', 'film' => 1));
 | 
				
			||||||
 | 
							Comment::create(array('user' => 1, 'text' => 'Ein weiterer Kommentar!!', 'headline' => 'Überschrift', 'film' => 1));
 | 
				
			||||||
 | 
							Comment::create(array('user' => 1, 'text' => 'Der Film war schlecht!!', 'headline' => 'Überschrift', 'film' => 2));
 | 
				
			||||||
 | 
							Comment::create(array('user' => 1, 'text' => 'So richtig!!', 'headline' => 'Überschrift', 'film' => 2));
 | 
				
			||||||
 | 
							Vote::create(array('user' => 1, 'film' => 1, 'stimme' => true));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										956
									
								
								app/libraries/tmdb.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										956
									
								
								app/libraries/tmdb.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,956 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * TMDb PHP API class - API 'themoviedb.org'
 | 
				
			||||||
 | 
					 * API Documentation: http://help.themoviedb.org/kb/api/
 | 
				
			||||||
 | 
					 * Documentation and usage in README file
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Jonas De Smet - Glamorous
 | 
				
			||||||
 | 
					 * @since 09.11.2009
 | 
				
			||||||
 | 
					 * @date 16.11.2012
 | 
				
			||||||
 | 
					 * @copyright Jonas De Smet - Glamorous
 | 
				
			||||||
 | 
					 * @version 1.5.1
 | 
				
			||||||
 | 
					 * @license BSD http://www.opensource.org/licenses/bsd-license.php
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TMDb
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						const POST = 'post';
 | 
				
			||||||
 | 
						const GET = 'get';
 | 
				
			||||||
 | 
						const HEAD = 'head';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const IMAGE_BACKDROP = 'backdrop';
 | 
				
			||||||
 | 
						const IMAGE_POSTER = 'poster';
 | 
				
			||||||
 | 
						const IMAGE_PROFILE = 'profile';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const API_VERSION = '3';
 | 
				
			||||||
 | 
						const API_URL = 'api.themoviedb.org';
 | 
				
			||||||
 | 
						const API_SCHEME = 'http://';
 | 
				
			||||||
 | 
						const API_SCHEME_SSL = 'https://';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const VERSION = '1.5.0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * The API-key
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @var string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						protected $_apikey;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * The default language
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @var string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						protected $_lang;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * The TMDb-config
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @var object
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						protected $_config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Stored Session Id
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @var string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						protected $_session_id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * API Scheme
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @var string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						protected $_apischeme;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Default constructor
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $apikey			API-key recieved from TMDb
 | 
				
			||||||
 | 
						 * @param string $defaultLang		Default language (ISO 3166-1)
 | 
				
			||||||
 | 
						 * @param boolean $config			Load the TMDb-config
 | 
				
			||||||
 | 
						 * @return void
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function __construct($apikey, $default_lang = 'en', $config = FALSE, $scheme = TMDb::API_SCHEME)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$this->_apikey = (string) $apikey;
 | 
				
			||||||
 | 
							$this->_apischeme = ($scheme == TMDb::API_SCHEME) ? TMDb::API_SCHEME : TMDb::API_SCHEME_SSL;
 | 
				
			||||||
 | 
							$this->setLang($default_lang);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if($config === TRUE)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								$this->getConfiguration();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Search a movie by querystring
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $text				Query to search after in the TMDb database
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param bool $adult				Whether of not to include adult movies in the results (default FALSE)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function searchMovie($query, $page = 1, $adult = FALSE, $year = NULL, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'query' => $query,
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
								'include_adult' => (bool) $adult,
 | 
				
			||||||
 | 
								'year' => $year,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('search/movie', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Search a person by querystring
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $text				Query to search after in the TMDb database
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param bool $adult				Whether of not to include adult movies in the results (default FALSE)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function searchPerson($query, $page = 1, $adult = FALSE)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'query' => $query,
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'include_adult' => (bool) $adult,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('search/person', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Search a company by querystring
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $text				Query to search after in the TMDb database
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function searchCompany($query, $page = 1)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'query' => $query,
 | 
				
			||||||
 | 
								'page' => $page,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('search/company', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve information about a collection
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $id					Id from a collection (retrieved with getMovie)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getCollection($id, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('collection/'.$id, $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all basic information for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovie($id, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id, $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve alternative titles for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @params string $country			Only include titles for a particular country (ISO 3166-1)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovieTitles($id, $country = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'country' => $country,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/alternative_titles', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all of the movie cast information for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovieCast($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/casts');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all of the keywords for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovieKeywords($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/keywords');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all the release and certification data for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovieReleases($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/releases');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve available translations for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovieTranslations($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/translations');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve available trailers for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovieTrailers($id, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/trailers', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all images for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovieImages($id, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/images', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve similar movies for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getSimilarMovies($id, $page = 1, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/similar_movies', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve newest movie added to TMDb
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getLatestMovie()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/latest');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve movies arriving to theatres within the next few weeks
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getUpcomingMovies($page = 1, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/upcoming', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve movies currently in theatres
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getNowPlayingMovies($page = 1, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/now_playing', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve popular movies (list is updated daily)
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getPopularMovies($page = 1, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/popular', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve top-rated movies
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getTopRatedMovies($page = 1, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/top_rated', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve changes for a particular movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb-id or IMDB-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMovieChanges($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$id.'/changes');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all id's from changed movies
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param string $start_date		String start date as YYYY-MM-DD
 | 
				
			||||||
 | 
						 * @param string $end_date			String end date as YYYY-MM-DD (not inclusive)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getChangedMovies($page = 1, $start_date = NULL, $end_date = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'start_date' => $start_date,
 | 
				
			||||||
 | 
								'end_date' => $end_date,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/changes', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all basic information for a particular person
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $id					TMDb person-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getPerson($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('person/'.$id);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all cast and crew information for a particular person
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $id					TMDb person-id
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getPersonCredits($id, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('person/'.$id.'/credits', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all images for a particular person
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb person-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getPersonImages($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('person/'.$id.'/images');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve changes for a particular person
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $id					TMDb person-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getPersonChanges($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('person/'.$id.'/changes');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all id's from changed persons
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param string $start_date		String start date as YYYY-MM-DD
 | 
				
			||||||
 | 
						 * @param string $end_date			String end date as YYYY-MM-DD (not inclusive)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getChangedPersons($page = 1, $start_date = NULL, $end_date = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'start_date' => $start_date,
 | 
				
			||||||
 | 
								'start_date' => $end_date,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('person/changes', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve all basic information for a particular production company
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $id					TMDb company-id
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getCompany($id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_makeCall('company/'.$id);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve movies for a particular production company
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $id					TMDb company-id
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMoviesByCompany($id, $page = 1, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('company/'.$id.'/movies', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve a list of genres used on TMDb
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getGenres($lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('genre/list', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve movies for a particular genre
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $id					TMDb genre-id
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Filter the result with a language (ISO 3166-1) other then default, use FALSE to retrieve results from all languages
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getMoviesByGenre($id, $page = 1, $lang = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : $this->getLang(),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('genre/'.$id.'/movies', $params);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Authentication: retrieve authentication token
 | 
				
			||||||
 | 
						 * More information about the authentication process: http://help.themoviedb.org/kb/api/user-authentication
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAuthToken()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$result = $this->_makeCall('authentication/token/new');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if( ! isset($result['request_token']))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if($this->getDebugMode())
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									throw new TMDbException('No valid request token from TMDb');
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									return FALSE;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return $result;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Authentication: retrieve authentication session and set it to the class
 | 
				
			||||||
 | 
						 * More information about the authentication process: http://help.themoviedb.org/kb/api/user-authentication
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $token
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAuthSession($token)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'request_token' => $token,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$result = $this->_makeCall('authentication/session/new', $params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if(isset($result['session_id']))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								$this->setAuthSession($result['session_id']);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return $result;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Authentication: set retrieved session id in the class for authenticated requests
 | 
				
			||||||
 | 
						 * More information about the authentication process: http://help.themoviedb.org/kb/api/user-authentication
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $session_id
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function setAuthSession($session_id)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$this->_session_id = $session_id;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve basic account information
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $session_id		Set session_id for the account you want to retrieve information from
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAccount($session_id = NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$session_id = ($session_id === NULL) ? $this->_session_id : $session_id;
 | 
				
			||||||
 | 
							return $this->_makeCall('account', NULL, $session_id);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve favorite movies for a particular account
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $account_id			TMDb account-id
 | 
				
			||||||
 | 
						 * @param string $session_id		Set session_id for the account you want to retrieve information from
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Get result in other language then default for this user account (ISO 3166-1)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAccountFavoriteMovies($account_id, $session_id = NULL, $page = 1, $lang = FALSE)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$session_id = ($session_id === NULL) ? $this->_session_id : $session_id;
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : '',
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('account/'.$account_id.'/favorite_movies', $params, $session_id);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve rated movies for a particular account
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $account_id			TMDb account-id
 | 
				
			||||||
 | 
						 * @param string $session_id		Set session_id for the account you want to retrieve information from
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Get result in other language then default for this user account (ISO 3166-1)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAccountRatedMovies($account_id, $session_id = NULL, $page = 1, $lang = FALSE)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$session_id = ($session_id === NULL) ? $this->_session_id : $session_id;
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : '',
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('account/'.$account_id.'/rated_movies', $params, $session_id);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Retrieve movies that have been marked in a particular account watchlist
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $account_id			TMDb account-id
 | 
				
			||||||
 | 
						 * @param string $session_id		Set session_id for the account you want to retrieve information from
 | 
				
			||||||
 | 
						 * @param int $page					Number of the page with results (default first page)
 | 
				
			||||||
 | 
						 * @param mixed $lang				Get result in other language then default for this user account (ISO 3166-1)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAccountWatchlistMovies($account_id, $session_id = NULL, $page = 1, $lang = FALSE)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$session_id = ($session_id === NULL) ? $this->_session_id : $session_id;
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'page' => (int) $page,
 | 
				
			||||||
 | 
								'language' => ($lang !== NULL) ? $lang : '',
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('account/'.$account_id.'/movie_watchlist', $params, $session_id);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Add a movie to the account favorite movies
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $account_id			TMDb account-id
 | 
				
			||||||
 | 
						 * @param string $session_id		Set session_id for the account you want to retrieve information from
 | 
				
			||||||
 | 
						 * @param int $movie_id				TMDb movie-id
 | 
				
			||||||
 | 
						 * @param bool $favorite			Add to favorites or remove from favorites (default TRUE)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function addFavoriteMovie($account_id, $session_id = NULL, $movie_id = 0, $favorite = TRUE)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$session_id = ($session_id === NULL) ? $this->_session_id : $session_id;
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'movie_id' => (int) $movie_id,
 | 
				
			||||||
 | 
								'favorite' => (bool) $favorite,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('account/'.$account_id.'/favorite', $params, $session_id, TMDb::POST);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Add a movie to the account watchlist
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param int $account_id			TMDb account-id
 | 
				
			||||||
 | 
						 * @param string $session_id		Set session_id for the account you want to retrieve information from
 | 
				
			||||||
 | 
						 * @param int $movie_id				TMDb movie-id
 | 
				
			||||||
 | 
						 * @param bool $watchlist			Add to watchlist or remove from watchlist (default TRUE)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function addMovieToWatchlist($account_id, $session_id = NULL, $movie_id = 0, $watchlist = TRUE)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$session_id = ($session_id === NULL) ? $this->_session_id : $session_id;
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'movie_id' => (int) $movie_id,
 | 
				
			||||||
 | 
								'movie_watchlist' => (bool) $watchlist,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('account/'.$account_id.'/movie_watchlist', $params, $session_id, TMDb::POST);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Add a rating to a movie
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $session_id		Set session_id for the account you want to retrieve information from
 | 
				
			||||||
 | 
						 * @param int $movie_id				TMDb movie-id
 | 
				
			||||||
 | 
						 * @param float $value				Value between 1 and 10
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function addMovieRating($session_id = NULL, $movie_id = 0, $value = 0)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$session_id = ($session_id === NULL) ? $this->_session_id : $session_id;
 | 
				
			||||||
 | 
							$params = array(
 | 
				
			||||||
 | 
								'value' => is_numeric($value) ? floatval($value) : 0,
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							return $this->_makeCall('movie/'.$movie_id.'/rating', $params, $session_id, TMDb::POST);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get configuration from TMDb
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getConfiguration()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$config = $this->_makeCall('configuration');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if( ! empty($config))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								$this->setConfig($config);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return $config;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get Image URL
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $filepath			Filepath to image
 | 
				
			||||||
 | 
						 * @param const $imagetype			Image type: TMDb::IMAGE_BACKDROP, TMDb::IMAGE_POSTER, TMDb::IMAGE_PROFILE
 | 
				
			||||||
 | 
						 * @param string $size				Valid size for the image
 | 
				
			||||||
 | 
						 * @return string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getImageUrl($filepath, $imagetype, $size)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$config = $this->getConfig();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if(isset($config['images']))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								$base_url = $config['images']['base_url'];
 | 
				
			||||||
 | 
								$available_sizes = $this->getAvailableImageSizes($imagetype);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if(in_array($size, $available_sizes))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									return $base_url.$size.$filepath;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									throw new TMDbException('The size "'.$size.'" is not supported by TMDb');
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								throw new TMDbException('No configuration available for image URL generation');
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get available image sizes for a particular image type
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param const $imagetype			Image type: TMDb::IMAGE_BACKDROP, TMDb::IMAGE_POSTER, TMDb::IMAGE_PROFILE
 | 
				
			||||||
 | 
						 * @return array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAvailableImageSizes($imagetype)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$config = $this->getConfig();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if(isset($config['images'][$imagetype.'_sizes']))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return $config['images'][$imagetype.'_sizes'];
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								throw new TMDbException('No configuration available to retrieve available image sizes');
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get ETag to keep track of state of the content
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $uri				Use an URI to know the version of it. For example: 'movie/550'
 | 
				
			||||||
 | 
						 * @return string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getVersion($uri)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$headers = $this->_makeCall($uri, NULL, NULL, TMDb::HEAD);
 | 
				
			||||||
 | 
							return isset($headers['Etag']) ? $headers['Etag'] : '';
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Makes the call to the API
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $function			API specific function name for in the URL
 | 
				
			||||||
 | 
						 * @param array $params				Unencoded parameters for in the URL
 | 
				
			||||||
 | 
						 * @param string $session_id		Session_id for authentication to the API for specific API methods
 | 
				
			||||||
 | 
						 * @param const $method				TMDb::GET or TMDb:POST (default TMDb::GET)
 | 
				
			||||||
 | 
						 * @return TMDb result array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						private function _makeCall($function, $params = NULL, $session_id = NULL, $method = TMDb::GET)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$params = ( ! is_array($params)) ? array() : $params;
 | 
				
			||||||
 | 
							$auth_array = array('api_key' => $this->_apikey);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if($session_id !== NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								$auth_array['session_id'] = $session_id;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$url = $this->_apischeme.TMDb::API_URL.'/'.TMDb::API_VERSION.'/'.$function.'?'.http_build_query($auth_array, '', '&');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if($method === TMDb::GET)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if(isset($params['language']) AND $params['language'] === FALSE)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									unset($params['language']);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								$url .= ( ! empty($params)) ? '&'.http_build_query($params, '', '&') : '';
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$results = '{}';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (extension_loaded('curl'))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								$headers = array(
 | 
				
			||||||
 | 
									'Accept: application/json',
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								$ch = curl_init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if($method == TMDB::POST)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									$json_string = json_encode($params);
 | 
				
			||||||
 | 
									curl_setopt($ch,CURLOPT_POST, 1);
 | 
				
			||||||
 | 
									curl_setopt($ch,CURLOPT_POSTFIELDS, $json_string);
 | 
				
			||||||
 | 
									$headers[] = 'Content-Type: application/json';
 | 
				
			||||||
 | 
									$headers[] = 'Content-Length: '.strlen($json_string);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								elseif($method == TMDb::HEAD)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'HEAD');
 | 
				
			||||||
 | 
									curl_setopt($ch, CURLOPT_NOBODY, 1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								curl_setopt($ch, CURLOPT_URL, $url);
 | 
				
			||||||
 | 
								curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 | 
				
			||||||
 | 
								curl_setopt($ch, CURLOPT_HEADER, 1);
 | 
				
			||||||
 | 
								curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								$response = curl_exec($ch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
 | 
				
			||||||
 | 
								$header = substr($response, 0, $header_size);
 | 
				
			||||||
 | 
								$body = substr($response, $header_size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								$error_number = curl_errno($ch);
 | 
				
			||||||
 | 
								$error_message = curl_error($ch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if($error_number > 0)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									throw new TMDbException('Method failed: '.$function.' - '.$error_message);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								curl_close($ch);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								throw new TMDbException('CURL-extension not loaded');
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$results = json_decode($body, TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if(strpos($function, 'authentication/token/new') !== FALSE)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								$parsed_headers = $this->_http_parse_headers($header);
 | 
				
			||||||
 | 
								$results['Authentication-Callback'] = $parsed_headers['Authentication-Callback'];
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if($results !== NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return $results;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							elseif($method == TMDb::HEAD)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return $this->_http_parse_headers($header);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								throw new TMDbException('Server error on "'.$url.'": '.$response);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Setter for the default language
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $lang		(ISO 3166-1)
 | 
				
			||||||
 | 
						 * @return void
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function setLang($lang)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$this->_lang = $lang;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Setter for the TMDB-config
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * $param array $config
 | 
				
			||||||
 | 
						 * @return void
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function setConfig($config)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$this->_config = $config;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Getter for the default language
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @return string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getLang()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return $this->_lang;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Getter for the TMDB-config
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @return array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getConfig()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if(empty($this->_config))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								$this->_config = $this->getConfiguration();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return $this->_config;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * Internal function to parse HTTP headers because of lack of PECL extension installed by many
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $header
 | 
				
			||||||
 | 
						 * @return array
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						protected function _http_parse_headers($header)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$return = array();
 | 
				
			||||||
 | 
							$fields = explode("\r\n", preg_replace('/\x0D\x0A[\x09\x20]+/', ' ', $header));
 | 
				
			||||||
 | 
							foreach($fields as $field)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if(preg_match('/([^:]+): (.+)/m', $field, $match))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									$match[1] = preg_replace('/(?<=^|[\x09\x20\x2D])./e', 'strtoupper("\0")', strtolower(trim($match[1])));
 | 
				
			||||||
 | 
									if( isset($return[$match[1]]) )
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										$return[$match[1]] = array($return[$match[1]], $match[2]);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										$return[$match[1]] = trim($match[2]);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return $return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * TMDb Exception class
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Jonas De Smet - Glamorous
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class TMDbException extends Exception{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					?>
 | 
				
			||||||
							
								
								
									
										13
									
								
								app/models/Comment.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								app/models/Comment.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Comment extends Eloquent {
 | 
				
			||||||
 | 
						protected $table = "comments";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function autor() {
 | 
				
			||||||
 | 
							return $this->belongsTo('User', 'user');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function film() {
 | 
				
			||||||
 | 
							return $this->belongsTo('Film', 'film');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										5
									
								
								app/models/Event.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								app/models/Event.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Event extends Eloquent {
 | 
				
			||||||
 | 
						protected $table = "events";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										26
									
								
								app/models/Film.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								app/models/Film.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Film extends Eloquent {
 | 
				
			||||||
 | 
						protected $table = "films";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function comments() {
 | 
				
			||||||
 | 
							return $this->hasMany('Comment', 'film');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function votes() {
 | 
				
			||||||
 | 
							return $this->hasMany('Vote', 'film');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function besitzer() {
 | 
				
			||||||
 | 
							return $this->belongsTo('User', 'user');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function scopeZuletztGesehen($query) {
 | 
				
			||||||
 | 
							return $query->whereNotNull('gesehen')->orderBy('gesehen')->take(5);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function scopeNeuesteVorschlage($query) {
 | 
				
			||||||
 | 
							return $query->whereNull('gesehen')->orderBy('updated_at')->take(5);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -49,4 +49,16 @@ class User extends Eloquent implements UserInterface, RemindableInterface {
 | 
				
			|||||||
		return $this->email;
 | 
							return $this->email;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function films() {
 | 
				
			||||||
 | 
							return $this->hasMany('Film', 'user');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function comments() {
 | 
				
			||||||
 | 
							return $this->hasMany('Comment', 'user');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function votes() {
 | 
				
			||||||
 | 
							return $this->hasMany('Vote', 'user');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										13
									
								
								app/models/Vote.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								app/models/Vote.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Vote extends Eloquent {
 | 
				
			||||||
 | 
						protected $table = "votes";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function film() {
 | 
				
			||||||
 | 
							return $this->belongsTo('Film', 'film');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function user() {
 | 
				
			||||||
 | 
							return $this->belongsTo('User', 'user');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -13,5 +13,58 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Route::get('/', function()
 | 
					Route::get('/', function()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return View::make('hello');
 | 
						$gesehen = Film::zuletztGesehen()->get();
 | 
				
			||||||
 | 
						$vorgeschlagen = Film::neuesteVorschlage()->get();
 | 
				
			||||||
 | 
						return View::make('index')
 | 
				
			||||||
 | 
							->with('gesehen', $gesehen)
 | 
				
			||||||
 | 
							->with('vorgeschlagen', $vorgeschlagen);
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Route::get('film/{id}', array('as' => 'film', function($id) {
 | 
				
			||||||
 | 
						$film = Film::findOrFail($id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$tmdb = new TMDb('b187f8d9c5e72b1faecb741d5d04239a', 'de', TRUE);
 | 
				
			||||||
 | 
						$tmovie = $tmdb->getMovie($film->tvdbid);
 | 
				
			||||||
 | 
						$tcast = $tmdb->getMovieCast($film->tvdbid);
 | 
				
			||||||
 | 
						$ttrail = $tmdb->getMovieTrailers($film->tvdbid);
 | 
				
			||||||
 | 
						$image = $tmdb->getImageUrl($tmovie['poster_path'], TMDb::IMAGE_POSTER, 'w342');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$votes = $film->votes()->count();
 | 
				
			||||||
 | 
						$vposi = $film->votes()->where('stimme', true)->count();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$comments = $film->comments()->orderBy('id', 'DESC')->get();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return View::make('film')
 | 
				
			||||||
 | 
							->with('film', $film)
 | 
				
			||||||
 | 
							->with('tfilm', $tmovie)
 | 
				
			||||||
 | 
							->with('poster', $image)
 | 
				
			||||||
 | 
							->with('comments', $comments)
 | 
				
			||||||
 | 
							->with('cast', $tcast)
 | 
				
			||||||
 | 
							->with('trail', $ttrail)
 | 
				
			||||||
 | 
							->with('votes', $votes)
 | 
				
			||||||
 | 
							->with('vposi', $vposi)
 | 
				
			||||||
 | 
							->with('tmdb', $tmdb);
 | 
				
			||||||
 | 
					}));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Route::get('login', array('as' => 'login', function() {
 | 
				
			||||||
 | 
						return View::make('login');
 | 
				
			||||||
 | 
					}));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Route::post('login', function() {
 | 
				
			||||||
 | 
						$userdata = array(
 | 
				
			||||||
 | 
							'name' => Input::get('iSpieler'),
 | 
				
			||||||
 | 
							'password' => Input::get('iPassword'));
 | 
				
			||||||
 | 
						if(Auth::attempt($userdata)) {
 | 
				
			||||||
 | 
							return Redirect::intended('/');
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							echo "Login gescheitert.";
 | 
				
			||||||
 | 
							var_dump($userdata);
 | 
				
			||||||
 | 
							return Redirect::to('login')
 | 
				
			||||||
 | 
								->with('login_errors', true);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Route::get('logout', array('as' => 'logout', function() {
 | 
				
			||||||
 | 
						Auth::logout();
 | 
				
			||||||
 | 
						return Redirect::to('/');
 | 
				
			||||||
 | 
					}));
 | 
				
			||||||
							
								
								
									
										132
									
								
								app/views/film.blade.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								app/views/film.blade.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,132 @@
 | 
				
			|||||||
 | 
					@extends('hello')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@section('content')
 | 
				
			||||||
 | 
					<div class="page-header">
 | 
				
			||||||
 | 
						<h1>{{ $film->name }} <small>{{ $tfilm['tagline']}}</small></h1>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="row">
 | 
				
			||||||
 | 
						<div class="col-md-3">
 | 
				
			||||||
 | 
									@if(!is_null($film->gesehen))
 | 
				
			||||||
 | 
										<div class="label label-success"><span class="glyphicon glyphicon-check"></span> Gesehen am {{ $film->gesehen }}</div>
 | 
				
			||||||
 | 
									@else
 | 
				
			||||||
 | 
										<div class="label label-danger"><span class="glyphicon glyphicon-unchecked"></span> Nicht gesehen</div>
 | 
				
			||||||
 | 
									@endif
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div class="col-md-9">
 | 
				
			||||||
 | 
							<ul class="nav nav-tabs">
 | 
				
			||||||
 | 
								<li class="active"><a href="#ueberblick" data-toggle="tab">Überblick</a></li>
 | 
				
			||||||
 | 
								<li><a href="#cast" data-toggle="tab">Schauspieler</a></li>
 | 
				
			||||||
 | 
								<li><a href="#trailer" data-toggle="tab">Trailer</a></li>
 | 
				
			||||||
 | 
							</ul>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					<div class="row">
 | 
				
			||||||
 | 
						<div class="col-md-3 thumbnail">
 | 
				
			||||||
 | 
							<img src="{{ $poster }}" alt="{{ $film->name }} Poster">
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						<div class="col-md-9 tab-content">
 | 
				
			||||||
 | 
							<div class="tab-pane active" id='ueberblick'>
 | 
				
			||||||
 | 
								<div class="pull-right">
 | 
				
			||||||
 | 
									<a class="btn btn-xs btn-primary" href="http://themoviedb.org/movie/{{ $film->tvdbid }}">themoviedb.org</a>
 | 
				
			||||||
 | 
									<a class="btn btn-xs btn-warning" href="http://imdb.com/title/{{ $tfilm['imdb_id'] }}">IMDB</a>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
								<dl class="dl-horizontal">
 | 
				
			||||||
 | 
									<dt>Originaltitel</dt>
 | 
				
			||||||
 | 
									<dd>{{ $tfilm['original_title'] }}</dd>
 | 
				
			||||||
 | 
									<dt>Erschienen</dt>
 | 
				
			||||||
 | 
									<dd>
 | 
				
			||||||
 | 
										{{ $tfilm['release_date']}} -
 | 
				
			||||||
 | 
										@foreach($tfilm['production_countries'] as $pc)
 | 
				
			||||||
 | 
											<abbr title="{{$pc['name']}}">{{$pc['iso_3166_1']}}</abbr> 
 | 
				
			||||||
 | 
										@endforeach
 | 
				
			||||||
 | 
										@foreach($tfilm['production_companies'] as $pc)
 | 
				
			||||||
 | 
											- {{$pc['name']}}
 | 
				
			||||||
 | 
										@endforeach
 | 
				
			||||||
 | 
									</dd>
 | 
				
			||||||
 | 
									<dt>Genre</dt>
 | 
				
			||||||
 | 
									<dd>
 | 
				
			||||||
 | 
										@foreach($tfilm['genres'] as $g)
 | 
				
			||||||
 | 
											<span class="label label-default">{{$g['name']}}</span>
 | 
				
			||||||
 | 
										@endforeach
 | 
				
			||||||
 | 
									</dd>
 | 
				
			||||||
 | 
									<dt>Bewertung</dt>
 | 
				
			||||||
 | 
									<dd>{{ $tfilm['vote_average']}} von 10 
 | 
				
			||||||
 | 
									</dd>
 | 
				
			||||||
 | 
									@for($i = 0; $i < 3 && $i < count($cast['crew']); $i++)
 | 
				
			||||||
 | 
										<dt>{{$cast['crew'][$i]['job']}}</dt>
 | 
				
			||||||
 | 
										<dd>{{$cast['crew'][$i]['name']}}</dd>
 | 
				
			||||||
 | 
									@endfor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<p></p>
 | 
				
			||||||
 | 
									<dt>Inhalt</dt>
 | 
				
			||||||
 | 
									<dd>{{ $tfilm['overview'] }}</dd>
 | 
				
			||||||
 | 
								</dl>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div class="tab-pane" id="cast">
 | 
				
			||||||
 | 
									<div class="row" style="margin-top:10px;">
 | 
				
			||||||
 | 
									@for($i = 0; $i < 10 && $i < count($cast['cast']); $i++)
 | 
				
			||||||
 | 
										<div class="col-md-6">
 | 
				
			||||||
 | 
											<div class="pull-left" style="margin-right:5px; min-height: 80px;"><img class="img-thumbnail media-object" src="{{ !is_null($cast['cast'][$i]['profile_path']) ? $tmdb->getImageUrl($cast['cast'][$i]['profile_path'], TMDb::IMAGE_PROFILE, 'w185') : "http://d3a8mw37cqal2z.cloudfront.net/assets/649ae87ebcf4285/images/no-profile-w185.jpg"}}" alt="{{$cast['cast'][$i]['name']}}" width="55"></div>
 | 
				
			||||||
 | 
											<div class="media-body">
 | 
				
			||||||
 | 
												<h4 class="media-heading">{{$cast['cast'][$i]['name']}}</h4>
 | 
				
			||||||
 | 
												{{$cast['cast'][$i]['character']}}
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
										@if($i % 2 == 1)
 | 
				
			||||||
 | 
									</div><div class="row">
 | 
				
			||||||
 | 
										@endif
 | 
				
			||||||
 | 
									@endfor
 | 
				
			||||||
 | 
									</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div class="tab-pane" id="trailer">
 | 
				
			||||||
 | 
								@foreach($trail['youtube'] as $yt)
 | 
				
			||||||
 | 
									<iframe width="420" height="315" src="//www.youtube.com/embed/{{ $yt['source'] }}" frameborder="0" allowfullscreen></iframe>
 | 
				
			||||||
 | 
								@endforeach
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="clearfix"></div>
 | 
				
			||||||
 | 
					<hr>
 | 
				
			||||||
 | 
					@if($votes > 0)
 | 
				
			||||||
 | 
					<h2>Abstimmung</h2>
 | 
				
			||||||
 | 
					<p>Insgesamt haben <b>{{$votes}}</b> Personen abgestimmt. <b>{{$vposi}}</b> davon waren <i>dafür</i>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="progress">
 | 
				
			||||||
 | 
					  <div class="progress-bar progress-bar-success" style="width: {{ $vposi / $votes * 100}}%">
 | 
				
			||||||
 | 
					    <span class="sr-only">{{$vposi}} von {{$votes}} (dafür)</span>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					  <div class="progress-bar progress-bar-danger" style="width: 10%">
 | 
				
			||||||
 | 
					    <span class="sr-only">{{ $votes - $vposi}} von {{ $votes }} Complete (dagegen)</span>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<hr>@endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h2>Kommentare</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>Melde Dich an, um diesen Film zu kommentieren.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@foreach($comments as $comment)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="media">
 | 
				
			||||||
 | 
						<a class="pull-left" href="#">
 | 
				
			||||||
 | 
							<img class="media-object" src="{{ "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $comment->autor->email ) ) ) . "?s=40" }}" alt="{{ $comment->autor->name }}">
 | 
				
			||||||
 | 
						</a>
 | 
				
			||||||
 | 
						<div class="media-body">
 | 
				
			||||||
 | 
							<h4 class="media-heading">{{ $comment->autor->name }} <small>{{$comment->updated_at}}</small></h4>
 | 
				
			||||||
 | 
							{{$comment->text}}
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@endforeach
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@stop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@section('title')
 | 
				
			||||||
 | 
					{{ $film->name }} ~ 
 | 
				
			||||||
 | 
					@stop
 | 
				
			||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
<html lang="de">
 | 
					<html lang="de">
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
	<meta charset="utf-8">
 | 
						<meta charset="utf-8">
 | 
				
			||||||
	<title>Filmabend-Planer</title>
 | 
						<title>@yield('title') Dumbo</title>
 | 
				
			||||||
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
						<meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
	<link href="{{ asset('css/bootstrap.css') }}" type="text/css" rel="stylesheet">
 | 
						<link href="{{ asset('css/bootstrap.css') }}" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="{{ asset('css/general.css') }}" type="text/css" rel="stylesheet">
 | 
						<link href="{{ asset('css/general.css') }}" type="text/css" rel="stylesheet">
 | 
				
			||||||
@@ -24,6 +24,9 @@
 | 
				
			|||||||
					<li>{{ HTML::link('/', 'Vorschläge') }}</li>
 | 
										<li>{{ HTML::link('/', 'Vorschläge') }}</li>
 | 
				
			||||||
					<li>{{ HTML::link('/', 'Liste') }}</li>
 | 
										<li>{{ HTML::link('/', 'Liste') }}</li>
 | 
				
			||||||
				</ul>
 | 
									</ul>
 | 
				
			||||||
 | 
									<ul class="nav navbar-nav pull-right">
 | 
				
			||||||
 | 
										<li>{{ HTML::link('login', 'Login') }}</li>
 | 
				
			||||||
 | 
									</ul>
 | 
				
			||||||
		    </div>
 | 
							    </div>
 | 
				
			||||||
	    </div>
 | 
						    </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										37
									
								
								app/views/index.blade.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								app/views/index.blade.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					@extends('hello');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@section('content')
 | 
				
			||||||
 | 
					<div class="jumbotron">
 | 
				
			||||||
 | 
						<div class="container">
 | 
				
			||||||
 | 
							<h1>Willkommen zu Dumbo</h1>
 | 
				
			||||||
 | 
							<p>Dumbo ist der Arbeitstitel für eine kleine Software, die helfen soll Filme für den Filmabend auszuwählen. Um den Programmieraufwand klein zu halten, baut Dumbo auf <a href="http://laravel.com">Laravel 4</a> und <a href="http://getbootstrap.com">Twitter Bootstrap 3</a> auf. Die Filmdetails werden von <a href="http://themoviedb.org">themoviedb.org</a> bezogen.</p>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="row">
 | 
				
			||||||
 | 
						<div class="col-md-6">
 | 
				
			||||||
 | 
							<div class="panel panel-success">
 | 
				
			||||||
 | 
								<div class="panel-heading">Neue Vorschläge</div>
 | 
				
			||||||
 | 
								<div class="panel-body"><p>Die neuesten Vorschläge für den nächsten Filmabend. Klicke einen der Vorschläge an, um Filmdetails zu sehen und darüber abzustimmen.</p></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<div class="list-group">
 | 
				
			||||||
 | 
									@foreach ($vorgeschlagen as $film)
 | 
				
			||||||
 | 
										{{ link_to_route('film', $film->name, array($film->id), array('class' => 'list-group-item'))}}
 | 
				
			||||||
 | 
									@endforeach	
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div class="col-md-6">
 | 
				
			||||||
 | 
							<div class="panel panel-primary">
 | 
				
			||||||
 | 
								<div class="panel-heading">Gesehene Filme</div>
 | 
				
			||||||
 | 
								<div class="panel-body"><p>Die Filme, die wir kürzlich gesehen haben. Klicke einen der Titel an, um Kommentare und Filmdetails sowie ein etwaiges Abstimmungsergebnis zu sehen.</p></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<div class="list-group">
 | 
				
			||||||
 | 
									@foreach ($gesehen as $film)
 | 
				
			||||||
 | 
										{{ link_to_route('film', $film->name, array($film->id), array('class' => 'list-group-item'))}}
 | 
				
			||||||
 | 
									@endforeach		
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					@stop
 | 
				
			||||||
							
								
								
									
										9
									
								
								app/views/login.blade.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								app/views/login.blade.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					@extends('hello')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@section('content')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@stop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@section('title')
 | 
				
			||||||
 | 
					Login ~
 | 
				
			||||||
 | 
					@stop
 | 
				
			||||||
@@ -9,6 +9,7 @@
 | 
				
			|||||||
		"classmap": [
 | 
							"classmap": [
 | 
				
			||||||
			"app/commands",
 | 
								"app/commands",
 | 
				
			||||||
			"app/controllers",
 | 
								"app/controllers",
 | 
				
			||||||
 | 
								"app/libraries",
 | 
				
			||||||
			"app/models",
 | 
								"app/models",
 | 
				
			||||||
			"app/database/migrations",
 | 
								"app/database/migrations",
 | 
				
			||||||
			"app/database/seeds",
 | 
								"app/database/seeds",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user