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.
72 lines
2.1 KiB
PHP
72 lines
2.1 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 e le repliche */
|
|
$today_broadcast = $wpdb->get_results("
|
|
SELECT post_id, meta_key FROM wp_postmeta WHERE (
|
|
(meta_key BETWEEN 'on_air_day_0' AND 'on_air_day_6') OR
|
|
(meta_key BETWEEN 'rerun_day_0' AND 'rerun_day_6'))
|
|
AND meta_value = '$day'
|
|
");
|
|
|
|
foreach($today_broadcast as $broadcast) {
|
|
$broadcast = (array) $broadcast;
|
|
$post_id = $broadcast['post_id'];
|
|
/* Estraggo tutti i metadati del post e li metto in un array associativo $broadcast_data*/
|
|
$meta_key_day = $broadcast['meta_key'];
|
|
$meta_key = str_replace("day", "%", $meta_key_day);
|
|
$meta_key = str_replace("_", "\\_", $meta_key);
|
|
$metadata_query = $wpdb->get_results("
|
|
SELECT meta_key, meta_value FROM wp_postmeta
|
|
WHERE post_id = '$post_id'
|
|
AND meta_key LIKE '$meta_key'
|
|
");
|
|
$broadcast_data = [];
|
|
foreach ($metadata_query as $meta) {
|
|
$key_exploded = explode("_", $meta->meta_key);
|
|
$key = $key_exploded[count($key_exploded) - 2];
|
|
$broadcast_data[$key] = $meta->meta_value;
|
|
}
|
|
$cadence_string = (isset($broadcast_data["cadence"])) ? $broadcast_data["cadence"] : "1";
|
|
$startdate_string = (isset($broadcast_data["startdate"])) ? $broadcast_data["startdate"] : "";
|
|
|
|
if (have_to_run_this_week($startdate_string,(int) $cadence_string)) {
|
|
$start_timestring = $broadcast_data["start"];
|
|
$end_timestring = $broadcast_data["end"];
|
|
|
|
$start = new DateTime("$start_timestring");
|
|
$end = new DateTime("$end_timestring");
|
|
|
|
if ($now >= $start && $now <= $end) {
|
|
$done = true;
|
|
return get_post($post_id)->post_title;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!$done) {
|
|
return "Selezione musicale";
|
|
}
|
|
}
|
|
|
|
add_shortcode('whatplaynow', 'what_play_now');
|
|
|
|
?>
|