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.
127 lines
2.8 KiB
PHP
127 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');
|
|
|
|
?>
|