@@ -202,14 +205,14 @@ function orari_dirette_save($post_id)
for ($x=0;$x<7;$x++) {
$onair_day_data = wp_kses($_POST['on_air_day_'.$x], $allowed);
$rerun_day_data = wp_kses($_POST['rerun_day_'.$x], $allowed);
- $onair_start_date_data = wp_kses($_POST['on_air_start_date_'.$x], $allowed);
- $rerun_start_date_data = wp_kses($_POST['rerun_start_date_'.$x], $allowed);
+ $onair_startdate_data = wp_kses($_POST['on_air_startdate_'.$x], $allowed);
+ $rerun_startdate_data = wp_kses($_POST['rerun_startdate_'.$x], $allowed);
- if (!empty($onair_day_data) && !empty($onair_start_date_data)) {
- check_and_correct_start_date_flag($onair_start_date_data, $onair_day_data);
+ if (!empty($onair_day_data) && !empty($onair_startdate_data)) {
+ check_and_correct_startdate_flag($onair_startdate_data, $onair_day_data);
}
- if (!empty($rerun_day_data) && !empty($rerun_start_date_data)) {
- check_and_correct_start_date_flag($rerun_start_date_data, $rerun_day_data);
+ if (!empty($rerun_day_data) && !empty($rerun_startdate_data)) {
+ check_and_correct_startdate_flag($rerun_startdate_data, $rerun_day_data);
}
update_post_meta($post_id, 'on_air_day_'.$x, $onair_day_data);
update_post_meta($post_id, 'on_air_start_'.$x, wp_kses($_POST['on_air_start_'.$x], $allowed));
@@ -219,18 +222,18 @@ function orari_dirette_save($post_id)
update_post_meta($post_id, 'rerun_start_'.$x, wp_kses($_POST['rerun_start_'.$x], $allowed));
update_post_meta($post_id, 'rerun_end_'.$x, wp_kses($_POST['rerun_end_'.$x], $allowed));
update_post_meta($post_id, 'rerun_cadence_'.$x, wp_kses($_POST['rerun_cadence_'.$x], $allowed));
- update_post_meta($post_id, 'on_air_start_date_'.$x, $onair_start_date_data);
- update_post_meta($post_id, 'rerun_start_date_'.$x, $rerun_start_date_data);
+ update_post_meta($post_id, 'on_air_startdate_'.$x, $onair_startdate_data);
+ update_post_meta($post_id, 'rerun_startdate_'.$x, $rerun_startdate_data);
}
}
}
-function check_and_correct_start_date_flag(&$start_date_ptr, $day) {
- $start_date_dt = new DateTime($start_date_ptr);
- $weekday_number = $start_date_dt->format("N");
+function check_and_correct_startdate_flag(&$startdate_ptr, $day) {
+ $startdate_dt = new DateTime($startdate_ptr);
+ $weekday_number = $startdate_dt->format("N");
if ($day != $weekday_number) {
$day_diff = $day - $weekday_number;
- $start_date_dt->modify($day_diff." days");
- $start_date_ptr = $start_date_dt->format("Y-m-d");
+ $startdate_dt->modify($day_diff." days");
+ $startdate_ptr = $startdate_dt->format("Y-m-d");
};
}
diff --git a/shortcodes/palinsesto.php b/shortcodes/palinsesto.php
index 3384705..63f15c1 100644
--- a/shortcodes/palinsesto.php
+++ b/shortcodes/palinsesto.php
@@ -1,13 +1,14 @@
setTime(0,0,0);
- if (!empty($start_date_s)) {
- $start_date = new DateTime($start_date_s);
- if ($start_date > $today){
+ if (!empty($startdate_s)) {
+ $startdate = new DateTime($startdate_s);
+ if ($startdate > $today)
return false;
- }
+ } else {
+ $cadence_i = 1;
}
$return_value;
switch($cadence_i) {
@@ -18,17 +19,18 @@ function have_to_run_this_week($start_date_s, $cadence_i)
case 3: //ogni 3 settimane
case 4: //ogni 4 settimane
$modulo = 7 * $cadence_i;
- $today->modify("this week {$start_date->format('l')}");
- $date_difference = date_diff($today, $start_date);
+ $today->modify("this week {$startdate->format('l')}");
+ $date_difference = date_diff($today, $startdate);
$days_difference = $date_difference->days;
- if (($days_difference % $modulo) < 7) {
+ if (($days_difference % $modulo) == 0) {
$return_value = true;
break;
}
$return_value = false;
break;
case 5: //una volta al mese
- if (which_day_of_the_month($start_date) == which_day_of_the_month($today)) {
+ print_r($startdate);
+ if (which_day_of_the_month($startdate) == which_day_of_the_month($today)) {
$return_value = true;
break;
}
@@ -45,7 +47,6 @@ function which_day_of_the_month($datetime)
$weekday_iterator = clone($datetime);
$weekday_iterator->modify("first $weekday_literal of this month");
$count = 1;
-
while($datetime != $weekday_iterator && $count < 5) {
$weekday_iterator->modify("next $weekday_literal");
$count++;
@@ -67,21 +68,21 @@ function show_palinsesto($args)
$palinsesto = [];
foreach ($broadcasts as $post) {
- $on_air_day = $on_air_start = $on_air_end = $on_air_cadence = $on_air_start_date = "";
+ $on_air_day = $on_air_start = $on_air_end = $on_air_cadence = $on_air_startdate = "";
for ($d=0;$d<7;$d++) {
$on_air_day = get_post_meta($post->ID, 'on_air_day_'.$d, true);
$on_air_start = get_post_meta($post->ID, 'on_air_start_'.$d, true);
$on_air_end = get_post_meta($post->ID, 'on_air_end_'.$d, true);
$on_air_cadence = get_post_meta($post->ID, 'on_air_cadence_'.$d, true);
- $on_air_start_date = get_post_meta($post->ID, 'on_air_start_date_'.$d, true);
+ $on_air_startdate = get_post_meta($post->ID, 'on_air_startdate_'.$d, true);
- if (empty($on_air_cadence) || empty($on_air_start_date)) {
+ if (empty($on_air_cadence) || empty($on_air_startdate)) {
$on_air_cadence = "1";
}
if (!empty($on_air_day)&&!empty($on_air_start)&&!empty($on_air_end)) {
- if (have_to_run_this_week($on_air_start_date, (int)$on_air_cadence)) {
+ if (have_to_run_this_week($on_air_startdate, (int)$on_air_cadence)) {
$palinsesto[(int)$on_air_day][(string)$on_air_start] =
array(
'ID' => $post->ID,
@@ -97,26 +98,21 @@ function show_palinsesto($args)
}
}
- $rerun_day = $rerun_start = $rerun_end = $rerun_cadence = $rerun_start_date = "";
+ $rerun_day = $rerun_start = $rerun_end = $rerun_cadence = $rerun_startdate = "";
for ($d=0;$d<7;$d++) {
$rerun_day = get_post_meta($post->ID, 'rerun_day_'.$d, true);
$rerun_start = get_post_meta($post->ID, 'rerun_start_'.$d, true);
$rerun_end = get_post_meta($post->ID, 'rerun_end_'.$d, true);
$rerun_cadence = get_post_meta($post->ID, 'rerun_cadence_'.$d, true);
- $rerun_start_date = get_post_meta($post->ID, 'rerun_start_date_'.$d, true);
+ $rerun_startdate = get_post_meta($post->ID, 'rerun_startdate_'.$d, true);
-/*
- echo '
';
- print_r($post->ID . " - " . $rerun_day ." - " . $rerun_cadence);
- echo '
';
-*/
if (!empty($rerun_day)&&!empty($rerun_start)&&!empty($rerun_end)) {
- if (empty($rerun_cadence) || empty($rerun_start_date)) {
+ if (empty($rerun_cadence) || empty($rerun_startdate)) {
$rerun_cadence = "1"; //default settimanale
}
- if (have_to_run_this_week($rerun_start_date, (int)$rerun_cadence)) {
+ if (have_to_run_this_week($rerun_startdate, (int)$rerun_cadence)) {
$palinsesto[(int)$rerun_day][(string)$rerun_start] =
array(
'ID' => $post->ID,
@@ -134,21 +130,10 @@ function show_palinsesto($args)
}
ksort($palinsesto);
-
- // echo '
';
- // print_r($palinsesto);
- // echo '
';
-
$today = date("N");
for ($x=1;$x<=7;$x++) {
- /*
- echo '
';
- echo("$today,$x");
- echo '
';
- */
-
if ($x == $today)
$tabs .= "
".$week_days[$x-1]."";
else
diff --git a/shortcodes/whatplaynow.php b/shortcodes/whatplaynow.php
index 666e9a6..07227cb 100644
--- a/shortcodes/whatplaynow.php
+++ b/shortcodes/whatplaynow.php
@@ -18,56 +18,52 @@ function what_play_now($args)
/* Cerco nelle dirette */
/* Prendo dalla tabella wp_postmeta le tramissioni con diretta oggi e le repliche */
- $today_onair = $wpdb->get_results("
- SELECT post_id, meta_key FROM wp_postmeta
- WHERE meta_key BETWEEN 'on_air_day_0' AND 'on_air_day_6'
- AND meta_value = '$day'
+ $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'
");
- $today_rerun = $wpdb->get_results("
- SELECT post_id, meta_key FROM wp_postmeta
- WHERE meta_key BETWEEN 'rerun_day_0' AND 'rerun_day_6'
- AND meta_value = '$day'
- ");
-
- /* Inserisco in un array le trasmissioni */
- $broadcast_to_check = [];
-
- foreach ($today_onair as $t) {
- array_push($broadcast_to_check, (array) $t );
- }
- foreach ($today_rerun as $t) {
- array_push($broadcast_to_check, (array) $t );
- }
- foreach($broadcast_to_check as $broadcast) {
+ foreach($today_broadcast as $broadcast) {
+ $broadcast = (array) $broadcast;
$post_id = $broadcast['post_id'];
- $day_meta_key = $broadcast['meta_key'];
- $meta_key_start = str_replace("day", "start", $day_meta_key);
- $meta_key_end = str_replace("day", "end", $day_meta_key);
- /* Estraggo la fascia oraria e controllo ne $now รจ contenuto nel range */
- $start_timestring = ($wpdb->get_results("
- SELECT meta_value FROM wp_postmeta
- WHERE post_id = '$post_id' AND meta_key = '$meta_key_start'
- "))[0]->meta_value;
- $end_timestring = ($wpdb->get_results("
- SELECT meta_value FROM wp_postmeta
- WHERE post_id = '$post_id' AND meta_key = '$meta_key_end'
- "))[0]->meta_value;
+ /* 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");
+ $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 ($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');