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
PHTML

2 years ago
<?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');
?>