View file Script/sources/track.php

File size: 6.41Kb
<?php
function PageMain() {
	global $TMPL, $LNG, $CONF, $db, $loggedIn, $settings;
	
	// If the track id is not set, or it doesn't consist from digits
	if(!isset($_GET['id']) || !ctype_digit($_GET['id'])) {
		header("Location: ".$CONF['url']);
	}
	
	if(isset($_SESSION['username']) && isset($_SESSION['password']) || isset($_COOKIE['username']) && isset($_COOKIE['password'])) {	
		$verify = $loggedIn->verify();
	}
	
	// Start displaying the Feed
	$feed = new feed();
	$feed->db = $db;
	$feed->url = $CONF['url'];
	$feed->user = $verify;
	$feed->id = $verify['idu'];
	$feed->username = $verify['username'];
	$feed->per_page = $settings['perpage'];
	$feed->categories = $feed->getCategories();
	$feed->time = $settings['time'];
	$feed->c_per_page = $settings['cperpage'];
	$feed->c_start = 0;
	$feed->l_per_post = $settings['lperpost'];
	$feed->paypalapp = $settings['paypalapp'];
	if(isset($_SESSION['usernameAdmin']) && isset($_SESSION['passwordAdmin'])) {
		$loggedInAdmin = new loggedInAdmin();
		$loggedInAdmin->db = $db;
		$loggedInAdmin->url = $CONF['url'];
		$loggedInAdmin->username = $_SESSION['usernameAdmin'];
		$loggedInAdmin->password = $_SESSION['passwordAdmin'];
		$loggedIn = $loggedInAdmin->verify();
		
		if($loggedIn['username']) {
		// Set admin level
		$feed->is_admin = 1;
		}
	}
	
	$TMPL_old = $TMPL; $TMPL = array();
	
	// Get the track
	$track = $feed->getTrack($_GET['id']);
	$trackInfo = $feed->getTrackInfo($_GET['id'], 0);

	// Verify the track owner for certain pages
	if(!$trackInfo[1] && ($_GET['type'] == 'stats' || $_GET['type'] == 'edit')) {
		header("Location: ".$CONF['url']);
	}
	
	// Match the content from the song-title class in order to set it for the title tag
	preg_match_all('/<div.*(class="song-title").*>([\d\D]*)<\/div>/iU', $track[0], $title);
	if(empty($title[2][0])) {
		preg_match_all('/<div.*(class="page-header").*>([\d\D]*)<\/div>/iU', $track[0], $title);
	}
	preg_match_all('/<img src="([\d\D]*)" id="song-art'.$_GET['id'].'".*">/iU', $track[0], $art);
	
	$TMPL['id'] = $_GET['id'];
	$TMPL['url'] = $CONF['url'];
	$TMPL['title'] = strip_tags($title[2][0]);
	$TMPL['url_title'] = $trackInfo[0];
	
	// If a track exists
	if($track[0]) {
		// If the user can view the track, and the report is set
		if(!$track[1] && $_GET['type'] == 'report') {
			if(!$feed->id) {
				header("Location: ".$CONF['url']);
			}
			$skin = new skin('track/report'); $rows = '';
			if(isset($_POST['copyright'])) {
				$TMPL['message'] = $feed->report($_GET['id'], 1);
			}
		} elseif(!$track[1] && $_GET['type'] == 'stats') {
			$skin = new skin('track/stats'); $rows = '';
			
			$stats = $feed->getTrackStats($_GET['id'], $_GET['filter'], 0);
			$most = $feed->getTrackStats($_GET['id'], $_GET['filter'], 1, 10);

			$TMPL['plays'] = $stats['plays'];
			$TMPL['likes'] = $stats['likes'];
			$TMPL['comments'] = $stats['comments'];
			$TMPL['downloads'] = $stats['downloads'];
			
			$TMPL['played_most'] = $most['played'];
			$TMPL['downloaded_most'] = $most['downloaded'];
			$TMPL['top_countries'] = $most['countries'];
			$TMPL['top_cities'] = $most['cities'];
			
			$TMPL['go_pro'] = $most['gopro'];
		} elseif(!$track[1] && $_GET['type'] == 'likes') {
			$skin = new skin('track/likes'); $rows = '';
			
			$feed->per_page = $settings['qperpage'];
			$TMPL['likes'] = $feed->getLikes(0, 2, $_GET['id']);
		} elseif(!$track[1] && $_GET['type'] == 'edit') {
			$skin = new skin('track/edit'); $rows = '';
			$TMPL['token_input'] = generateToken(1);
			$TMPL['page_title'] = $LNG['edit'].' -';
			$TMPL['form_url'] = $CONF['url'].'/index.php?a=track&id='.$_GET['id'].'&type=edit';
			$feed->art_size = $settings['artsize'];
			$feed->art_format = $settings['artformat'];
			
			if(!empty($_POST['save'])) {
				$update = $feed->updateTrack($_POST, 0);
				$TMPL['message'] = $update;
			}
			
			$currentTrack = $feed->getTrackInfo($_GET['id'], 1);
			foreach($currentTrack as $key => $info) {
				$TMPL[$key] = $info;
			}
			
			$date = explode('-', $TMPL['release']);
					
			$TMPL['years'] = generateDateForm(0, $date[0]);
			$TMPL['months'] = generateDateForm(1, $date[1]);
			$TMPL['days'] = generateDateForm(2, $date[2]);
			
			if($TMPL['download'] == 0) {
				$TMPL['doff'] = ' selected="selected"';
			} else {
				$TMPL['don'] = ' selected="selected"';
			}
			
			if($TMPL['public'] == 0) {
				$TMPL['poff'] = ' selected="selected"';
			} else {
				$TMPL['pon'] = ' selected="selected"';
			}
			
			if($TMPL['license'] == 0) {
				$TMPL['ar'] = 'checked';
			} else {
				$TMPL['cc'] = 'checked';
				$license = str_split($TMPL['license']);
				$TMPL['nc'] = $license[1];
				$TMPL['nd_sa'] = $license[2];
			}
			
			$TMPL['display'] = 'none';
			$TMPL['btntext'] = $LNG['save'];
		} else {
			$skin = new skin('track/rows'); $rows = '';
			
			$TMPL['messages'] = $track[0];
		}
	} else {
		header("Location: ".$CONF['url']);
	}
	
	$rows = $skin->make();
	
	$skin = new skin('track/sidebar'); $sidebar = '';
	
	$TMPL['ad'] = generateAd($settings['ad5']);
	
	// If the track can be viewed
	if(!$track[1]) {
		$TMPL['edit'] = $feed->sidebarButton($_GET['id'], 1);
		if(isset($_GET['type']) && $_GET['type'] !== 'edit') {
			unset($TMPL['edit']);
		}
		if($_GET['type'] == 'stats') {
			$TMPL['statistics'] = $feed->sidebarStatsFilters($_GET['filter']);
		} else {
			$TMPL['statistics'] = $feed->sidebarStatistics($_GET['id'], 1, $trackInfo[1]);
		}
		if(!isset($_GET['type'])) {
			$TMPL['recommended'] = $feed->sidebarRecommended($_GET['id']);
		}
		$TMPL['description'] = $feed->sidebarDescription($_GET['id'], 0);
		$TMPL['tags'] = $feed->sidebarKeywords($_GET['id'], 0);
		$TMPL['report'] = $feed->sidebarReport($_GET['id']);
	}

	$sidebar = $skin->make();
	
	$TMPL = $TMPL_old; unset($TMPL_old);
	$TMPL['rows'] = $rows;
	$TMPL['sidebar'] = $sidebar;

	$TMPL['url'] = $CONF['url'];
	
	$title = strip_tags(trim($title[2][0]));
	$TMPL['title'] = (($_GET['type'] == 'report' || $_GET['type'] == 'stats' || $_GET['type'] == 'likes' || $_GET['type'] == 'edit') ? $LNG["{$_GET['type']}"].' - ': '').$title.' - '.$settings['title'];
	$TMPL['meta_description'] = $title.' '.strip_tags(str_replace(array("\n", "\r"), ' ', $feed->sidebarDescription($_GET['id'], 0, 1)));
	$TMPL['open_graph'] = '<meta property="og:image" content="'.$art[1][0].'" />';

	$skin = new skin('shared/content');
	return $skin->make();
}
?>