You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			126 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			126 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
<?php
 | 
						|
/*
 | 
						|
 | 
						|
La funzione what_play_now funzione da per scontato che non ci siano trasmissioni con piu' di una diretta 
 | 
						|
a settimana nello stesso giorno.
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
function what_play_now($args)
 | 
						|
{
 | 
						|
 | 
						|
    global $wpdb;
 | 
						|
	/* Oggi espresso come $day (giorno della settimana 1-7 a partire da lunedì) e $now oggetto DateTime completo */
 | 
						|
	$day = date("N");
 | 
						|
	$now = new DateTime("NOW");
 | 
						|
	$done = false;
 | 
						|
	
 | 
						|
 | 
						|
	/* Cerco nelle dirette */
 | 
						|
 | 
						|
	/* Prendo dalla tabella wp_postmeta le tramissioni con diretta oggi */
 | 
						|
	$results = $wpdb->get_results("select post_id from wp_postmeta where meta_key = 'on_air_day' and meta_value = '$day'");
 | 
						|
 | 
						|
	//print_r($results);
 | 
						|
 | 
						|
	foreach ($results as $t) {
 | 
						|
 | 
						|
		$post_id = $t->post_id;
 | 
						|
 | 
						|
		/* Estraggo la fascia oraria e controllo ne $now è contenuto nel range */
 | 
						|
		$start = $wpdb->get_results("select meta_value from wp_postmeta where meta_key = 'on_air_start' and post_id = '$post_id'");	
 | 
						|
		$end = $wpdb->get_results("select meta_value from wp_postmeta where meta_key = 'on_air_end' and post_id = '$post_id'");	
 | 
						|
		$s = $start[0]->meta_value;
 | 
						|
		$e = $end[0]->meta_value;
 | 
						|
 | 
						|
		/*
 | 
						|
		echo "<pre>";
 | 
						|
		echo "$s $e";
 | 
						|
		echo "</pre>";
 | 
						|
		 */
 | 
						|
 | 
						|
		$begin = new DateTime("$s");
 | 
						|
		$end = new DateTime("$e");
 | 
						|
 | 
						|
		if ($now >= $begin && $now <= $end) {
 | 
						|
			$done = true;
 | 
						|
			//echo get_post($post_id)->post_title;
 | 
						|
			return get_post($post_id)->post_title;
 | 
						|
			break;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	/* inizio check repliche */
 | 
						|
	if (!$done) {
 | 
						|
 | 
						|
		/* Cerco nelle repliche */
 | 
						|
		$rerun_today = [];
 | 
						|
		$tocheck = [];
 | 
						|
 | 
						|
		/* Prendo dalla tabella wp_postmeta le trasmissioni con una replica oggi */
 | 
						|
		for ($i=0; $i <=6; $i++) {
 | 
						|
			$rerun = "rerun_day_$i";
 | 
						|
 | 
						|
			$results = $wpdb->get_results("select post_id from wp_postmeta where meta_key = '$rerun' and meta_value = '$day'");
 | 
						|
 | 
						|
			/*
 | 
						|
			echo "<pre>";
 | 
						|
			print_r($results);	
 | 
						|
			echo "</pre>";
 | 
						|
			*/
 | 
						|
 | 
						|
			foreach ($results as $t) {
 | 
						|
				$tocheck[0] = $i; 
 | 
						|
			        $tocheck[1] = $t->post_id;
 | 
						|
				array_push($rerun_today,$tocheck);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		foreach ($rerun_today as $t) {
 | 
						|
			$rerun_start = "rerun_start_$t[0]";
 | 
						|
			$rerun_end = "rerun_end_$t[0]";
 | 
						|
 | 
						|
			$start = $wpdb->get_results("select meta_value from wp_postmeta where meta_key = '$rerun_start' and post_id = '$t[1]'");
 | 
						|
			$end = $wpdb->get_results("select meta_value from wp_postmeta where meta_key = '$rerun_end' and post_id = '$t[1]'");
 | 
						|
		
 | 
						|
			$s = $start[0]->meta_value;
 | 
						|
			$e = $end[0]->meta_value;
 | 
						|
 | 
						|
			/*
 | 
						|
			echo "<pre>";
 | 
						|
			print_r($s);	
 | 
						|
			print_r($e);	
 | 
						|
			echo "</pre>";
 | 
						|
			 */
 | 
						|
 | 
						|
			$begin = new DateTime("$s");
 | 
						|
			$end = new DateTime("$e");
 | 
						|
 | 
						|
			/*
 | 
						|
			echo "<pre>";
 | 
						|
			print_r($now);	
 | 
						|
			echo "</pre>";
 | 
						|
			*/
 | 
						|
 | 
						|
			if ($now >= $begin && $now <= $end) {
 | 
						|
				$done = true;
 | 
						|
				//echo get_post($post_id)->post_title;
 | 
						|
				return get_post($t[1])->post_title;
 | 
						|
			break;
 | 
						|
			}
 | 
						|
		}
 | 
						|
	    }
 | 
						|
	    /* fine check repliche */
 | 
						|
 | 
						|
 | 
						|
	if (!$done) {
 | 
						|
		//echo "Selezione musicale";
 | 
						|
		return "Selezione musicale";
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
add_shortcode('whatplaynow', 'what_play_now');
 | 
						|
 | 
						|
?>
 |