00001 <?php
00002
00003 class Video {
00004
00005 var $intid;
00006 var $plot;
00007 var $category;
00008 var $rating;
00009 var $title;
00010 var $director;
00011 var $inetref;
00012 var $year;
00013 var $userrating;
00014 var $length;
00015 var $showlevel;
00016 var $filename;
00017 var $cover_file;
00018 var $cover_url;
00019 var $cover_scaled_width;
00020 var $cover_scaled_height;
00021 var $childid;
00022 var $url;
00023 var $browse;
00024 var $genres;
00025
00026 function Video($intid) {
00027 $this->__construct($intid);
00028 }
00029
00030 function __construct($intid) {
00031 global $db;
00032 global $mythvideo_dir;
00033 $video = $db->query_assoc('SELECT videometadata.*
00034 FROM videometadata
00035 WHERE videometadata.intid = ?',
00036 $intid
00037 );
00038 $this->intid = $intid;
00039 $this->plot = $video['plot'];
00040 $this->category = $video['category'];
00041 $this->rating = $video['rating'];
00042 $this->title = $video['title'];
00043 $this->director = $video['director'];
00044 $this->inetref = $video['inetref'];
00045 $this->year = $video['year'] ? $video['year'] : 'Unknown';
00046 $this->userrating = $video['userrating'] ? $video['userrating'] : 'Unknown';
00047 $this->length = $video['length'];
00048 $this->showlevel = $video['showlevel'];
00049 $this->filename = $video['filename'];
00050 $this->cover_file = $video['coverfile'];
00051 $this->browse = $video['browse'];
00052
00053 if ($this->cover_file != 'No Cover' && file_exists($this->cover_file) ) {
00054 $this->cover_url = 'data/video_covers/'.substr($this->cover_file, strlen(setting('VideoArtworkDir', hostname)));
00055 list($width, $height) = getimagesize($this->cover_file);
00056 $wscale = video_img_width / $width;
00057 $hscale = video_img_height / $height;
00058 $scale = $wscale < $hscale ? $wscale : $hscale;
00059 $this->cover_scaled_width = floor($width * $scale);
00060 $this->cover_scaled_height = floor($height * $scale);
00061 }
00062 else {
00063 $this->cover_scaled_height = video_img_height;
00064 $this->cover_scaled_width = video_img_width;
00065 }
00066 $this->childid = $video['childid'];
00067
00068 $this->url = '#';
00069 if (file_exists('data/video/'))
00070 $this->url = root . implode('/', array_map('rawurlencode',
00071 array_map('utf8tolocal',
00072 explode('/',
00073 'data/video/' . preg_replace('#^'.$mythvideo_dir.'/?#', '', $this->filename)
00074 ))));
00075 $genre = $db->query('SELECT videometadatagenre.idgenre
00076 FROM videometadatagenre
00077 WHERE videometadatagenre.idvideo = ?',
00078 $this->intid
00079 );
00080 while( $id = $genre->fetch_col())
00081 $this->genres[] = $id;
00082 $genre->finish();
00083 }
00084
00085
00086 function metadata() {
00087 global $Category_String;
00088 return array( 'intid' => $this->intid,
00089 'img' => '<img width="'.$this->cover_scaled_width.'" height="'.$this->cover_scaled_height.'" alt="'.t('Missing Cover').'"'
00090 .(($_SESSION["show_video_covers"] && file_exists($this->cover_url)) ? ' src="'.root.'data/video_covers/'.basename($this->cover_file).'"' : '')
00091 .'>',
00092 'title' => '<a href="'.$this->url.'">'.$this->title.'</a>',
00093 'playtime' => nice_length($this->length * 60),
00094 'category' => strlen($Category_String[$this->category]) ? $Category_String[$this->category] : 'Uncategorized',
00095 'imdb' => ($this->inetref != '00000000') ? '<a href="http://www.imdb.com/Title?'.$this->inetref.'">'.$this->inetref.'</a>' : '',
00096 'plot' => $this->plot,
00097 'rating' => $this->rating,
00098 'director' => $this->director,
00099 'inetref' => $this->inetref,
00100 'year' => $this->year,
00101 'userrating' => $this->userrating,
00102 'length' => $this->length,
00103 'showlevel' => $this->showlevel
00104 );
00105 }
00106
00107 function save() {
00108 global $db;
00109 $db->query('UPDATE videometadata
00110 SET videometadata.plot = ?,
00111 videometadata.category = ?,
00112 videometadata.rating = ?,
00113 videometadata.title = ?,
00114 videometadata.director = ?,
00115 videometadata.inetref = ?,
00116 videometadata.year = ?,
00117 videometadata.userrating = ?,
00118 videometadata.length = ?,
00119 videometadata.showlevel = ?,
00120 videometadata.filename = ?,
00121 videometadata.coverfile = ?,
00122 videometadata.browse = ?
00123 WHERE videometadata.intid = ?',
00124 $this->plot,
00125 $this->category,
00126 $this->rating,
00127 $this->title,
00128 $this->director,
00129 $this->inetref,
00130 $this->year,
00131 $this->userrating,
00132 $this->length,
00133 $this->showlevel,
00134 $this->filename,
00135 ( @filesize($this->cover_file) > 0 ? $this->cover_file : 'No Cover' ),
00136 $this->browse,
00137 $this->intid
00138 );
00139
00140 $db->query('DELETE FROM videometadatagenre
00141 WHERE videometadatagenre.idvideo = ?',
00142 $this->intid
00143 );
00144 if (count($this->genres) > 0)
00145 foreach ($this->genres as $genre)
00146 $db->query('INSERT INTO videometadatagenre ( idvideo, idgenre )
00147 VALUES ( ?, ? )',
00148 $this->intid,
00149 $genre
00150 );
00151
00152 }
00153 }