function php_getdays() { global $wpdb; $id = $_GET['id']; $calendar = (int) $_GET['calendar']; if (isset($_GET['date'])) { if (IsDate_inputed($_GET['date'])) { $date = $_GET['date']; } else { $date = date("Y") . '-' . php_Month_num(date("F")) . '-' . date("d"); } } else { $date = date("Y") . '-' . php_Month_num(date("F")) . '-' . date("d"); } $year = substr($date, 0, 4); $month = substr($date, 5, 2); $theme_id = (int) $_GET['theme_id']; if (isset($_GET['widget'])) { $widget = 1; } else { $widget = 0; } function php_GetNextDate($beginDate, $repeat) { //explode the date by "-" and storing to array $date_parts1 = explode("-", $beginDate); //gregoriantojd() Converts a Gregorian date to Julian Day Count $start_date = gregoriantojd($date_parts1[1], $date_parts1[2], $date_parts1[0]); return jdtogregorian($start_date + $repeat); } function php_daysDifference($beginDate, $endDate) { //explode the date by "-" and storing to array $date_parts1 = explode("-", $beginDate); $date_parts2 = explode("-", $endDate); //gregoriantojd() Converts a Gregorian date to Julian Day Count $start_date = gregoriantojd($date_parts1[1], $date_parts1[2], $date_parts1[0]); $end_date = gregoriantojd($date_parts2[1], $date_parts2[2], $date_parts2[0]); return $end_date - $start_date; } $show_time = 1; if (!$_GET['calendar']) { $calendar = 0; } $rows = $wpdb->get_results($wpdb->prepare("SELECT * from " . $wpdb->prefix . "spidercalendar_event where published=1 and ( ( (date<=%s or date like %s) and date_end>=%s) or ( date_end is Null and date like %s ) ) and calendar=%d ", "" . substr($date, 0, 7) . "-01", "" . substr($date, 0, 7) . "%", "" . substr($date, 0, 7) . "-01", "" . substr($date, 0, 7) . "%", $calendar)); //echo "SELECT date,date_end,text_for_date from #__spidercalendar where published=1 and ( ( (date<='".substr( $date,0,7)."-01' or date like '".substr( $date,0,7)."%') and date_end>='".substr( $date,0,7)."-01' ) or ( date_end is Null and date like '".substr( $date,0,7)."%' ) ) "; $id_array = array(); $s = count($rows); $id_array = array(); $array_days = array(); $array_days1 = array(); $title = array(); $ev_ids = array(); ///mec FOR for ($i = 1; $i <= $s; $i++) { $date_month = (int) substr($rows[$i - 1]->date, 5, 2); $date_end_month = (int) substr($rows[$i - 1]->date_end, 5, 2); $date_day = (int) substr($rows[$i - 1]->date, 8, 2); $date_end_day = (int) substr($rows[$i - 1]->date_end, 8, 2); //echo $date_day; $date_year_month = (int) (substr($rows[$i - 1]->date, 0, 4) . substr($rows[$i - 1]->date, 5, 2)); $date_end_year_month = (int) (substr($rows[$i - 1]->date_end, 0, 4) . substr($rows[$i - 1]->date_end, 5, 2)); $year_month = (int) ($year . $month); $repeat = $rows[$i - 1]->repeat; if ($repeat == "") { $repeat = 1; } $start_date = $rows[$i - 1]->date; //echo $date_month.'<br>' ; //echo (int)$month.'<br>'; $weekly = $rows[$i - 1]->week; $weekly_array = explode(',', $weekly); $date_days = array(); $weekdays_start = array(); $weekdays = array(); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// NO Repeat ///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'no_repeat') { $date_days[] = $date_day; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Repeat Daily ///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'daily') { $t = php_daysDifference($rows[$i - 1]->date, $rows[$i - 1]->date_end); for ($k = 1; $k <= $t / $repeat; $k++) { $next_date = php_GetNextDate($start_date, $repeat); $next_date_array = explode('/', $next_date); if ((int) $month == $date_month && (int) substr($date_year_month, 0, 4) == (int) $year) { $date_days[0] = $date_day; } if ((int) $month == $next_date_array[0] && (int) $year == $next_date_array[2]) { $date_days[] = $next_date_array[1]; } $start_date = date("Y-m-d", mktime(0, 0, 0, $next_date_array[0], $next_date_array[1], $next_date_array[2])); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Repeat Weekly /////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'weekly') { for ($j = 0; $j <= 6; $j++) { if (in_array(date("D", mktime(0, 0, 0, $date_month, $date_day + $j, substr($rows[$i - 1]->date, 0, 4))), $weekly_array)) { $weekdays_start[] = $date_day + $j; } } for ($p = 0; $p < count($weekly_array) - 1; $p++) { $start_date = substr($rows[$i - 1]->date, 0, 8) . $weekdays_start[$p]; $t = php_daysDifference($rows[$i - 1]->date, $rows[$i - 1]->date_end); $r = 0; for ($k = 1; $k < $t / $repeat; $k++) { $start_date_array[] = $start_date; $next_date = php_GetNextDate($start_date, $repeat * 7); $next_date_array = explode('/', $next_date); if ((int) $month == $date_month && (int) substr($date_year_month, 0, 4) == (int) $year) { $date_days[0] = $weekdays_start[$p]; } if ((int) $month == $next_date_array[0] && (int) $year == $next_date_array[2]) { if ((int) $year > (int) substr($date_year_month, 0, 4)) { $weekdays[] = $next_date_array[1]; } else { $weekdays[] = $next_date_array[1]; } } $start_date = date("Y-m-d", mktime(0, 0, 0, $next_date_array[0], $next_date_array[1], $next_date_array[2])); if ($next_date_array[2] > (int) substr($rows[$i - 1]->date_end, 0, 4)) { break; } } $date_days = array_merge($weekdays, $date_days); } $repeat = $repeat * 7; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Repeat Monthly /////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'monthly') { $xxxxx = 13; $year_dif_count = (int) $year - (int) substr($rows[$i - 1]->date, 0, 4); $mount_dif_count = 12 - (int) substr($rows[$i - 1]->date, 5, 2) + ($year_dif_count - 1) * 12; if ($year_dif_count > 0) { for ($my_serch_month = 1; $my_serch_month <= 12; $my_serch_month++) { if (($mount_dif_count + $my_serch_month) % $rows[$i - 1]->repeat == 0) { $xxxxx = $my_serch_month; break; } } } if ($xxxxx != 13) { if ($xxxxx < 10) { $xxxxx = '0' . $xxxxx; } } $month_days = date('t', mktime(0, 0, 0, $month, $date_day, $year)); if ($date_month < (int) $month or (int) substr($date_year_month, 0, 4) < $year) { $date_day = 1; } if ($year > (int) substr($date_year_month, 0, 4)) { $date_year_month = $year . $xxxxx; } $p = (int) substr($date_year_month, 4, 2); if ((int) substr($date_year_month, 0, 4) != (int) substr($date_end_year_month, 0, 4)) { $end = (int) substr($date_end_year_month, 4, 2) + 12; } else { $end = (int) substr($date_end_year_month, 4, 2); } for ($k = 1; $k <= $end; $k++) { if ((int) $month == $p and $rows[$i - 1]->month_type == 1) { $date_days[0] = $rows[$i - 1]->month; } if ($p == (int) $month and $rows[$i - 1]->month_type == 2) { if ($rows[$i - 1]->monthly_list != 'last') { for ($j = $rows[$i - 1]->monthly_list; $j < $rows[$i - 1]->monthly_list + 7; $j++) { if (date("D", mktime(0, 0, 0, $month, $j, $year)) == $rows[$i - 1]->month_week) { if ($j >= $date_day) { $date_days[0] = $j; } } } } else { for ($j = 1; $j <= $month_days; $j++) { if (date("D", mktime(0, 0, 0, $month, $j, $year)) == $rows[$i - 1]->month_week) { if ($j >= $date_day) { $date_days[0] = $j; } } } } } if ($year > (int) substr($date_year_month, 0, 4)) { $p = 1; } $p = $p + $repeat; } $repeat = 32; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Repeat Yearly /////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'yearly') { $month_days = date('t', mktime(0, 0, 0, $month, $date_day, $year)); $end = substr($date_end_year_month, 0, 4) - substr($date_year_month, 0, 4) + 1; if (substr($date_year_month, 0, 4) < $year) { $date_day = 1; } for ($k = 0; $k <= $end; $k += $repeat) { if ((int) $month == $rows[$i - 1]->year_month and $rows[$i - 1]->month_type == 1 and $year == substr($date_year_month, 0, 4) + $k) { $date_days[0] = $rows[$i - 1]->month; } } for ($k = 0; $k <= $end; $k += $repeat) { if ((int) $month == $rows[$i - 1]->year_month and $rows[$i - 1]->month_type == 2 and $year == substr($date_year_month, 0, 4) + $k) { if ($rows[$i - 1]->monthly_list != 'last') { for ($j = $rows[$i - 1]->monthly_list; $j < $rows[$i - 1]->monthly_list + 7; $j++) { if (date("D", mktime(0, 0, 0, $month, $j, $year)) == $rows[$i - 1]->month_week) { $date_days[0] = $j; } } } else { for ($j = 1; $j <= $month_days; $j++) { if (date("D", mktime(0, 0, 0, $month, $j, $year)) == $rows[$i - 1]->month_week) { $date_days[0] = $j; } } } } } $repeat = 32; } $used = array(); foreach ($date_days as $date_day) { if ($date_month == $month) { if (in_array($date_day, $used)) { continue; } else { array_push($used, $date_day); } if (in_array($date_day, $array_days)) { $key = array_search($date_day, $array_days); $title_num[$date_day]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $date_day; } $c = $title_num[$date_day]; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$date_day] = $title[$date_day] . $list; $ev_ids[$date_day] = $ev_ids[$date_day] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $date_day; $key = array_search($date_day, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $date_day; } $title_num[$date_day] = 1; $c = 1; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$date_day] = $list; $ev_ids[$date_day] = $rows[$i - 1]->id . '<br>'; } //$date_day=$date_day+$repeat; } if ($date_end_month > 0 and $date_year_month == $date_end_year_month and $date_end_year_month == $year_month) { for ($j = $date_day; $j <= $date_end_day; $j = $j + $repeat) { if (in_array($j, $used)) { continue; } else { array_push($used, $j); } if (in_array($j, $array_days)) { $key = array_search($j, $array_days); $title_num[$j]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $c = $title_num[$j]; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$j] = $title[$j] . $list; $ev_ids[$j] = $ev_ids[$j] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $j; $key = array_search($j, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $title_num[$j] = 1; $c = 1; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$j] = $list; $ev_ids[$j] = $rows[$i - 1]->id . '<br>'; } } } if ($date_end_month > 0 and $date_year_month < $date_end_year_month and $date_year_month == $year_month) { for ($j = $date_day; $j <= 31; $j = $j + $repeat) { if (in_array($j, $used)) { continue; } else { array_push($used, $j); } if (in_array($j, $array_days)) { $key = array_search($j, $array_days); $title_num[$j]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $c = $title_num[$j]; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$j] = $title[$j] . $list; $ev_ids[$j] = $ev_ids[$j] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $j; $key = array_search($j, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $title_num[$j] = 1; $c = 1; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$j] = $list; $ev_ids[$j] = $rows[$i - 1]->id . '<br>'; } } } if ($date_end_month > 0 and $date_year_month < $date_end_year_month and $date_end_year_month == $year_month) { for ($j = $date_day; $j <= $date_end_day; $j = $j + $repeat) { if (in_array($j, $used)) { continue; } else { array_push($used, $j); } if (in_array($j, $array_days)) { $key = array_search($j, $array_days); $title_num[$j]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $c = $title_num[$j]; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$j] = $title[$j] . $list; $ev_ids[$j] = $ev_ids[$j] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $j; $key = array_search($j, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $title_num[$j] = 1; $c = 1; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$j] = $list; $ev_ids[$j] = $rows[$i - 1]->id . '<br>'; } } } if ($date_end_month > 0 and $date_year_month < $date_end_year_month and $date_end_year_month > $year_month and $date_year_month < $year_month) { for ($j = $date_day; $j <= 31; $j = $j + $repeat) { if (in_array($j, $used)) { continue; } else { array_push($used, $j); } if (in_array($j, $array_days)) { $key = array_search($j, $array_days); $title_num[$j]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $c = $title_num[$j]; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$j] = $title[$j] . $list; $ev_ids[$j] = $ev_ids[$j] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $j; $key = array_search($j, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $title_num[$j] = 1; $c = 1; $list = '<p><b>' . $c . '.</b> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= ' ' . $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= ' ' . $rows[$i - 1]->title . '</p>'; } $title[$j] = $list; $ev_ids[$j] = $rows[$i - 1]->id . '<br>'; } } } } } for ($i = 1; $i <= count($array_days) - 1; $i++) { if (isset($array_days[$i])) { if ($array_days[$i] > '00' && $array_days[$i] < '09' and substr($array_days[$i], 0, 1) == '0') { $array_days[$i] = substr($array_days[$i], 1, 1); } } } $all_calendar_files['array_days'] = $array_days; $all_calendar_files['title'] = $title; $all_calendar_files['option'] = $option; $all_calendar_files['array_days1'] = $array_days1; $all_calendar_files['calendar'] = $calendar; $all_calendar_files['ev_ids'] = $ev_ids; return array($all_calendar_files); }
function php_getdays_for_three_months($calendar, $date, $months, $theme_id, $widget) { global $wpdb; $year = substr($date, 0, 4); $month = substr($date, 5, 2); $months_array = explode(',', $months); if ($widget) { $show_time = 0; } else { $theme = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'spidercalendar_theme WHERE id=%d', $theme_id)); $show_time = $theme->show_time; } if (isset($_GET['cat_id'])) { $cat_id = $_GET['cat_id']; } else { $cat_id = ""; } if (isset($_GET['cat_ids'])) { $cat_ids = $_GET['cat_ids']; } else { $cat_ids = ""; } if ($cat_ids == '') { $cat_ids .= $cat_id . ','; } else { $cat_ids .= ',' . $cat_id . ','; } $cat_ids = substr($cat_ids, 0, -1); $cat_ids_array = explode(',', $cat_ids); if ($cat_id != '') { if (getelementcountinarray($cat_ids_array, $cat_id) % 2 == 0) { $index_in_line = getelementindexinarray($cat_ids_array, $cat_id); $index_array = explode(',', $index_in_line); array_pop($index_array); for ($j = 0; $j < count($index_array); $j++) { unset($cat_ids_array[$index_array[$j]]); } $cat_ids = implode(',', $cat_ids_array); } } else { $cat_ids = substr($cat_ids, 0, -1); } $row = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "spidercalendar_calendar where published=1 and id=%d", $calendar)); if ($row->time_format == 0) { $order_by = "ORDER BY " . $wpdb->prefix . "spidercalendar_event.time ASC"; } else { $order_by = " ORDER BY STR_TO_DATE( SUBSTRING( time, 1, 7 ) , '%h:%i%p' )"; } if ($cat_ids != '' and preg_match("/^[0-9\\,]+\$/", $cat_ids)) { $query = $wpdb->prepare("SELECT " . $wpdb->prefix . "spidercalendar_event.*,\t" . $wpdb->prefix . "spidercalendar_event_category.color from " . $wpdb->prefix . "spidercalendar_event JOIN " . $wpdb->prefix . "spidercalendar_event_category ON " . $wpdb->prefix . "spidercalendar_event.category = " . $wpdb->prefix . "spidercalendar_event_category.id \twhere " . $wpdb->prefix . "spidercalendar_event_category.published=1 and " . $wpdb->prefix . "spidercalendar_event.category IN (" . $cat_ids . ") and " . $wpdb->prefix . "spidercalendar_event.published=1 and ( ( (date<=%s\tor date like %s) and (date_end>=%s ) or date_end='0000-00-00' ) or ( date_end is Null and date like %s ) ) and calendar=%d ", substr($date, 0, 7) . '-01', substr($date, 0, 7) . "%", substr($date, 0, 7) . '-01', substr($date, 0, 7) . "%", $calendar); } else { $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . "spidercalendar_event where published=1 and ((date_end>=%s) or (date_end=%s)) and calendar=%d", "" . substr($date, 0, 7) . "-01", "0000-00-00", $calendar); } $rows = $wpdb->get_results($query . " " . $order_by); $all_id_array = array(); $all_array_days = array(); $all_array_days1 = array(); $all_title = array(); $all_ev_ids = array(); $s = count($rows); foreach ($months_array as $month) { $id_array = array(); $array_days = array(); $array_days1 = array(); $title = array(); $ev_ids = array(); for ($i = 1; $i <= $s; $i++) { if ($rows[$i - 1]->repeat_method != 'no_repeat' and $rows[$i - 1]->date_end == '0000-00-00') { $d_end = (int) substr($rows[$i - 1]->date, 0, 4) + 40 . substr($rows[$i - 1]->date, 4, 6); } else { $d_end = $rows[$i - 1]->date_end; } $date_month = (int) substr($rows[$i - 1]->date, 5, 2); $date_end_month = (int) substr($d_end, 5, 2); $date_day = (int) substr($rows[$i - 1]->date, 8, 2); $date_end_day = (int) substr($d_end, 8, 2); $date_year_month = (int) (substr($rows[$i - 1]->date, 0, 4) . substr($rows[$i - 1]->date, 5, 2)); $date_end_year_month = (int) (substr($d_end, 0, 4) . substr($d_end, 5, 2)); $year_month = (int) ($year . $month); $repeat = $rows[$i - 1]->repeat; if ($repeat == "") { $repeat = 1; } $start_date = $rows[$i - 1]->date; $weekly = $rows[$i - 1]->week; $weekly_array = explode(',', $weekly); $date_days = array(); $weekdays_start = array(); $weekdays = array(); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// NO Repeat ///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'no_repeat') { $date_days[] = $date_day; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Repeat Daily ///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'daily') { $t = php_daysDifference($rows[$i - 1]->date, $d_end); for ($k = 1; $k <= $t / $repeat; $k++) { $next_date = php_GetNextDate($start_date, $repeat); $next_date_array = explode('/', $next_date); if ((int) $month == $date_month && (int) substr($date_year_month, 0, 4) == (int) $year) { $date_days[0] = $date_day; } if ((int) $month == $next_date_array[0] && (int) $year == $next_date_array[2]) { $date_days[] = $next_date_array[1]; } $start_date = date("Y-m-d", mktime(0, 0, 0, $next_date_array[0], $next_date_array[1], $next_date_array[2])); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Repeat Weekly /////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'weekly') { for ($j = 0; $j <= 6; $j++) { if (in_array(date("D", mktime(0, 0, 0, $date_month, $date_day + $j, substr($rows[$i - 1]->date, 0, 4))), $weekly_array)) { $weekdays_start[] = $date_day + $j; } } for ($p = 0; $p < count($weekly_array) - 1; $p++) { $start_date = substr($rows[$i - 1]->date, 0, 8) . $weekdays_start[$p]; $t = php_daysDifference($rows[$i - 1]->date, $d_end); $q = php_daysDifference($rows[$i - 1]->date, $start_date); $r = 0; if ($t / ($repeat * 7) - 1 > 1) { for ($k = 1; $k < $t / ($repeat * 7) - 1; $k++) { $start_date_array[] = $start_date; $next_date = php_GetNextDate($start_date, $repeat * 7); $next_date_array = explode('/', $next_date); if ((int) $month == $date_month && (int) substr($date_year_month, 0, 4) == (int) $year) { $date_days[0] = $weekdays_start[$p]; } if ((int) $month == $next_date_array[0] && (int) $year == $next_date_array[2]) { if ((int) $year > (int) substr($date_year_month, 0, 4)) { $weekdays[] = $next_date_array[1]; } else { $weekdays[] = $next_date_array[1]; } } $start_date = date("Y-m-d", mktime(0, 0, 0, $next_date_array[0], $next_date_array[1], $next_date_array[2])); if ($next_date_array[2] > (int) substr($d_end, 0, 4)) { break; } } $date_days = array_merge($weekdays, $date_days); } else { if ($t >= $q) { $date_days[] = $weekdays_start[$p]; } } } $repeat = $repeat * 7; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Repeat Monthly /////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'monthly') { $month_days = date('t', mktime(0, 0, 0, $month, $date_day, $year)); if ($date_month < (int) $month or (int) substr($date_year_month, 0, 4) < $year) { $date_day = 1; } if ($year > (int) substr($date_year_month, 0, 4)) { $date_year_month = $year . '00'; } $p = (int) substr($date_year_month, 4, 2); if ((int) substr($date_year_month, 0, 4) != (int) substr($date_end_year_month, 0, 4)) { $end = (int) substr($date_end_year_month, 4, 2) + 12; } else { $end = (int) substr($date_end_year_month, 4, 2); } for ($k = 1; $k <= $end; $k++) { if ((int) $month == $p and $rows[$i - 1]->month_type == 1) { $date_days[0] = $rows[$i - 1]->month; } if ($p == (int) $month and $rows[$i - 1]->month_type == 2) { if ($rows[$i - 1]->monthly_list != 'last') { for ($j = $rows[$i - 1]->monthly_list; $j < $rows[$i - 1]->monthly_list + 7; $j++) { if (date("D", mktime(0, 0, 0, $month, $j, $year)) == $rows[$i - 1]->month_week) { if ($j >= $date_day) { $date_days[0] = $j; } } } } else { for ($j = 1; $j < $month_days; $j++) { if (date("D", mktime(0, 0, 0, $month, $j, $year)) == $rows[$i - 1]->month_week) { if ($j >= $date_day) { $date_days[0] = $j; } } } } } if ($year > (int) substr($date_year_month, 0, 4)) { $p = 1; } $p = $p + $repeat; } $repeat = 32; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// Repeat Yearly /////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($rows[$i - 1]->repeat_method == 'yearly') { $month_days = date('t', mktime(0, 0, 0, $month, $date_day, $year)); $end = substr($date_end_year_month, 0, 4) - substr($date_year_month, 0, 4) + 1; if (substr($date_year_month, 0, 4) < $year) { $date_day = 1; } for ($k = 0; $k <= $end; $k += $repeat) { if ((int) $month == $rows[$i - 1]->year_month and $rows[$i - 1]->month_type == 1 and $year == substr($date_year_month, 0, 4) + $k) { $date_days[0] = $rows[$i - 1]->month; } } for ($k = 0; $k <= $end; $k += $repeat) { if ((int) $month == $rows[$i - 1]->year_month and $rows[$i - 1]->month_type == 2 and $year == substr($date_year_month, 0, 4) + $k) { if ($rows[$i - 1]->monthly_list != 'last') { for ($j = $rows[$i - 1]->monthly_list; $j < $rows[$i - 1]->monthly_list + 7; $j++) { if (date("D", mktime(0, 0, 0, $month, $j, $year)) == $rows[$i - 1]->month_week) { $date_days[0] = $j; } } } else { for ($j = 1; $j <= $month_days; $j++) { if (date("D", mktime(0, 0, 0, $month, $j, $year)) == $rows[$i - 1]->month_week) { $date_days[0] = $j; } } } } } $repeat = 32; } $used = array(); foreach ($date_days as $date_day) { if ($date_month == $month) { if (in_array($date_day, $used)) { continue; } else { array_push($used, $date_day); } if (in_array($date_day, $array_days)) { $key = array_search($date_day, $array_days); $title_num[$date_day]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $date_day; } $c = $title_num[$date_day]; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$date_day] = $title[$date_day] . $list; $ev_ids[$date_day] = $ev_ids[$date_day] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $date_day; $key = array_search($date_day, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $date_day; } $title_num[$date_day] = 1; $c = 1; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$date_day] = $list; $ev_ids[$date_day] = $rows[$i - 1]->id . '<br>'; } } if ($date_end_month > 0 and $date_year_month == $date_end_year_month and $date_end_year_month == $year_month) { for ($j = $date_day; $j <= $date_end_day; $j = $j + $repeat) { if (in_array($j, $used)) { continue; } else { array_push($used, $j); } if (in_array($j, $array_days)) { $key = array_search($j, $array_days); $title_num[$j]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $c = $title_num[$j]; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$j] = $title[$j] . $list; $ev_ids[$j] = $ev_ids[$j] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $j; $key = array_search($j, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $title_num[$j] = 1; $c = 1; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$j] = $list; $ev_ids[$j] = $rows[$i - 1]->id . '<br>'; } } } if ($date_end_month > 0 and $date_year_month < $date_end_year_month and $date_year_month == $year_month) { for ($j = $date_day; $j <= 31; $j = $j + $repeat) { if (in_array($j, $used)) { continue; } else { array_push($used, $j); } if (in_array($j, $array_days)) { $key = array_search($j, $array_days); $title_num[$j]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $c = $title_num[$j]; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$j] = $title[$j] . $list; $ev_ids[$j] = $ev_ids[$j] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $j; $key = array_search($j, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $title_num[$j] = 1; $c = 1; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$j] = $list; $ev_ids[$j] = $rows[$i - 1]->id . '<br>'; } } } if ($date_end_month > 0 and $date_year_month < $date_end_year_month and $date_end_year_month == $year_month) { for ($j = $date_day; $j <= $date_end_day; $j = $j + $repeat) { if (in_array($j, $used)) { continue; } else { array_push($used, $j); } if (in_array($j, $array_days)) { $key = array_search($j, $array_days); $title_num[$j]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $c = $title_num[$j]; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$j] = $title[$j] . $list; $ev_ids[$j] = $ev_ids[$j] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $j; $key = array_search($j, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $title_num[$j] = 1; $c = 1; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$j] = $list; $ev_ids[$j] = $rows[$i - 1]->id . '<br>'; } } } if ($date_end_month > 0 and $date_year_month < $date_end_year_month and $date_end_year_month > $year_month and $date_year_month < $year_month) { for ($j = $date_day; $j <= 31; $j = $j + $repeat) { if (in_array($j, $used)) { continue; } else { array_push($used, $j); } if (in_array($j, $array_days)) { $key = array_search($j, $array_days); $title_num[$j]++; if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $c = $title_num[$j]; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$j] = $title[$j] . $list; $ev_ids[$j] = $ev_ids[$j] . $rows[$i - 1]->id . '<br>'; } else { $array_days[] = $j; $key = array_search($j, $array_days); if ($rows[$i - 1]->text_for_date != "") { $array_days1[$key] = $j; } $title_num[$j] = 1; $c = 1; $list = '<p> '; if ($rows[$i - 1]->time and $show_time != 0) { $list .= $rows[$i - 1]->title . '<br>(' . $rows[$i - 1]->time . ')</p>'; } else { $list .= $rows[$i - 1]->title . '</p>'; } $title[$j] = $list; $ev_ids[$j] = $rows[$i - 1]->id . '<br>'; } } } } } $all_id_array[] = $id_array; $all_array_days[] = $array_days; $all_array_days1[] = $array_days1; $all_title[] = $title; $all_ev_ids[] = $ev_ids; } $all_calendar_files['all_array_days'] = $all_array_days; $all_calendar_files['all_array_days1'] = $all_array_days1; $all_calendar_files['all_title'] = $all_title; $all_calendar_files['all_ev_ids'] = $all_ev_ids; $all_calendar_files['all_calendar'] = $all_id_array; return array($all_calendar_files); }