'; } /* ###################### * CHECK ADMIN PASSWORD # */###################### if (!isset($_SESSION['logged_admin']) or $_SESSION['logged_admin'] !== true) { header('Location:login.php?login=admin'); die('Cant\'t redirect to login.php'); } /* ############# * # CHECK DIR # */############# foreach ($dir_assoc as $dir) { if (!file_exists($dir)) { mkdir($dir); } } /* ############# * # MAIN SITE # */############# $output_panel = ''; if ($option == '') { // get version from db $db_vers_sql = 'SELECT version FROM config'; $db_vers_result = mysql_q($db_vers_sql); $db_version_assoc = mysql_fetch_assoc($db_vers_result); $db_version = $db_version_assoc['version']; // check tables if versions not match if ($db_version !== $version or isset($_GET['tables'])) { $output_panel_info.= create_table($mysql_tables, $mysql_indexes, $lang, $version, 0); // delete session var $_SESSION = array(); $_SESSION['logged_admin'] = true; } // Watched $overall_movies_sql = 'SELECT play_count, hide FROM movies'; $overall_movies_result = mysql_q($overall_movies_sql); $overall_movies_all = mysql_num_rows($overall_movies_result); $overall_movies_watched = 0; $overall_movies_hidden = 0; while ($overall_movies = mysql_fetch_array($overall_movies_result)) { if ($overall_movies['hide'] == 1) { $overall_movies_hidden++; } else { if ($overall_movies['play_count'] > 0) { $overall_movies_watched++; } } } $overall_movies_unwatched = $overall_movies_all - $overall_movies_watched; $overall_tvshows_sql = 'SELECT play_count, hide FROM tvshows'; $overall_tvshows_result = mysql_q($overall_tvshows_sql); $overall_tvshows_all = mysql_num_rows($overall_tvshows_result); $overall_tvshows_watched = 0; $overall_tvshows_hidden = 0; while ($overall_tvshows = mysql_fetch_array($overall_tvshows_result)) { if ($overall_tvshows['hide'] == 1) { $overall_tvshows_hidden++; } else { if ($overall_tvshows['play_count'] > 0) { $overall_tvshows_watched++; } } } $overall_tvshows_unwatched = $overall_tvshows_all - $overall_tvshows_watched; // Cached poster and fanarts $cached_dir = scandir('cache/'); $poster_cached = 0; $fanart_cached = 0; $exthumb_cached = 0; foreach ($cached_dir as $val) { if (preg_match_all('/_[0-9]+\.jpg/', $val, $res) == 1) { $poster_cached++; } if (preg_match_all('/_[0-9]+_f\.jpg/', $val, $res) == 1) { $fanart_cached++; } if (preg_match_all('/_[0-9]+_t[0-9]\.jpg/', $val, $res) == 1) { $exthumb_cached++; } } // Cached actors $cached_dir = scandir('cache/actors/'); $actors_cached = 0; foreach ($cached_dir as $val) { if (preg_match_all('/[0-9a-z]{10}\.jpg/', $val, $res) == 1) { $actors_cached++; } } // Directories $output_dirs = ''; foreach ($dir_assoc as $dir) { if (file_exists($dir)) { $output_dirs.= '' . $dir . '' . (file_exists($dir) ? '' . $lang['a_exists'] . '' : '' . $lang['a_not_exists'] . '') . ''; } } // MD5 files $md5_file = 'files.md5'; $output_md5 = ''; $fp = fopen($md5_file, 'r'); $data = fread($fp, filesize($md5_file)); fclose($fp); foreach (explode(';', $data) as $f) { $file = explode(':', $f); $output_md5.= '' . $file[0] . '' . (md5_file($file[0]) == $file[1] ? '' . $lang['a_match'] . '' : '' . $lang['a_mismatch'] . '') . ''; } $output_panel = ' ' . $output_dirs . ' ' . $output_md5 . '
' . $lang['a_movies'] . '
' . $lang['a_all'] . '' . $overall_movies_all . '
' . $lang['a_watched'] . '' . $overall_movies_watched . '
' . $lang['a_unwatched'] . '' . $overall_movies_unwatched . '
' . $lang['a_hidden'] . '' . $overall_movies_hidden . '
' . $lang['a_tvshows'] . '
' . $lang['a_all'] . '' . $overall_tvshows_all . '
' . $lang['a_watched'] . '' . $overall_tvshows_watched . '
' . $lang['a_unwatched'] . '' . $overall_tvshows_unwatched . '
' . $lang['a_hidden'] . '' . $overall_tvshows_hidden . '
' . $lang['a_cache'] . '
' . $lang['a_cached_posters'] . '' . $poster_cached . '
' . $lang['a_cached_fanarts'] . '' . $fanart_cached . '
' . $lang['a_cached_actors'] . '' . $actors_cached . '
' . $lang['a_cached_exthumb'] . '' . $exthumb_cached . '
' . $lang['a_server_settings'] . '
GD' . (extension_loaded('gd') && function_exists('gd_info') ? '' . $lang['a_setting_on'] . '' : '' . $lang['a_setting_off'] . '') . '
CURL' . (function_exists('curl_version') ? '' . $lang['a_setting_on'] . '' : '' . $lang['a_setting_off'] . '') . '
MOD REWRITE' . (array_key_exists('HTTP_MOD_REWRITE', $_SERVER) ? '' . $lang['a_setting_on'] . '' : '' . $lang['a_setting_off'] . '') . '
ALLOW URL FOPEN' . (ini_get('allow_url_fopen') == 1 ? '' . $lang['a_setting_on'] . '' : '' . $lang['a_setting_off'] . '') . '
MAX EXECUTION TIME' . ini_get('max_execution_time') . '
UPLOAD MAX FILESIZE' . ini_get('upload_max_filesize') . '
POST MAX SIZE' . ini_get('post_max_size') . '
' . $lang['a_server_directories'] . '
' . $lang['a_files_md5'] . '
'; } /* ######################### * # MOVIE AND TVSHOW LIST # */######################### if ($option == 'movieslist' or $option == 'tvshowslist') { if ($option == 'movieslist') { $t = 'movies'; $list_sql = 'SELECT id, title, trailer, play_count, hide FROM movies ORDER BY title'; } else { $t = 'tvshows'; $list_sql = 'SELECT id, title, play_count, hide FROM tvshows ORDER BY title'; } $list_result = mysql_q($list_sql); $output_panel = ' '; $i = 0; while ($list = mysql_fetch_array($list_result)) { if (file_exists('cache/' . $t . '_' . $list['id'] . '.jpg')) { $poster_exist = ''; } else { $poster_exist = ''; } if (file_exists('cache/' . $t . '_' . $list['id'] . '_f.jpg')) { $fanart_exist = ''; } else { $fanart_exist = ''; } if ($t == 'movies' && stristr($list['trailer'], 'http://')) { $trailer_link = ''; } else { $trailer_link = ''; } if ($list['hide'] == 1) { $hide = ''; } else { $hide = ''; } $i++; $output_panel.= ' '; } $output_panel.= '
ID ' . $lang['a_title'] . '
' . $i . '' . $list['id'] . ' ' . $list['title'] . ' ' . $poster_exist . ' ' . $fanart_exist . ' ' . $trailer_link . ' ' . $hide . '
' . $lang['a_delete_all'] . ''; } // DELETE ALL if ($option == 'delete_all_movies' or $option == 'delete_all_tvshows') { if ($option == 'delete_all_movies') { $truncate = array('movies', 'movies_country', 'movies_actor', 'movies_director', 'movies_genre', 'movies_stream', 'movies_studio'); $reg_exp = '#^(movies)#'; } else { $truncate = array('tvshows', 'tvshows_actor', 'tvshows_genre', 'episodes', 'episodes_stream'); $reg_exp = '#^(tvshows|episodes)#'; } foreach ($truncate as $t) { $sql = 'TRUNCATE `' . $t . '`'; mysql_q($sql); } $files = scandir('cache/'); $files_to_remove = array(); foreach($files as $file) { $match = preg_match_all($reg_exp, $file); if ($match > 0) { $files_to_remove[] = $file; } } remove_images($files_to_remove); } /* ############ * # SETTINGS # */############ if ($option == 'settings') { $output_lang = ''; $output_theme = ''; $output_select_media_header = ''; $output_view = ''; $output_panel_top = ''; $output_panel_view = ''; $output_watched_status = ''; $output_show_playcount = ''; $output_live_search = ''; $output_live_search_max_res = ''; $output_panel_overall = ''; $output_panel_genre = ''; $output_panel_year = ''; $output_panel_country = ''; $output_panel_set = ''; $output_panel_studio = ''; $output_show_fanart = ''; $output_fadeout_fanart = ''; $output_show_trailer = ''; $output_show_facebook = ''; $output_protect_site = ''; $output_mod_rewrite = ''; $output_per_page = ''; $output_default_sort = ''; $output_default_watch = ''; $output_panel_top_limit = ''; $output_xbmc_thumbs = ''; $output_xbmc_posters = ''; $output_xbmc_fanarts = ''; $output_xbmc_exthumbs = ''; $output_xbmc_exthumbs_q = ''; $output_xbmc_auto_conf_remote = ''; $output_xbmc_master = ''; // set language input $option_language = scandir('lang/'); foreach ($option_language as $val) { if (file_exists('lang/' . $val . '/lang.php')) { if (array_key_exists($val, $langs)) { $lang_title = $langs[$val]; } else { $lang_title = $val; } $output_lang.= '' . $lang_title . ''; } } // set default sort $sort_array = array( 1 => $lang['i_title'], 4 => $lang['i_rating'], 5 => $lang['i_added'], 7 => $lang['i_last_played'], 8 => $lang['i_most_watched'] ); foreach ($sort_array as $key => $val) { $output_default_sort.= '' . $val . ''; } // set default watch $watch_array = array( 0 => $lang['i_all'], 1 => $lang['i_watched'], 2 => $lang['i_unwatched'] ); foreach ($watch_array as $key => $val) { $output_default_watch.= '' . $val . ''; } // set theme input $option_theme = scandir('templates/'); foreach ($option_theme as $val) { if ($val !== '.' && $val !== '..') { $output_theme.= '' . $val . ''; } } // set view input foreach ($views as $key => $val) { $output_view.= '' . $lang['a_' . $val] . ''; } // extra thumbs size $dimens = array('1920x1080', '1280x720', '853x480'); foreach ($dimens as $val) { $output_xbmc_exthumbs_q.= '' . $val . ''; } $mode = array(0, 1); foreach ($mode as $val) { $output_panel_top.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_select_media_header.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_panel_view.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_watched_status.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_show_playcount.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_live_search.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_show_fanart.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_fadeout_fanart.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_show_trailer.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_show_facebook.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_protect_site.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_mod_rewrite.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_xbmc_thumbs.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_xbmc_posters.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_xbmc_fanarts.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_xbmc_exthumbs.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_xbmc_auto_conf_remote.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; $output_xbmc_master.= '' . ($val == 0 ? $lang['a_setting_off'] : $lang['a_setting_on']) . ''; } $mode2 = array(0 => $lang['a_setting_off'], 1 => $lang['a_setting_on_expanded'], 2 => $lang['a_setting_on_collapsed']); foreach ($mode2 as $key => $val) { $output_panel_overall.= '' . $val . ''; $output_panel_genre.= '' . $val . ''; $output_panel_year.= '' . $val . ''; $output_panel_country.= '' . $val . ''; $output_panel_set.= '' . $val . ''; $output_panel_studio.= '' . $val . ''; } $quantity = array(5, 10, 20, 50, 100); foreach ($quantity as $val) { // set per page input $output_per_page.= '' . $val . ''; // set panel top limit $output_panel_top_limit.= '' . $val . ''; // set live search max res $output_live_search_max_res.= '' . $val . ''; } // output form $output_panel.= '
' . $lang['a_set_sync'] . '
' . $lang['a_xbmc_thumbs'] . ':
' . $lang['a_xbmc_posters'] . ':
' . $lang['a_xbmc_fanarts'] . ':
' . $lang['a_xbmc_exthumbs'] . ':
' . $lang['a_xbmc_exthumbs_q'] . ':
' . $lang['a_xbmc_auto_conf_remote'] . ':
' . $lang['a_xbmc_master'] . ':
' . $lang['a_set_main'] . '
' . $lang['a_site_name'] . ':
' . $lang['a_language'] . ':
' . $lang['a_theme'] . ':
' . $lang['a_select_media_header'] . ':
' . $lang['a_view'] . ':
' . $lang['a_per_page'] . ':
' . $lang['a_default_sort'] . ':
' . $lang['a_default_watch'] . ':
' . $lang['a_panel_top'] . ':
' . $lang['a_panel_view'] . ':
' . $lang['a_watched_status'] . ':
' . $lang['a_show_playcount'] . ':
' . $lang['a_live_search'] . ':
' . $lang['a_live_search_max_res'] . ':
' . $lang['a_show_fanart'] . ':
' . $lang['a_fadeout_fanart'] . ':
' . $lang['a_show_trailer'] . ':
' . $lang['a_show_facebook'] . ':
' . $lang['a_protect_site'] . ':
' . $lang['a_mod_rewrite'] . ':
' . $lang['a_set_panel_left'] . '
' . $lang['a_panel_overall'] . ':
' . $lang['a_panel_genre'] . ':
' . $lang['a_panel_year'] . ':
' . $lang['a_panel_country'] . ':
' . $lang['a_panel_set'] . ':
' . $lang['a_panel_studio'] . ':
' . $lang['a_set_panel_top'] . '
' . $lang['a_panel_top_time'] . ':
' . $lang['a_panel_top_limit'] . ':

