diff --git a/admin/add_broadcast_page.old b/admin/add_broadcast_page.old deleted file mode 100644 index 976b6a0..0000000 --- a/admin/add_broadcast_page.old +++ /dev/null @@ -1,174 +0,0 @@ - array( - 'name' => __('Trasmissioni'), - 'add_new' => __('Aggiungi Trasmissione'), - 'new_item' => __('Nuova Trasmissione') - ), - 'public' => true, - 'hierarchical' => false, - 'exclude_from_search' => true, - 'show_ui' => true, - 'show_in_menu' => true, - 'menu_position' => 3, - 'has_archive' => false, - 'supports' => array( - 'title', - 'editor', - 'excerpt', - 'thumbnail', - 'post-formats' - ), - 'menu_icon' => 'dashicons-microphone', - ) - ); -} -add_action('init', 'create_broadcast_post'); - -add_action('add_meta_boxes', 'live_meta_box_add'); -function live_meta_box_add() -{ - //give name of your input field - add_meta_box('orari-dirette', 'ORARI DELLA DIRETTA', 'orari_dirette_input', 'broadcast', 'normal', 'high'); - add_meta_box('orari-repliche', 'ORARI DELLE REPLICHE', 'orari_repliche_input', 'broadcast', 'normal', 'high'); -} - -function orari_dirette_input($post) -{ - $values = get_post_custom($post->ID); - $onair_day = isset($values['on_air_day']) ? esc_attr($values['on_air_day'][0]) : ''; - $text_start = isset($values['on_air_start']) ? esc_attr($values['on_air_start'][0]) : ''; - $text_end = isset($values['on_air_end']) ? esc_attr($values['on_air_end'][0]) : ''; - $broadcast = term_exists('Podcast', 'category', 0); - $old_term = term_exists($post->post_title, 'category', $broadcast); - wp_nonce_field('on_air_nonce', 'onair_nonce'); ?> - -
- -
-
- - -
-
- - -
-
-ID); - $text_start = array(); - $text_end = array(); - wp_nonce_field('rerun_nonce', 're_run_nonce'); - for ($x=0;$x<7;$x++) : - $rerun_day[$x] = isset($values['rerun_day_'.$x]) ? esc_attr($values['rerun_day_'.$x][0]) : ''; - $text_start[$x] = isset($values['rerun_start_'.$x]) ? esc_attr($values['rerun_start_'.$x][0]) : ''; - $text_end[$x] = isset($values['rerun_end_'.$x]) ? esc_attr($values['rerun_end_'.$x][0]) : ''; ?> -
-

Replica n.

