db = $db; $admin->url = $CONF['url']; if(isset($_POST['login'])) { $admin->username = $_POST['username']; $admin->password = $_POST['password']; // Attempt to auth the user $auth = $admin->auth(); // If the user has been logged-in if($auth) { header("Location: ".$CONF['url']."/index.php?a=admin"); } // If the user could not be logged-in elseif(isset($_POST['login'])) { $TMPL['message'] = notificationBox('error', $LNG['invalid_user_pw']); $admin->logOut(false); } } else { if(isset($_SESSION['adminUsername'])) { $admin->username = $_SESSION['adminUsername']; $admin->password = $_SESSION['adminPassword']; // Attempt to auth the user $user = $admin->auth(); } } if(isset($_SESSION['adminUsername']) && isset($_SESSION['is_admin'])) { // Set the content to true, change the $skin to content $content = true; $TMPL_old = $TMPL; $TMPL = array(); $TMPL['url'] = $CONF['url']; $TMPL['token_input'] = generateToken($_SESSION['token_id']); $TMPL['token_id'] = $_SESSION['token_id']; if(isset($_GET['b']) && $_GET['b'] == 'security') { // Security Admin Tab $skin = new skin('admin/security'); $page = ''; if(!empty($_POST)) { $updateSettings = new updateSettings(); $updateSettings->db = $db; $updated = $updateSettings->query_array('admin', $_POST); header("Location: ".$CONF['url']."/index.php?a=admin&b=security&m=".$updated); } if(isset($_GET['m']) && $_GET['m'] == 1) { $TMPL['message'] = notificationBox('success', $LNG['password_changed']); } elseif(isset($_GET['m']) && $_GET['m'] == 2) { $TMPL['message'] = notificationBox('error', $LNG['wrong_current_password']); } elseif(isset($_GET['m']) && $_GET['m'] == 3) { $TMPL['message'] = notificationBox('error', $LNG['password_not_match']); } elseif(isset($_GET['m']) && $_GET['m'] == 4) { $TMPL['message'] = notificationBox('error', $LNG['password_too_short']); } elseif(isset($_GET['m']) && $_GET['m'] == 0 && isset($_GET['m'])) { $TMPL['message'] = notificationBox('info', $LNG['password_not_changed']); } } elseif(isset($_GET['b']) && $_GET['b'] == 'payments') { $managePayments = new managePayments(); $managePayments->db = $db; $managePayments->url = $CONF['url']; $managePayments->per_page = $settings['rperpage']; if(isset($_GET['id'])) { $skin = new skin('admin/payment'); $page = ''; if(isset($_GET['type']) && $_GET['token_id'] == $_SESSION['token_id']) { $managePayments->updatePayment($_GET['id'], $_GET['type']); header("Location: ".$CONF['url']."/index.php?a=admin&b=payments&id=".$_GET['id']); } $TMPL['content'] = $managePayments->getPayment($_GET['id']); // If the payment doens't exist if(empty($TMPL['content'])) { header("Location: ".$CONF['url']."/index.php?a=admin&b=payments&m=i"); } } else { $skin = new skin('admin/manage_payments'); $page = ''; $TMPL['payments'] = $managePayments->getPayments(0); } if(isset($_GET['m']) && $_GET['m'] == 'i') { $TMPL['message'] = notificationBox('error', $LNG['payment_not_exist']); } } elseif(isset($_GET['b']) && $_GET['b'] == 'pro') { // Security Admin Tab $skin = new skin('admin/pro'); $page = ''; if(!extension_loaded('openssl')) { $TMPL['message'] .= notificationBox('error', $LNG['openssl_error']); } if(!function_exists('curl_exec')) { $TMPL['message'] .= notificationBox('info', $LNG['curl_error']); } $TMPL['ppclientid'] = $settings['paypalclientid']; $TMPL['ppsecret'] = $settings['paypalsecret']; $TMPL['currentProMonth'] = $settings['promonth']; $TMPL['currentProYear'] = $settings['proyear']; if(empty($settings['paypalapp'])) { $TMPL['ppappoff'] = ' selected="selected"'; } else { $TMPL['ppappon'] = ' selected="selected"'; } if(empty($settings['paypalsand'])) { $TMPL['ppsandoff'] = ' selected="selected"'; } else { $TMPL['ppsandon'] = ' selected="selected"'; } $TMPL['protracksize'] = round(($settings['protracksize'] / 1024) / 1024); $TMPL['protracktotal'] = round(($settings['protracktotal'] / 1024) / 1024); $TMPL['tracksize'] = round(($settings['tracksize'] / 1024) / 1024); $TMPL['tracksizetotal'] = round(($settings['tracksizetotal'] / 1024) / 1024); $TMPL['currency'] = $settings['currency']; if(!empty($_POST)) { // Transform the user's value in the appropriate format $_POST['protracksize'] = ($_POST['protracksize'] * 1024) * 1024; $_POST['protracktotal'] = ($_POST['protracktotal'] * 1024) * 1024; $_POST['tracksize'] = ($_POST['tracksize'] * 1024) * 1024; $_POST['tracksizetotal'] = ($_POST['tracksizetotal'] * 1024) * 1024; $updateSettings = new updateSettings(); $updateSettings->db = $db; $updated = $updateSettings->query_array('settings', $_POST); if($updated == 1) { header("Location: ".$CONF['url']."/index.php?a=admin&b=pro&m=s"); } else { header("Location: ".$CONF['url']."/index.php?a=admin&b=pro&m=i"); } } if(isset($_GET['m']) && $_GET['m'] == 's') { $TMPL['message'] = notificationBox('success', $LNG['settings_saved']); } elseif(isset($_GET['m']) && $_GET['m'] == 'i') { $TMPL['message'] = notificationBox('info', $LNG['nothing_changed']); } } elseif(isset($_GET['b']) && $_GET['b'] == 'stats') { // Security Admin Tab $skin = new skin('admin/stats'); $page = ''; list($TMPL['tracks_total'], $TMPL['tracks_public'], $TMPL['tracks_private'], $TMPL['comments_total'], $TMPL['users_today'], $TMPL['users_this_month'], $TMPL['users_last_30'], $TMPL['users_total'], $TMPL['total_reports'], $TMPL['pending_reports'], $TMPL['safe_reports'], $TMPL['deleted_reports'], $TMPL['total_tracks_reports'], $TMPL['pending_track_reports'], $TMPL['safe_track_reports'], $TMPL['deleted_track_reports'], $TMPL['total_comment_reports'], $TMPL['pending_comment_reports'], $TMPL['safe_comment_reports'], $TMPL['deleted_comment_reports'], $TMPL['total_likes'], $TMPL['likes_today'], $TMPL['likes_this_month'], $TMPL['likes_last_30'], $TMPL['total_plays'], $TMPL['plays_today'], $TMPL['plays_this_month'], $TMPL['plays_last_30'], $TMPL['total_downloads'], $TMPL['downloads_today'], $TMPL['downloads_this_month'], $TMPL['downloads_last_30'], $TMPL['total_playlists'], $TMPL['playlists_today'], $TMPL['playlists_this_month'], $TMPL['playlists_last_30'], $TMPL['total_payments'], $TMPL['payments_today'], $TMPL['payments_this_month'], $TMPL['payments_last_30'], $TMPL['total_earnings'], $TMPL['earnings_today'], $TMPL['earnings_this_month'], $TMPL['earnings_last_30']) = admin_stats($db, 0, array('currency' => $settings['currency'])); $TMPL['currency'] = $settings['currency']; } elseif(isset($_GET['b']) && $_GET['b'] == 'info_pages') { $skin = new skin('admin/info_pages'); $page = ''; $updateSettings = new updateSettings(); $updateSettings->db = $db; if(isset($_GET['id'])) { $TMPL['show'] = ''; $TMPL['btn_name'] = $LNG['save_changes']; if(!empty($_POST)) { $TMPL['message'] = $updateSettings->createInfoPage($_POST, 1); } $info_page = $db->query(sprintf("SELECT * FROM `info_pages` WHERE `id` = '%s'", $db->real_escape_string($_GET['id']))); $row = $info_page->fetch_assoc(); $row['content_parsed'] = skin::parse($row['content']); $TMPL['page'] = '
'; $TMPL['form'] = '&id='.$row['id']; $TMPL['current_id'] = $row['id']; $TMPL['current_title'] = $row['title']; $TMPL['current_url'] = $row['url']; $TMPL['current_content'] = $row['content']; if($row['public']) { $TMPL['ppon'] = ' selected="selected"'; } else { $TMPL['ppoff'] = ' selected="selected"'; } } else { $TMPL['show'] = ' style="display: none;"'; $TMPL['btn_name'] = $LNG['create_page']; if(!empty($_POST)) { $TMPL['message'] = $updateSettings->createInfoPage($_POST, 0); $TMPL['current_title'] = $_POST['page_title']; $TMPL['current_url'] = $_POST['page_url']; $TMPL['current_content'] = $_POST['page_content']; if($_POST['page_public']) { $TMPL['ppon'] = ' selected="selected"'; } else { $TMPL['ppoff'] = ' selected="selected"'; } } if(isset($_GET['delete']) && $_GET['token_id'] == $_SESSION['token_id']) { if($updateSettings->deleteInfoPage($_GET['delete'])) { $TMPL['message'] = notificationBox('success', sprintf($LNG['page_deleted'], skin::parse($_GET['deleted']))); } } $pages = $updateSettings->getInfoPages(); $TMPL['pages_list'] = $pages; } } elseif(isset($_GET['b']) && $_GET['b'] == 'newsletter') { $skin = new skin('admin/newsletter'); $page = ''; $updateSettings = new updateSettings(); $updateSettings->db = $db; $updateSettings->time = $settings['time']; if(!empty($_POST) && $_POST['token_id'] == $_SESSION['token_id']) { $_POST['email_title'] = strip_tags(substr($_POST['email_title'], 0, 32)); // If title and content is being set if(!empty($_POST['email_title']) && !empty($_POST['email_content'])) { $db->query(sprintf("INSERT INTO `newsletters` (`title`, `content`, `time`) VALUES ('%s', '%s', CURRENT_TIMESTAMP);", $db->real_escape_string($_POST['email_title']), $db->real_escape_string($_POST['email_content']))); // Select the user emails $userEmails = $db->query("SELECT `email` FROM `users` WHERE `suspended` = 0 AND `email_newsletter` = 1"); while($row = $userEmails->fetch_assoc()) { // Store the user emails $list[] = $row['email']; } // Send out the emails sendMail($list, $settings['title'].' - '.$_POST['email_title'], $_POST['email_content'].sprintf($LNG['email_footer_unsub'], $settings['title'], permalink($CONF['url'].'/index.php?a=settings&b=notifications')), $CONF['email']); header("Location: ".$CONF['url']."/index.php?a=admin&b=newsletter&m=s"); } else { header("Location: ".$CONF['url']."/index.php?a=admin&b=newsletter&m=i"); } } if(isset($_GET['id']) && $_GET['token_id'] == $_SESSION['token_id']) { $newsletter = $db->query(sprintf("SELECT * FROM `newsletters` WHERE `id` = '%s'", $db->real_escape_string($_GET['id']))); $row = $newsletter->fetch_assoc(); if($updateSettings->deleteNewsletter($_GET['id'])) { header("Location: ".$CONF['url']."/index.php?a=admin&b=newsletter&deleted=".$row['title']); } } if(isset($_GET['m']) && $_GET['m'] == 's') { $TMPL['message'] = notificationBox('success', $LNG['newsletter_sent']); } elseif(isset($_GET['m']) && $_GET['m'] == 'i') { $TMPL['message'] = notificationBox('error', $LNG['all_fields']); } if(isset($_GET['deleted'])) { $TMPL['message'] = notificationBox('success', sprintf($LNG['newsletter_deleted'], htmlspecialchars($_GET['deleted'], ENT_QUOTES, 'UTF-8'))); } $newsletters = $updateSettings->getNewsletters(); $TMPL['newsletters'] = $newsletters; } elseif(isset($_GET['b']) && $_GET['b'] == 'languages') { $skin = new skin('admin/languages'); $page = ''; // Get the software's info include(__DIR__ .'/../info.php'); $TMPL['soft_url'] = $url; $updateSettings = new updateSettings(); $updateSettings->db = $db; $language = $updateSettings->getLanguages(); $TMPL['languages_list'] = $language[0]; if(isset($_GET['language'])) { // If language is in array if(in_array($_GET['language'], $language[1])) { $updated = $updateSettings->query_array('settings', array('language' => $_GET['language'], 'token_id' => $_GET['token_id'])); header("Location: ".$CONF['url']."/index.php?a=admin&b=languages"); } } } elseif(isset($_GET['b']) && $_GET['b'] == 'themes') { $skin = new skin('admin/themes'); $page = ''; // Get the software's info include(__DIR__ .'/../info.php'); $TMPL['soft_url'] = $url; $updateSettings = new updateSettings(); $updateSettings->db = $db; $themes = $updateSettings->getThemes(); $TMPL['themes_list'] = $themes[0]; if(isset($_GET['theme'])) { // If theme is in array if(in_array($_GET['theme'], $themes[1])) { $updated = $updateSettings->query_array('settings', array('theme' => $_GET['theme'], 'token_id' => $_GET['token_id'])); if($updated == 1) { header("Location: ".$CONF['url']."/index.php?a=admin&b=themes&m=s"); } else { header("Location: ".$CONF['url']."/index.php?a=admin&b=themes&m=i"); } } } if(isset($_GET['m']) && $_GET['m'] == 's') { $TMPL['message'] = notificationBox('success', $LNG['theme_changed']); } elseif(isset($_GET['m']) && $_GET['m'] == 'i') { $TMPL['message'] = notificationBox('error', $LNG['nothing_changed']); } } elseif(isset($_GET['b']) && $_GET['b'] == 'reports') { $manageReports = new manageReports(); $manageReports->db = $db; $manageReports->url = $CONF['url']; $manageReports->title = $settings['title']; $manageReports->per_page = $settings['rperpage']; $manageReports->email = $CONF['email']; if(isset($_GET['id']) && ctype_digit($_GET['id'])) { if(isset($_GET['type']) && $_GET['token_id'] == $_SESSION['token_id']) { // Do the manage report action $manageReport = $manageReports->manageReport($_GET['id'], $_GET['type']); header("Location: ".$CONF['url']."/index.php?a=admin&b=reports&id=".$_GET['id']); } $skin = new skin('admin/report'); $page = ''; $TMPL['content'] = $manageReports->getReport($_GET['id']); // If the report doesn't exist if(empty($TMPL['content'])) { header("Location: ".$CONF['url']."/index.php?a=admin&b=reports&m=i"); } } else { $skin = new skin('admin/manage_reports'); $page = ''; $TMPL['reports'] = $manageReports->getReports(0); } if(isset($_GET['m']) && $_GET['m'] == 'i') { $TMPL['message'] = notificationBox('error', $LNG['report_not_exist']); } } elseif(isset($_GET['b']) && $_GET['b'] == 'users') { $manageUsers = new manageUsers(); $manageUsers->db = $db; $manageUsers->url = $CONF['url']; $manageUsers->title = $settings['title']; $manageUsers->per_page = $settings['rperpage']; $manageUsers->email = $CONF['email']; if(!isset($_GET['id']) && !isset($_GET['idu'])) { $skin = new skin('admin/manage_users'); $page = ''; // Save the array returned into a list $TMPL['users'] = $manageUsers->getUsers(0); } else { $skin = new skin('admin/user'); $page = ''; $getUser = $manageUsers->getUser($_GET['id'] ?? null, $_GET['idu'] ?? null); if(!$getUser) { header("Location: ".$CONF['url']."/index.php?a=admin&b=users&m=un"); } // Create the class instance $updateUserSettings = new updateUserSettings(); $updateUserSettings->db = $db; $updateUserSettings->id = $getUser['idu']; if(!empty($_POST)) { $TMPL['message'] = $updateUserSettings->query_array('users', array_map("strip_tags_array", $_POST)); } $userSettings = $updateUserSettings->getSettings(); $TMPL['countries'] = countries(1, $userSettings['country']); $TMPL['username'] = $userSettings['username']; $TMPL['idu'] = $userSettings['idu']; $TMPL['currentFirstName'] = $userSettings['first_name']; $TMPL['currentLastName'] = $userSettings['last_name']; $TMPL['currentEmail'] = $userSettings['email']; $TMPL['currentCity'] = $userSettings['city']; $TMPL['currentWebsite'] = $userSettings['website']; $TMPL['currentDescription'] = $userSettings['description']; $TMPL['currentFacebook'] = $userSettings['facebook']; $TMPL['currentTwitter'] = $userSettings['twitter']; $TMPL['currentGplus'] = $userSettings['gplus']; $TMPL['currentYouTube'] = $userSettings['youtube']; $TMPL['currentSoundCloud'] = $userSettings['soundcloud']; $TMPL['currentLastfm'] = $userSettings['lastfm']; $TMPL['currentMySpace'] = $userSettings['myspace']; $TMPL['currentVimeo'] = $userSettings['vimeo']; $TMPL['currentTumblr'] = $userSettings['tumblr']; $TMPL['join_date'] = $userSettings['date']; $feed = new feed(); $feed->db = $db; $feed->id = $updateUserSettings->id; $feed->paypalapp = $settings['paypalapp']; $manageReports = new manageReports(); $manageReports->db = $db; $manageReports->url = $CONF['url']; $manageReports->per_page = $settings['rperpage']; if(isset($_GET['suspend']) && $_GET['token_id'] == $_SESSION['token_id']) { $manageUsers->suspendUser($feed->id, $_GET['suspend']); header("Location: ".$CONF['url']."/index.php?a=admin&b=users&id=".$_GET['id']); } $user = $manageUsers->getUser($getUser['idu']); // Get the Pro Status $pro_status = $feed->getProStatus($user['idu']); // If the Pro Accounts are enabled $promote = ''; if($settings['paypalapp']) { // Promote the user if(isset($_GET['promote']) && !$pro_status && $_GET['promote'] == 1 && $_GET['token_id'] == $_SESSION['token_id']) { emulatePayment($db, $settings, $user); header("Location: ".$CONF['url']."/index.php?a=admin&b=users&id=".$_GET['id'].'&promoted=1'); } // If the user is not pro, display the button if(!$pro_status && !isset($_GET['promote'])) { $promote = ''; } } $TMPL['username'] = '