KLanding/movielib/index.php
2015-12-12 10:00:06 +00:00

910 lines
41 KiB
PHP

<?PHP
session_start();
header('Content-type: text/html; charset=utf-8');
include('config.php');
include('function.php');
if (!file_exists('db.php')) {
if (file_exists('install.php')) {
header('Location:install.php');
die('Can\'t redirect to install.php');
}
die('Copy install.php file to script directory');
}
// connect to database
connect($mysql_ml);
// get settings from db
$setting = get_settings();
include('lang/' . $setting['language'] . '/lang.php');
/* ##################
* # CHECK PASSWORD #
*/##################
if ($setting['protect_site'] == 1) {
if ($_SESSION['logged'] !== true) {
header('Location:login.php');
die('Can\'t redirect to login.php');
}
}
/* #################
* # DEFINE ARRAYS #
*/#################
if (!isset($_GET['video'])) {
$video = 'movies';
} else {
$video = $_GET['video'];
}
/* ############
* # FACEBOOK #
*/############
if ($fb_link !== '') {
if ($video == 'tvshows') {
$face_sql = 'SELECT id FROM tvshows WHERE title="' . urldecode($fb_link) . '" LIMIT 0, 1';
} else {
$face_sql = 'SELECT id FROM movies WHERE title="' . urldecode(substr($fb_link, 0, -4)) . '" AND year="' . substr($fb_link, -4, 4) . '" LIMIT 0, 1';
}
$face_res = mysql_q($face_sql);
$face_id = mysql_fetch_assoc($face_res);
$id = $face_id['id'];
}
// views
$view = $setting['view'];
if (isset($_COOKIE['view'])) {
$view = $_COOKIE['view'];
}
if (isset($_GET['view'])) {
$view = $_GET['view'];
setcookie('view', $view, time()+(60 * 60 * 24 * 7));
}
if ($id == 0) {
$include_view = $view;
} else {
$include_view = 0;
}
// output and show arrays
$output = array();
$show = array();
foreach ($item as $val) {
$output[$val] = '';
$show[$val] = 0;
}
// sort selected
if (isset($_GET['sort'])) {
$sort = $_GET['sort'];
} else {
$sort = $setting['default_sort'];
}
// sort selected
if (isset($_GET['watch'])) {
$watch = $_GET['watch'];
} else {
$watch = $setting['default_watch'];
}
$output['version'] = $version;
$output['view'] = $view;
$output['include_view'] = $views[$include_view];
$output['video'] = $video;
$output['watch'] = $watch;
if ($id == 0) {
$output['url_delete_filter'] = create_url($setting, array('video' => $video, 'view' => $view, 'sort' => $sort));
} else {
$output['url_delete_filter'] = create_url($setting, array('video' => $video, 'view' => $view, 'sort' => $sort, 'filter' => $filter, 'filterid' => $filterid));
}
/* ################
* # SELECT MEDIA #
*/################
if ($video == 'tvshows') {
$mysql_table = 'tvshows';
} else {
$mysql_table = 'movies';
}
$output['select_media'] = '<a class="' . ($video == 'movies' ? "selected" : "") . '" href="' . create_url($setting, array('video' => 'movies', 'view' => $view)) . '">' . mb_strtoupper($lang['i_movies']) . '</a><a class="' . ($video == 'tvshows' ? "selected" : "") . '" href="' . create_url($setting, array('video' => 'tvshows', 'view' => $view)) . '">' . mb_strtoupper($lang['i_tvshows']) . '</a>';
if ($setting['select_media_header'] == 1) {
$count_movies = mysql_result(mysql_q('SELECT COUNT( * ) FROM movies'), 0);
$count_tvshows = mysql_result(mysql_q('SELECT COUNT( * ) FROM tvshows'), 0);
if ($count_movies == 0 or $count_tvshows == 0) {
$output['select_media'] = '';
}
}
/* #############
* # TOP PANEL #
*/#############
$show['panel_top'] = $setting['panel_top'];
if ($setting['panel_top'] == 1) {
$top_panel_sql = array(
'top_item_last_added' => 'SELECT id, title, date_added, hide FROM ' . $mysql_table . ' WHERE hide=0 ORDER BY date_added DESC LIMIT ' . $setting['panel_top_limit'],
'top_item_most_watched' => 'SELECT id, title, hide FROM ' . $mysql_table . ' WHERE hide=0 ORDER BY play_count DESC LIMIT ' . $setting['panel_top_limit'],
'top_item_last_played' => 'SELECT id, title, last_played, hide FROM ' . $mysql_table . ' WHERE hide=0 ORDER BY last_played DESC LIMIT ' . $setting['panel_top_limit'],
'top_item_top_rated' => 'SELECT id, title, rating, hide FROM ' . $mysql_table . ' WHERE hide=0 ORDER BY rating DESC LIMIT ' . $setting['panel_top_limit']
);
foreach ($top_panel_sql as $name => $item_top_sql) {
$output[$name] = '';
$item_top_result = mysql_q($item_top_sql);
while ($item_top = mysql_fetch_array($item_top_result)) {
if (file_exists('cache/' . $mysql_table . '_' . $item_top['id'] . '.jpg')) {
$output[$name].= '<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'id' => $item_top['id'])) . '"><img src="cache/' . $mysql_table . '_' . $item_top['id'] . '.jpg" title="' . $item_top['title'] . '" alt=""></a>';
}
}
}
}
/* ####################
* # ARRAYS FOR PANEL #
*/####################
if ($video == 'tvshows') {
$columns = array('actor', 'genre', 'premiered');
} else {
$columns = array('actor', 'genre', 'country', 'year', 'director', 'set', 'studio');
}
$panels_array = panels_array($columns, $mysql_table);
$filter_array = array('actor', 'genre', 'country', 'studio', 'director');
if ($filter == '') {
$mysql_table2 = '';
$filter_mysql = '';
} else if (in_array($filter, $filter_array)) {
$mysql_table2 = ', ' . $mysql_table . '_' . $filter;
$filter_mysql = $mysql_table . '_' . $filter . '.' . $filter . 'id = '. $filterid . ' AND ' . $mysql_table . '.id = ' . $mysql_table . '_' . $filter . '.id AND';
} else {
$mysql_table2 = '';
$filter_mysql = $mysql_table . '.' . $filter . ' LIKE "%' . $panels_array[$filter][$filterid] . '%" AND';
}
/* ##############
* # LEFT PANEL #
*/##############
// overall panel
$show['panel_overall'] = $setting['panel_overall'];
if ($setting['panel_overall'] > 0) {
$overall_sql = 'SELECT play_count, hide FROM ' . $mysql_table . ' WHERE hide=0';
$overall_result = mysql_q($overall_sql);
$overall_all = mysql_num_rows($overall_result);
$overall_watched = 0;
while($overall = mysql_fetch_array($overall_result)) {
if ($overall['play_count'] > 0) {
$overall_watched++;
}
}
$output['overall_all'] = $overall_all;
$output['overall_watched'] = $overall_watched;
$output['overall_unwatched'] = $overall_all - $overall_watched;
}
// menu panel
$menu_array = array('genre', 'year', 'country', 'set', 'studio');
foreach ($menu_array as $menu_name) {
$output['panel_' . $menu_name] = '';
if ($setting['panel_' . $menu_name] <> 0 && isset($panels_array[$menu_name]) && count($panels_array[$menu_name]) > 0) {
$show['panel_' . $menu_name] = 1;
foreach ($panels_array[$menu_name] as $key => $val) {
if ($filter == $menu_name && $filterid == $key) {
$output['panel_' . $menu_name].= '<li>' . $val . '</li>';
} else {
$output['panel_' . $menu_name].= '<li><a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => $menu_name, 'filterid' => $key)) . '">' . $val . '</a></li>';
}
}
}
}
/* ########
* # SORT #
*/########
$sort_array = array(
1 => array($lang['i_title'], 'title ASC'),
2 => array($lang['i_premiered'], 'premiered DESC'),
3 => array($lang['i_year'], 'year DESC'),
4 => array($lang['i_rating'], 'rating DESC'),
5 => array($lang['i_added'], 'date_added DESC'),
6 => array($lang['i_runtime'], ' CAST( runtime AS DECIMAL( 10, 2 ) ) DESC'),
7 => array($lang['i_last_played'], 'last_played DESC'),
8 => array($lang['i_most_watched'], 'play_count DESC')
);
if ($video == 'tvshows') {
unset($sort_array[3], $sort_array[6]);
} else {
unset($sort_array[2]);
}
$output['panel_sort'] = '';
foreach ($sort_array as $key => $val) {
$output['panel_sort'].= ($sort == $key ?
'<span>' . $val[0] . '</span>' :
'<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $key,
'filter' => $filter,
'filterid' => $filterid)) .
'" title="' . $lang['i_sort'] . '">' . $val[0] . '</a>');
}
/* #########
* # WATCH #
*/#########
$show['panel_watch'] = 1;
$watch_arr = array(0 => 'all', 1 => 'watched', 2 => 'unwatched');
$output['panel_watch'].= '<div id="watch_menu"><div id="watch_title">' . $lang['i_watched_status'] . ': ' . $lang['i_' . $watch_arr[$watch]] . '</div><div id="watches">';
foreach ($watch_arr as $key => $val) {
if ($watch == $key) {
$output['panel_watch'].= '<span>' . $lang['i_' . $val] . '</span>';
} else {
$output['panel_watch'].= '<a href="' . create_url($setting, array('id' => $id, 'video' => $video, 'view' => $view, 'watch' => $key, 'sort' => $sort, 'filter' => $filter, 'filterid' => $filterid)) . '">' . $lang['i_' . $val] . '</a>';
}
}
if ($watch == 1) {
$watch_mysql = ' > 0';
} elseif ($watch == 2) {
$watch_mysql = ' = 0';
} else {
$watch_mysql = ' >= 0';
}
$output['panel_watch'].= '</div></div>';
/* ########
* # VIEW #
*/########
if ($setting['panel_view'] > 0) {
$show['panel_view'] = 1;
$output['panel_view'].= '<div id="view_menu"><div id="view_title">' . $lang['i_view'] . ': ' . $lang['i_' . $views[$view]] . '</div><div id="views">';
foreach ($views as $key => $val) {
if ($view == $key) {
$output['panel_view'].= '<span>' . $lang['i_' . $val] . '</span>';
} else {
$output['panel_view'].= '<a href="' . create_url($setting, array('id' => $id, 'video' => $video, 'view' => $key, 'watch' => $watch, 'sort' => $sort, 'filter' => $filter, 'filterid' => $filterid)) . '">' . $lang['i_' . $val] . '</a>';
}
}
$output['panel_view'].= '</div></div>';
}
/* ##########
* # SEARCH #
*/##########
$show['panel_live_search'] = $setting['live_search'];
$search_mysql = '%';
if ($search !== '') {
$search_mysql = $search;
}
/* #############
* # PANEL NAV #
*/#############
$id_mysql = ($id == 0 ? '%' : $id);
$nav_sql = 'SELECT ' . $mysql_table . '.id FROM ' . $mysql_table . $mysql_table2 . ' WHERE
' . $filter_mysql . '
' . $mysql_table . '.title LIKE "%' . $search_mysql . '%" AND
' . $mysql_table . '.id LIKE "' . $id_mysql . '" AND
' . $mysql_table . '.play_count ' . $watch_mysql . ' AND
' . $mysql_table . '.hide=0
ORDER BY ' . $sort_array[$sort][1];
$nav_result = mysql_q($nav_sql);
$row = mysql_num_rows($nav_result);
if ($setting['per_page'] == 0) {
$i_pages = 1;
$output['panel_nav'] = '';
} else {
$i_pages = (ceil($row / $setting['per_page']));
$output['panel_nav'] = ($page == 1 ? '<span>' . $lang['i_previous'] . '</span>' : '<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'page' => ($page - 1), 'filter' => $filter, 'filterid' => $filterid, 'search' => $search)) . '">' . $lang['i_previous'] . '</a>')
. ' <span>' . $lang['i_page'] . ' ' . $page . ' / ' . $i_pages . '</span> ' .
($page == $i_pages ? '<span>' . $lang['i_next'] . '</span>' : '<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'page' => ($page + 1), 'filter' => $filter, 'filterid' => $filterid, 'search' => $search)) . '">' . $lang['i_next'] . '</a>');
if ($row == 0) {
$output['panel_nav'] = '';
}
}
/* ################
* # PANEL FILTER #
*/################
if ($filter !== '') {
$output['panel_filter'] = '<span>' . $lang['i_filter'] . ': </span>' . $lang['i_' . $filter] . ' &raquo; ' . $panels_array[$filter][$filterid];
$show['panel_filter'] = 1;
}
if ($search !== '') {
$output['panel_filter'] = '<span>' . $lang['i_search'] . ': </span>' . $lang['i_result'] . ' &raquo; ' . $search;
$show['panel_filter'] = 1;
}
if ($id > 0) {
$output['panel_filter'] = '<span>' . $lang['i_filter'] . ': </span>' . $lang['i_title'];
$show['panel_filter'] = 1;
}
/* ##################
* # CONTROL REMOTE #
*/##################
if (isset($_SESSION['logged_admin']) && $_SESSION['logged_admin'] == true) {
$show['panel_remote'] = 1;
}
/* ##############
* # MOVIE LIST #
*/##############
if ($setting['per_page'] == 0) {
$limit_sql = '';
} else {
$start = ($page - 1) * $setting['per_page'];
$limit_sql = ' LIMIT ' . $start . ', ' . $setting['per_page'];
}
$list_sql = 'SELECT ' . $mysql_table . '.* FROM ' . $mysql_table . $mysql_table2 . ' WHERE
' . $filter_mysql . '
' . $mysql_table . '.title LIKE "%' . $search_mysql . '%" AND
' . $mysql_table . '.id LIKE "' . $id_mysql . '" AND
' . $mysql_table . '.play_count ' . $watch_mysql . ' AND
' . $mysql_table . '.hide=0
ORDER BY ' . $sort_array[$sort][1] . $limit_sql;
$list_result = mysql_q($list_sql);
// get date for last added
$new_sql = 'SELECT ' . $mysql_table . '.date_added FROM ' . $mysql_table . ' ORDER BY ' . $mysql_table . '.date_added DESC LIMIT 0, 1';
$new_result = mysql_q($new_sql);
$new_date = mysql_fetch_assoc($new_result);
$new_date = substr($new_date['date_added'], 0, 10);
$output_panel_list = '';
while ($list = mysql_fetch_assoc($list_result)) {
// output and show desc arrays
$output_desc = array();
$show_desc = array();
foreach ($item_desc as $val) {
$output_desc[$val] = '';
$show_desc[$val] = 0;
}
$output_desc['mysql_table'] = $mysql_table;
$output_desc['id'] = $list['id'];
$output_desc['video'] = $video;
$output_desc['view'] = $view;
$output_desc['sort'] = $sort;
$output_desc['title'] = $list['title'];
$show_desc['mysql_table'] = 1;
$show_desc['id'] = 1;
$show_desc['video'] = 1;
$show_desc['title'] = 1;
if (isset($_SESSION['logged_admin']) && $_SESSION['logged_admin'] == true && $video == 'movies') {
$show_desc['xbmc'] = 1;
}
// link title
$output_desc['url_title'] = create_url($setting, array('id' => $list['id'], 'video' => $video, 'view' => $view, 'sort' => $sort, 'filter' => $filter, 'filterid' => $filterid));
// originaltitle
if ($list['originaltitle'] !== '') {
$show_desc['originaltitle'] = 1;
$output_desc['originaltitle'] = $list['originaltitle'];
}
// file
if ($video == 'movies') {
$output_desc['file'] = 'http://' . $setting['xbmc_login'] . ':' . $setting['xbmc_pass'] . '@' . $setting['xbmc_host'] . ':' . $setting['xbmc_port'] . '/vfs/' . urlencode($list['file']);
}
// poster
$poster = 'cache/' . $mysql_table . '_' . $list['id'] . '.jpg';
if (!file_exists($poster)) {
$output_desc['poster'] = 'templates/' . $setting['theme'] . '/img/d_poster.jpg';
} else {
$output_desc['poster'] = $poster;
}
// wached status
if ($setting['watched_status'] == 1 && $list['play_count'] > 0) {
$output_desc['watched_img'] = '<img class="watched_img" src="templates/' . $setting['theme'] . '/img/watched.png" title="' . $lang['i_last_played'] . ': ' . $list['last_played'] . '" alt="">';
}
// play count
if ($setting['show_playcount'] == 1 && $list['play_count'] > 0) {
$playcount_array = str_split($list['play_count']);
$output_desc['playcount_img'] = '<div class="playcount_block">';
foreach ($playcount_array as $int) {
$output_desc['playcount_img'].= '<img class="playcount_img" src="templates/' . $setting['theme'] . '/img/' . $int . '.png" title="' . $lang['i_last_played'] . ': ' . $list['last_played'] . '" alt="">';
}
$output_desc['playcount_img'].= '</div>';
}
// genre
$output_genre_array = array();
$genre_sql = 'SELECT genre.id, genre.genre FROM genre, ' . $video . '_genre WHERE ' . $video . '_genre.id = "' . $list['id'] . '" AND genre.id = ' . $video . '_genre.genreid';
$genre_res = mysql_q($genre_sql);
while ($val = mysql_fetch_assoc($genre_res)) {
$output_genre_array[] = '<a href="'. create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => 'genre', 'filterid' => $val['id'])) . '">' . $val['genre'] . '</a>';
}
if (count($output_genre_array) > 0) {
$show_desc['genre'] = 1;
$output_desc['genre'] = implode(' / ', $output_genre_array);
}
// rating
if ($list['rating'] !== '') {
$show_desc['rating'] = 1;
$output_desc['rating'] = $list['rating'];
$show_desc['rating_star'] = 1;
$output_desc['rating_star'] = '';
$r = $output_desc['rating'];
for ($s = 1; $s <= 10; $s++) {
if ($r >= 1) {
$output_desc['rating_star'].= '<img src="templates/' . $setting['theme'] . '/img/star.png"> ';
} else if ($r >= 0.5) {
$output_desc['rating_star'].= '<img src="templates/' . $setting['theme'] . '/img/star_h.png"> ';
} else {
$output_desc['rating_star'].= '<img src="templates/' . $setting['theme'] . '/img/star_g.png"> ';
}
$r--;
}
}
// actors
$output_actor_array = array();
$actor_sql = 'SELECT actor.id, actor.actor FROM actor, ' . $video . '_actor WHERE ' . $video . '_actor.id = "' . $list['id'] . '" AND actor.id = ' . $video . '_actor.actorid ORDER BY ' . $video . '_actor.order';
$actor_res = mysql_q($actor_sql);
while ($val = mysql_fetch_assoc($actor_res)) {
if ($val['actor'] !== '') {
if (file_exists('cache/actors/' . substr(md5($val['actor']), 0, 10) . '.jpg')) {
$actor_thumb = '<img class="actor_thumb" src="cache/actors/' . substr(md5($val['actor']), 0, 10) . '.jpg">';
} else {
$actor_thumb = '';
}
$output_actor_array[] = '<a class="actor_img" href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => 'actor', 'filterid' => $val['id'])) . '" alt="' . substr(md5($val['actor']), 0, 10) . '">' . $actor_thumb . $val['actor'] . '</a>';
}
}
if (count($output_actor_array) > 0) {
$show_desc['actor'] = 1;
$output_desc['actor'] = implode(' / ', $output_actor_array);
}
// plot
if ($list['plot'] !== '') {
$show_desc['plot'] = 1;
$output_desc['plot'] = $list['plot'];
}
// only movies
if ($video == 'movies') {
// year
if ($list['year'] !== '') {
$show_desc['year'] = 1;
$output_desc['year'] = '<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => 'year', 'filterid' => array_search($list['year'], $panels_array['year']))) . '">' . $list['year'] . '</a>';
}
// country
$output_country_array = array();
$country_sql = 'SELECT country.id, country.country FROM country, ' . $video . '_country WHERE ' . $video . '_country.id = "' . $list['id'] . '" AND country.id = ' . $video . '_country.countryid';
$country_res = mysql_q($country_sql);
while ($val = mysql_fetch_assoc($country_res)) {
$output_country_array[] = '<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => 'country', 'filterid' => $val['id'])) . '">' . $val['country'] . '</a>';
}
if (count($output_country_array) > 0) {
$show_desc['country'] = 1;
$output_desc['country'] = implode(' / ', $output_country_array);
}
// runtime
if ($list['runtime'] !== NULL) {
$show_desc['runtime'] = 1;
$output_desc['runtime'] = $list['runtime'];
}
// director
$director_sql = 'SELECT director.id, director.director FROM director, ' . $video . '_director WHERE ' . $video . '_director.id = "' . $list['id'] . '" AND director.id = ' . $video . '_director.directorid';
$director_res = mysql_q($director_sql);
$val = mysql_fetch_assoc($director_res);
if (isset($val['director'])) {
$show_desc['director'] = 1;
$output_desc['director'] = '<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => 'director', 'filterid' => $val['id'])) . '">' . $val['director'] . '</a>';
}
// set
if ($list['set'] !== '') {
$show_desc['set'] = 1;
$output_desc['set'] = '<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => 'set', 'filterid' => array_search($list['set'], $panels_array['set']))) . '">' . $list['set'] . '</a>';
}
// imdb id
if ($list['imdbid'] !== '' && $list['imdbid']{0} == 't') {
$output_desc['imdb_url'] = '<a target="_blank" href="http://www.imdb.com/title/' . $list['imdbid'] . '/"><img class="imdb_img" src="templates/' . $setting['theme'] . '/img/imdb.png"></a>';
}
// studio
$studio_sql = 'SELECT studio.id, studio.studio FROM studio, ' . $video . '_studio WHERE ' . $video . '_studio.id = "' . $list['id'] . '" AND studio.id = ' . $video . '_studio.studioid';
$studio_res = mysql_q($studio_sql);
$val = mysql_fetch_assoc($studio_res);
if (isset($val['studio'])) {
$show_desc['studio'] = 1;
$output_desc['studio'] = '<a href="' . create_url($setting, array('video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => 'studio', 'filterid' => $val['id'])) . '">' . $val['studio'] . '</a>';
if (file_exists('templates/' . $setting['theme'] . '/img/studios/' . $val['studio'] . '.png')) {
$show_desc['studio_art'] = 1;
$output_desc['studio_art'] = '<img class="studio" src="templates/' . $setting['theme'] . '/img/studios/' . $val['studio'] . '.png">';
}
}
// ribbon new
if (substr($list['date_added'], 0, 10) == $new_date) {
$show_desc['ribbon_new'] = 1;
$output_desc['ribbon_new'] = '<div class="ribbon_new_text">' . mb_strtoupper($lang['i_ribbon_new']) . '</div><img class="ribbon_new" src="templates/' . $setting['theme'] . '/img/ribbon_new.png">';
}
// streams
$stream_sql = 'SELECT * FROM `movies_stream` WHERE id = "' . $list['id'] . '"';
$stream_res = mysql_q($stream_sql);
if (mysql_num_rows($stream_res) > 0) {
$str = array('v' => array(), 'a' => array(), 's' => array());
while ($stream = mysql_fetch_assoc($stream_res)) {
$str[$stream['type']][] = $stream;
}
}
$img_flag_vres = '';
$img_flag_vtype = '';
$img_flag_vq = '';
if (isset($str['v'])) {
foreach ($str['v'] as $s) {
// video resolution
foreach ($vres_assoc as $key => $val) {
if (is_numeric($s['v_width']) && $s['v_width'] >= $key) {
$img_flag_vres = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/vres_' . $val . '.png" alt="">';
}
}
// video codec
foreach ($vtype_assoc as $key => $val) {
if (in_array($s['v_codec'], $vtype_assoc[$key])) {
$img_flag_vtype = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/vc_' . $key . '.png" alt="">';
}
}
// video sd, hd or uhd
$img_flag_vq = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/v_sd.png" alt="">';
if (is_numeric($s['v_width']) && $s['v_width'] >= 1280) {
$img_flag_vq = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/v_hd.png" alt="">';
}
if (is_numeric($s['v_width']) && $s['v_width'] >= 3000) {
$img_flag_vq = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/v_uhd.png" alt="">';
}
$output_desc['img_flag_v'].= '<div>' . $img_flag_vres . $img_flag_vtype . $img_flag_vq . '</div>';
}
}
if (isset($str['a'])) {
foreach ($str['a'] as $s) {
// audio codec
foreach ($atype_assoc as $key => $val) {
if(in_array($s['a_codec'], $atype_assoc[$key])) {
$img_flag_atype = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/ac_' . $key . '.png" alt="">';
}
}
// audio channel
foreach ($achan_assoc as $val) {
if (is_numeric($s['a_chan']) && $s['a_chan'] >= $val) {
$img_flag_achan = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/ach_' . $val . '.png" alt="">';
}
}
// audio language
if (file_exists('templates/' . $setting['theme'] . '/img/flags/l_' . check_flag($s['a_lang'], $iso_lang) . '.png')) {
$img_flag_alang = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/l_' . check_flag($s['a_lang'], $iso_lang) . '.png" alt="">';
} else {
$img_flag_alang = $s['a_lang'];
}
$output_desc['img_flag_a'].= '<div>' . $img_flag_atype . $img_flag_achan . $img_flag_alang . '</div>';
}
}
// subtitles
if (isset($str['s'])) {
foreach ($str['s'] as $s) {
if (file_exists('templates/' . $setting['theme'] . '/img/flags/l_' . check_flag($s['s_lang'], $iso_lang) . '.png')) {
$img_flag_slang = '<img src="templates/' . $setting['theme'] . '/img/flags/sub.png" alt=""><img class="flag" src="templates/' . $setting['theme'] . '/img/flags/l_' . check_flag($s['s_lang'], $iso_lang) . '.png" alt="">';
} else {
$img_flag_slang = $s['s_lang'];
}
$output_desc['img_flag_s'].= '<div>' . $img_flag_slang . '</div>';
}
}
// extra thumbs
$ex_thumb_array = array();
for ($c=1;$c<10;$c++) {
$ex_t = 'cache/movies_' . $list['id'] . '_t' . $c . 'm.jpg';
if (file_exists($ex_t)) {
$ex_thumb_array[] = '<img src="' . $ex_t . '">';
}
}
if (count($ex_thumb_array) > 0) {
$show_desc['extra_thumbs'] = 1;
$output_desc['extra_thumbs'] = '<div class="ex_thumbs">' . implode('', $ex_thumb_array) . '</div>';
}
// trailer
if ($list['trailer'] !== '' && $setting['show_trailer'] == 1) {
$output_desc['trailer_img'] = '<a href="' . create_url($setting, array('id' => $list['id'], 'video' => $video, 'view' => $view, 'watch' => $watch, 'sort' => $sort, 'filter' => $filter, 'filterid' => $filterid)) . '#trailer"><img class="trailer_img animate" src="templates/' . $setting['theme'] . '/img/trailer.png" title="' . $lang['i_show_trailer'] . '" alt=""></a>';
}
if ($list['trailer'] !== '' && $setting['show_trailer'] == 1 && $id <> 0) {
$show_desc['trailer'] = 1;
if (substr($list['trailer'], 0, 18) == 'http://www.youtube') {
$output_desc['trailer'].= '
<iframe id="player" type="text/html" width="560" height="260" src="' . $list['trailer'] . '" frameborder="0"></iframe>
';
} else {
$ext = substr($list['trailer'], strrpos($list['trailer'], '.')+1, strlen($list['trailer']));
foreach ($mimetype_assoc as $key => $val) {
if(in_array($ext, $val)) {
$mimetype = $key;
break;
} else {
$mimetype = '';
}
}
if ($ext == 'mov') {
$output_desc['trailer'].= '
<embed src="' . $list['trailer'] . '" width="560" height="260" cache="false" autoplay="false" scale="tofit" />';
} else {
$output_desc['trailer'].= '
<video id="player" class="video-js vjs-default-skin player" controls preload="none" width="560" height="260" data-setup="{}">
<source src="' . $list['trailer'] . '" type="' . $mimetype . '" />
</video>';
}
}
}
}
// only tvshows
if ($video == 'tvshows') {
// premiered
if ($list['premiered'] !== '') {
$show_desc['premiered'] = 1;
$output_desc['premiered'] = '<a href="' . create_url($setting, array('video' => 'tvshows', 'view' => $view, 'sort' => $sort, 'filter' => 'premiered', 'filterid' => array_search($list['premiered'], $panels_array['premiered']))) . '">' . $list['premiered'] . '</a>';
}
// seasons
$season_array = array();
$seasons_sql = 'SELECT season FROM episodes WHERE tvshow = "' . $list['id'] . '" ORDER BY season';
$seasons_result = mysql_q($seasons_sql);
while ($seasons = mysql_fetch_array($seasons_result)) {
if (!array_key_exists($seasons['season'], $season_array)) {
$season_array[$seasons['season']] = '<a href="' . create_url($setting, array('video' => 'tvshows', 'view' => $view, 'id' => $list['id'])) . '#season_' . $seasons['season'] . '">' . $lang['i_season'] . ' ' . $seasons['season'] . '</a>';
}
}
if (count($season_array) <> 0) {
$show_desc['seasons'] = 1;
$output_desc['seasons'] = implode(' / ', $season_array);
}
// episodes
if ($id <> 0) {
// get date for last added episode
$new_episode_sql = 'SELECT date_added FROM episodes ORDER BY date_added DESC LIMIT 0, 1';
$new_episode_result = mysql_q($new_episode_sql);
$new_episode_date = mysql_fetch_assoc($new_episode_result);
$new_episode_date = substr($new_episode_date['date_added'], 0, 10);
$show_desc['episodes'] = 1;
$episodes_sql = 'SELECT id, title, episode, season, plot, firstaired, file, play_count, date_added, last_played FROM episodes WHERE tvshow = "' . $list['id'] . '" ORDER BY season, episode ASC';
$episodes_result = mysql_q($episodes_sql);
$i = -1;
$output_epiosde_list = '';
while ($episodes = mysql_fetch_assoc($episodes_result)) {
// output and show episodes arrays
$output_episode = array();
$show_episode = array();
foreach ($item_episode as $val) {
$output_episode[$val] = '';
$show_episode[$val] = 0;
}
if (isset($_SESSION['logged_admin']) && $_SESSION['logged_admin'] == true && $video == 'tvshows') {
$show_episode['xbmc'] = 1;
}
$output_episode['episode'] = $episodes['id'];
$output_episode['season'] = $episodes['season'];
$output_episode['plot'] = $episodes['plot'];
$output_episode['aired'] = $episodes['firstaired'];
// title
$output_episode['title'] = $episodes['episode'] . '. ' . ($episodes['title'] == '' ? $lang['i_episode'] . ' ' . $episodes['episode'] : $episodes['title']);
// file
$output_episode['file'] = 'http://' . $setting['xbmc_login'] . ':' . $setting['xbmc_pass'] . '@' . $setting['xbmc_host'] . ':' . $setting['xbmc_port'] . '/vfs/' . urlencode($episodes['file']);
// thumbnail
if (file_exists('cache/episodes_' . $episodes['id'] . '.jpg')) {
$output_episode['thumbnail'] = '<img class="thumbnail" src="cache/episodes_' . $episodes['id'] . '.jpg">';
} else {
$output_episode['thumbnail'] = '<img class="thumbnail" src="templates/' . $setting['theme'] . '/img/d_thumbnail.jpg">';
}
// wached status
if ($setting['watched_status'] == 1 && $episodes['play_count'] > 0) {
$output_episode['watched_img'] = '<img class="episode_watched" src="templates/' . $setting['theme'] . '/img/watched.png" title="' . $lang['i_last_played'] . ': ' . $episodes['last_played'] . '" alt="">';
}
// episode ribbon new
if (substr($episodes['date_added'], 0, 10) == $new_episode_date) {
$output_episode['ribbon_new'] = '<div class="episode_ribbon_new_text">' . mb_strtoupper($lang['i_ribbon_new']) . '</div><img class="episode_ribbon_new" src="templates/' . $setting['theme'] . '/img/ribbon_new.png">';
}
// episode streams
$stream_sql = 'SELECT * FROM `episodes_stream` WHERE id = "' . $episodes['id'] . '"';
$stream_res = mysql_q($stream_sql);
if (mysql_num_rows($stream_res) > 0) {
$str = array('v' => array(), 'a' => array(), 's' => array());
while ($stream = mysql_fetch_assoc($stream_res)) {
$str[$stream['type']][] = $stream;
}
}
$img_flag_vres = '';
$img_flag_vtype = '';
$img_flag_vq = '';
if (isset($str['v'])) {
foreach ($str['v'] as $s) {
// episode video resolution
foreach ($vres_assoc as $key => $val) {
if (is_numeric($s['v_width']) && $s['v_width'] >= $key) {
$img_flag_vres = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/vres_' . $val . '.png" alt="">';
}
}
// episode video codec
foreach ($vtype_assoc as $key => $val) {
if (in_array($s['v_codec'], $vtype_assoc[$key])) {
$img_flag_vtype = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/vc_' . $key . '.png" alt="">';
}
}
// episode video sd, hd or uhd
$img_flag_vq = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/v_sd.png" alt="">';
if (is_numeric($s['v_width']) && $s['v_width'] >= 1280) {
$img_flag_vq = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/v_hd.png" alt="">';
}
if (is_numeric($s['v_width']) && $s['v_width'] >= 3000) {
$img_flag_vq = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/v_uhd.png" alt="">';
}
$output_episode['img_flag_v'].= $img_flag_vres . $img_flag_vtype . $img_flag_vq;
}
}
if (isset($str['a'])) {
foreach ($str['a'] as $s) {
// episode audio codec
foreach ($atype_assoc as $key => $val) {
if(in_array($s['a_codec'], $atype_assoc[$key])) {
$img_flag_atype = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/ac_' . $key . '.png" alt="">';
}
}
// episode audio channel
foreach ($achan_assoc as $val) {
if (is_numeric($s['a_chan']) && $s['a_chan'] >= $val) {
$img_flag_achan = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/ach_' . $val . '.png" alt="">';
}
}
// episode audio language
if (file_exists('templates/' . $setting['theme'] . '/img/flags/l_' . check_flag($s['a_lang'], $iso_lang) . '.png')) {
$img_flag_alang = '<img class="flag" src="templates/' . $setting['theme'] . '/img/flags/l_' . check_flag($s['a_lang'], $iso_lang) . '.png" alt="">';
} else {
$img_flag_alang = $s['a_lang'];
}
$output_episode['img_flag_a'].= $img_flag_atype . $img_flag_achan . $img_flag_alang;
}
}
if (isset($str['s'])) {
foreach ($str['s'] as $s) {
// episode subtitles
if (file_exists('templates/' . $setting['theme'] . '/img/flags/l_' . check_flag($s['s_lang'], $iso_lang) . '.png')) {
$img_flag_slang = '<img src="templates/' . $setting['theme'] . '/img/flags/sub.png" alt=""><img class="flag" src="templates/' . $setting['theme'] . '/img/flags/l_' . check_flag($s['s_lang'], $iso_lang) . '.png" alt="">';
} else {
$img_flag_slang = $s['s_lang'];
}
$output_episode['img_flag_s'].= $img_flag_slang ;
}
}
if ($episodes['season'] <> $i) {
$show_episode['season_title'] = 1;
}
$i = $episodes['season'];
$episode_list = new Teamplate('episodes.tpl', $setting, $lang);
foreach ($output_episode as $key => $val) {
$episode_list->tpl($key, $val);
}
foreach ($show_episode as $key => $val) {
$episode_list->show($key, $val);
}
$output_epiosde_list.= $episode_list->init();
$output_desc['episodes'] = $output_epiosde_list;
}
}
}
// facebook meta data
if ($setting['show_facebook'] == 1) {
$show_desc['facebook_button'] = 1;
}
$url = 'http://' . $_SERVER['SERVER_NAME'] . implode('/', array_slice(explode('/', $_SERVER['REQUEST_URI']), 0, -1)) . '/';
$output_desc['fb_url'] = $url . 'index.php?video=' . $video . '&fb_link=' . urlencode($list['title']) . ($video == 'movies' ? $list['year'] : '');
if ($id <> 0) {
$output['meta_img'] = (file_exists('cache/' . $mysql_table . '_' . $id . '.jpg') ? $url . 'cache/' . $mysql_table . '_' . $id . '.jpg' : 'templates/' . $setting['theme'] . '/img/d_poster.jpg');
$output['meta_title'] = htmlspecialchars($list['title']);
$output['meta_desc'] = htmlspecialchars($list['plot']);
$output['meta_url'] = $output_desc['fb_url'];
$output['meta_type'] = ($video == 'tvshows' ? 'video.tv_show' : 'video.movie');
}
// panel movie
$panel_list = new Teamplate($views[$include_view] . '.tpl', $setting, $lang);
foreach ($output_desc as $key => $val) {
$panel_list->tpl($key, $val);
}
foreach ($show_desc as $key => $val) {
$panel_list->show($key, $val);
}
$output_panel_list.= $panel_list->init();
}
$output['panel_list'] = $output_panel_list;
$output['sort'] = $sort;
// faccebok meta data
if ($id == 0) {
$url = 'http://' . $_SERVER['SERVER_NAME'] . implode('/', array_slice(explode('/', $_SERVER['REQUEST_URI']), 0, -1)) . '/';
$output['meta_title'] = $setting['site_name'];
$output['meta_url'] = $url . 'index.php';
$output['meta_img'] = $url . ('templates/' . $setting['theme'] . '/img/logo.jpg');
$output['meta_type'] = 'website';
$output['meta_desc'] = 'Page whereby using XBMC can present your library of movies and TV series.';
}
if ($setting['show_facebook'] == 1) {
$show['facebook'] = 1;
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$get_lang = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
} else {
$get_lang = 'en';
}
if (array_key_exists ($get_lang , $lang_fb_assoc)) {
$lang_fb = $lang_fb_assoc[$get_lang];
} else {
$lang_fb = $lang_fb_assoc['en'];
}
$output['facebook'] = '<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/' . $lang_fb . '/sdk.js#xfbml=1&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, \'script\', \'facebook-jssdk\'));</script>';
}
// create page
$index = new Teamplate('index.tpl', $setting, $lang);
foreach ($output as $key => $val) {
$index->tpl($key, $val);
}
foreach ($show as $key => $val) {
$index->show($key, $val);
}
$site = $index->init();
print $site;
?>