'; } // Saving settings if ($option == 'settings_save' && isset($_POST) && count($_POST) > 10) { $settings_array = array(); $test = true; foreach ($_POST as $key => $val) { $settings_array[] = $key . ' = "' . $val . '"'; if (strlen($val) == 0) { $test = false; break; } } $settings_update_sql = 'UPDATE config SET ' . implode(', ', $settings_array); // delete session var $_SESSION = array(); $_SESSION['logged_admin'] = true; if ($test) { $settings_update_res = mysql_q($settings_update_sql); $output_panel_info.= $lang['a_saved'] . '
'; } else { $output_panel_info.= $lang['a_not_saved'] . '
'; } reset_hash(); } /* ################### * # CHANGE PASSWORD # */################### if ($option == 'password') { $output_panel.= '
' . $lang['a_user'] . '
' . $lang['a_new_password'] . '
' . $lang['a_new_password_re'] . '
' . $lang['a_admin'] . '
' . $lang['a_new_password'] . '
' . $lang['a_new_password_re'] . '

'; } // Save password if ($option == 'password_save') { if (strlen($_POST['password']) > 0) { if ($_POST['password'] == $_POST['password_re']) { if (strlen($_POST['password']) > 3) { $password_update_sql = 'UPDATE users SET password = "' . md5($_POST['password']) . '" WHERE login ="user"'; mysql_q($password_update_sql); $output_panel_info.= $lang['a_user_pass_changed'] . '
'; } else { $output_panel_info.= $lang['a_user_pass_min'] . '
'; } } else { $output_panel_info.= $lang['a_user_pass_n_match'] . '
'; } } if (strlen($_POST['password_admin']) > 0) { if ($_POST['password_admin'] == $_POST['password_admin_re']) { if (strlen($_POST['password_admin']) > 3) { $password_update_sql = 'UPDATE users SET password = "' . md5($_POST['password_admin']) . '" WHERE login ="admin"'; mysql_q($password_update_sql); $output_panel_info.= $lang['a_admin_pass_changed'] . '
'; } else { $output_panel_info.= $lang['a_admin_pass_min'] . '
'; } } else { $output_panel_info.= $lang['a_admin_pass_n_match'] . '
'; } } } // check admin pass is not default $pass_check_sql = 'SELECT * FROM users WHERE login = "admin"'; $pass_check_result = mysql_q($pass_check_sql); $pass_check = mysql_fetch_array($pass_check_result); if ($pass_check['password'] == '21232f297a57a5a743894a0e4a801fc3') { $output_panel_info.= $lang['a_pass_default'] . '
'; } /* ######### * # TOKEN # */######### if ($option == 'token') { if (isset($_POST['new_token'])) { $new_token = change_token(); $output_panel_info.= $lang['a_token_changed'] . '
'; } else { $new_token = $setting['token']; } $output_panel.= '
Token:' . $new_token . '