-
-
- -
-
- - -
-
- - -
-
-'; - print_r($_POST); - echo ''; - exit(); - */ - // now we can actually save the data - $allowed = array( - 'a' => array( // on allow a tags - 'href' => array() // and those anchords can only have href attribute - ) - ); - if (isset($_POST['on_air_start'])) { - $broadcast = term_exists('Podcast', 'category', 0); - $check = term_exists(intval($_POST['taxonomy_id']), 'category', $broadcast['term_id']); - if (intval($check['term_id']) > 0) { - $args = array( - 'cat_ID' => intval($check['term_id']), - 'taxonomy' => 'category', - 'cat_name' => $_POST['post_title'], - 'category_description' => '', - 'category_nicename' => $_POST['post_name'], - 'category_parent' => $broadcast['term_id'] - ); - $test = wp_insert_category($args); - } else { - $args = array( - 'parent' => $broadcast['term_id'], - 'slug' => strtolower(wp_specialchars(str_replace(" ", "-", $_POST['post_title']))), - ); - wp_insert_term($_POST['post_title'], 'category', $args); - } - update_post_meta($post_id, 'taxonomy_id', wp_kses($_POST['taxonomy_id'], $allowed)); - update_post_meta($post_id, 'on_air_day', wp_kses($_POST['on_air_day'], $allowed)); - update_post_meta($post_id, 'on_air_start', wp_kses($_POST['on_air_start'], $allowed)); - update_post_meta($post_id, 'on_air_end', wp_kses($_POST['on_air_end'], $allowed)); - for ($x=0;$x<7;$x++) { - update_post_meta($post_id, 'rerun_day_'.$x, wp_kses($_POST['rerun_day_'.$x], $allowed)); - 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)); - } - } -} diff --git a/admin/add_broadcast_page.php b/admin/add_broadcast_page.php index 02dd9a4..8480577 100644 --- a/admin/add_broadcast_page.php +++ b/admin/add_broadcast_page.php @@ -95,7 +95,7 @@ function orari_dirette_input($post)
array( - 'name' => __('Trasmissioni'), - 'add_new' => __('Aggiungi Trasmissione'), - 'new_item' => __('Nuova Trasmissione') - ), - 'public' => true, - 'hierarchical' => false, - 'exclude_from_search' => true, - 'show_ui' => true, - 'show_in_menu' => true, - 'menu_position' => 3, - 'has_archive' => false, - 'supports' => array( - 'title', - 'editor', - 'excerpt', - 'thumbnail', - 'post-formats' - ), - 'menu_icon' => 'dashicons-microphone', - ) - ); -} -add_action('init', 'create_broadcast_post'); - -add_action('add_meta_boxes', 'live_meta_box_add'); -function live_meta_box_add() -{ - //give name of your input field - add_meta_box('orari-dirette', 'ORARI DELLA DIRETTA', 'orari_dirette_input', 'broadcast', 'normal', 'high'); - add_meta_box('orari-repliche', 'ORARI DELLE REPLICHE', 'orari_repliche_input', 'broadcast', 'normal', 'high'); -} - -function orari_dirette_input($post) -{ - $values = get_post_custom($post->ID); - $onair_day = isset($values['on_air_day']) ? esc_attr($values['on_air_day'][0]) : ''; - $text_start = isset($values['on_air_start']) ? esc_attr($values['on_air_start'][0]) : ''; - $text_end = isset($values['on_air_end']) ? esc_attr($values['on_air_end'][0]) : ''; - $broadcast = term_exists('Podcast', 'category', 0); - $old_term = term_exists($post->post_title, 'category', $broadcast); - wp_nonce_field('on_air_nonce', 'onair_nonce'); ?> - - -
- - Lunedì -
-
- - -
-
- - -
-
- -
-
- - Martedì -
-
- - -
-
- - -
-
- -
-
- - Mercoledì -
-
- - -
-
- - -
-
- -
-
- - Giovedì -
-
- - -
-
- - -
-
- -
-
- - Venerdì -
-
- - -
-
- - -
-
- -
-
- - Sabato -
-
- - -
-
- - -
-
- -
-
- - Sabato -
-
- - -
-
- - -
-
- -ID); - $text_start = array(); - $text_end = array(); - wp_nonce_field('rerun_nonce', 're_run_nonce'); - for ($x=0;$x<7;$x++) : - $rerun_day[$x] = isset($values['rerun_day_'.$x]) ? esc_attr($values['rerun_day_'.$x][0]) : ''; - $text_start[$x] = isset($values['rerun_start_'.$x]) ? esc_attr($values['rerun_start_'.$x][0]) : ''; - $text_end[$x] = isset($values['rerun_end_'.$x]) ? esc_attr($values['rerun_end_'.$x][0]) : ''; ?> -
-

Replica n.