'; } /* ########## * # BANNER # */########## if ($option == 'banner') { if (isset($_POST['banner'])) { foreach ($_POST['banner'] as $val) { if (!is_numeric($val)) { if (!preg_match('/^[0-9abcdefABCDEF]{6}$/', $val)) { $false = true; break; } } } if (!isset($false)) { $update_sql = 'UPDATE config SET `banner` = "' . banner2str($_POST['banner']) . '"'; mysql_q($update_sql); $_SESSION['banner'] = $setting['banner'] = banner2str($_POST['banner']); $b = create_banner($lang, 'banner.jpg', banner2str($_POST['banner'])); } else { $output_panel_info.= $lang['a_error_form']; } } if (isset($_POST['reset'])) { $b = create_banner($lang, 'banner.jpg', '0'); $_SESSION['banner'] = $setting['banner'] = banner2str($b); } $b = create_banner($lang, 'banner_v.jpg', $setting['banner']); $output_panel.= ''; $output_panel.= ''; $output_panel.= '

'; $output_panel.= '

'; $url = 'http://' . $_SERVER['SERVER_NAME'] . implode('/', array_slice(explode('/', $_SERVER['REQUEST_URI']), 0, -1)) . '/'; $output_panel.= ''; } /* ######## * # XBMC # */######## if ($option == 'xbmc') { $_SESSION = array(); $_SESSION['logged_admin'] = true; if ($setting['xbmc_auto_conf_remote'] == 1) { $output_panel.= '

' . $lang['a_xbmc_auto_conf_enabled'] . '

'; $d = 'disabled'; } else { $d = ''; } $output_panel.= '
' . $lang['a_xbmc_settings'] . '
' . $lang['a_xbmc_host'] . '
' . $lang['a_xbmc_port'] . '
' . $lang['a_xbmc_login'] . '
' . $lang['a_xbmc_pass'] . '
' . $lang['a_xmbc_test'] . '
'; } // Save connection if ($option == 'xbmc_save') { $xbmc_update_sql = 'UPDATE config SET xbmc_host = "' . $_POST['xbmc_host'] . '", xbmc_port = "' . $_POST['xbmc_port'] . '", xbmc_login = "' . $_POST['xbmc_login'] . '", xbmc_pass = "' . $_POST['xbmc_pass'] . '"'; mysql_q($xbmc_update_sql); $output_panel_info.= $lang['a_xbmc_saved'] . '
'; $_SESSION = array(); $_SESSION['logged_admin'] = true; } /* ############## * # PANEL INFO # */############## if ($output_panel_info !== '') { $output_panel_info = '
' . $output_panel_info . '
'; } ?> <?PHP echo $setting['site_name'] ?> - <?PHP echo $lang['a_html_admin_panel'] ?>