-
-
- -
-
- - -
-
- - -
-
-'; - print_r($_POST); - echo ''; - exit(); - */ - // now we can actually save the data - $allowed = array( - 'a' => array( // on allow a tags - 'href' => array() // and those anchords can only have href attribute - ) - ); - if (isset($_POST['on_air_start'])) { - $broadcast = term_exists('Podcast', 'category', 0); - $check = term_exists(intval($_POST['taxonomy_id']), 'category', $broadcast['term_id']); - if (intval($check['term_id']) > 0) { - $args = array( - 'cat_ID' => intval($check['term_id']), - 'taxonomy' => 'category', - 'cat_name' => $_POST['post_title'], - 'category_description' => '', - 'category_nicename' => $_POST['post_name'], - 'category_parent' => $broadcast['term_id'] - ); - $test = wp_insert_category($args); - } else { - $args = array( - 'parent' => $broadcast['term_id'], - 'slug' => strtolower(wp_specialchars(str_replace(" ", "-", $_POST['post_title']))), - ); - wp_insert_term($_POST['post_title'], 'category', $args); - } - update_post_meta($post_id, 'taxonomy_id', wp_kses($_POST['taxonomy_id'], $allowed)); - update_post_meta($post_id, 'on_air_day', wp_kses($_POST['on_air_day'], $allowed)); - update_post_meta($post_id, 'on_air_start', wp_kses($_POST['on_air_start'], $allowed)); - update_post_meta($post_id, 'on_air_end', wp_kses($_POST['on_air_end'], $allowed)); - for ($x=0;$x<7;$x++) { - update_post_meta($post_id, 'rerun_day_'.$x, wp_kses($_POST['rerun_day_'.$x], $allowed)); - 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)); - } - } -} diff --git a/admin/add_onchange_listener.js b/admin/js/add_onchange_listener.js similarity index 56% rename from admin/add_onchange_listener.js rename to admin/js/add_onchange_listener.js index bcf0b65..f52c5a2 100644 --- a/admin/add_onchange_listener.js +++ b/admin/js/add_onchange_listener.js @@ -1,31 +1,33 @@ -// change, consistently with day field, the date field +// change the date field consistently with day field function add_change_day_handler(elem, day_field_id, date_field_id) { elem.addEventListener('change', function(e) { const setted_weekday = document.getElementById(day_field_id).value; const date_input = document.getElementById(date_field_id); - if (date_input.value.length !== 0){ + if (date_input.value.length !== 0 && setted_weekday.length !== 0){ const date = new Date(date_input.value); let weekday = date.getDay(); weekday = (weekday == 0) ? 7 : weekday; if (weekday != setted_weekday ) { let weekday_diff = setted_weekday - weekday; date.setDate(date.getDate() + weekday_diff); - date_input.value = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); + date_input.value = date.toISOString().split('T')[0]; } } }); } -// change, consistently with date field, the day field +// change the day field consistently with date field function add_change_date_handler(elem, day_field_id, date_field_id) { elem.addEventListener('change', function(e) { const setted_date = document.getElementById(date_field_id).value; - const day_input = document.getElementById(day_field_id); - let setted_weekday = day_input.value; - let date_weekday = new Date(setted_date).getDay(); - date_weekday = (date_weekday == 0) ? 7 : date_weekday; - if (date_weekday != setted_weekday) { - day_input.value = date_weekday; + if (setted_date.length !== 0) { + const day_input = document.getElementById(day_field_id); + let setted_weekday = day_input.value; + let date_weekday = new Date(setted_date).getDay(); + date_weekday = (date_weekday == 0) ? 7 : date_weekday; + if (date_weekday != setted_weekday) { + day_input.value = date_weekday; + } } }); } @@ -37,7 +39,10 @@ for (var i = 0; i < 7 ; i++) { let rerun_date_input = document.getElementById("rerun_start_date_" + i); add_change_day_handler(onair_day_input, "on_air_day_" + i, "on_air_start_date_" + i); add_change_day_handler(rerun_day_input, "rerun_day_" + i, "rerun_start_date_" + i); - add_change_date_handler(onair_date_input, "on_air_day_" + i, "on_air_start_date_" + i); - add_change_date_handler(rerun_date_input, "rerun_day_" + i, "rerun_start_date_" + i); + add_change_day_handler(onair_date_input, "on_air_day_" + i, "on_air_start_date_" + i); + add_change_day_handler(rerun_date_input, "rerun_day_" + i, "rerun_start_date_" + i); + // add_change_date_handler(onair_date_input, "on_air_day_" + i, "on_air_start_date_" + i); + // add_change_date_handler(rerun_date_input, "rerun_day_" + i, "rerun_start_date_" + i); + } \ No newline at end of file diff --git a/shortcodes/palinsesto.php b/shortcodes/palinsesto.php index a5acd87..3384705 100644 --- a/shortcodes/palinsesto.php +++ b/shortcodes/palinsesto.php @@ -1,19 +1,24 @@ setTime(0,0,0); - $start_date = new DateTime($start_date_s); + if (!empty($start_date_s)) { + $start_date = new DateTime($start_date_s); + if ($start_date > $today){ + return false; + } + } $return_value; switch($cadence_i) { case 1: //settimanale $return_value = true; break; case 2: //ogni 2 settimane - case 3: + 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); $days_difference = $date_difference->days; if (($days_difference % $modulo) < 7) { @@ -30,12 +35,12 @@ function have_to_run_this_week($start_date_s, $cadence_i) $return_value = false; break; } - return $return_value; } function which_day_of_the_month($datetime) { + $datetime->setTime(0,0,0); $weekday_literal = $datetime->format("l"); $weekday_iterator = clone($datetime); $weekday_iterator->modify("first $weekday_literal of this month"); diff --git a/shortcodes/whatplaynow.php b/shortcodes/whatplaynow.php index 7d589d1..666e9a6 100644 --- a/shortcodes/whatplaynow.php +++ b/shortcodes/whatplaynow.php @@ -15,106 +15,56 @@ function what_play_now($args) $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; + /* 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_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) { + $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 = $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 "
";
-		echo "$s $e";
-		echo "
"; - */ - - $begin = new DateTime("$s"); - $end = new DateTime("$e"); - - if ($now >= $begin && $now <= $end) { + $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; + + $start = new DateTime("$start_timestring"); + $end = new DateTime("$end_timestring"); + + if ($now >= $start && $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 "
";
-			print_r($results);	
-			echo "
"; - */ - - 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 "
";
-			print_r($s);	
-			print_r($e);	
-			echo "
"; - */ - - $begin = new DateTime("$s"); - $end = new DateTime("$e"); - - /* - echo "
";
-			print_r($now);	
-			echo "
"; - */ - - 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"; }