Created
November 29, 2017 16:59
-
-
Save bulentsakarya/6607e74762e9d509bebd286f1ce326c1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function sc_draw_calendar( $month, $year ){ | |
//start draw table | |
$calendar = '<table cellpadding="0" cellspacing="0" class="calendar">'; | |
$day_names = array( | |
0 => __('Pazar', 'pippin_sc'), | |
1 => __('Pazartesi', 'pippin_sc'), | |
2 => __('Salı', 'pippin_sc'), | |
3 => __('Çarşamba', 'pippin_sc'), | |
4 => __('Perşembe', 'pippin_sc'), | |
5 => __('Cuma', 'pippin_sc'), | |
6 => __('Cumartesi', 'pippin_sc') | |
); | |
$week_start_day = get_option( 'start_of_week' ); | |
// adjust day names for sites with Monday set as the start day | |
if( $week_start_day == 1 ) { | |
$end_day = $day_names[0]; | |
$start_day = $day_names[1]; | |
array_shift($day_names); | |
$day_names[] = $end_day; | |
} | |
$calendar.= '<tr class="calendar-row">'; | |
for( $i = 0; $i <= 6; $i++ ) { | |
$calendar .= '<th class="calendar-day-head">' . $day_names[$i] .'</th>'; | |
} | |
$calendar .= '</tr>'; | |
//days and weeks vars now | |
$running_day = date( 'w', mktime( 0, 0, 0, $month, 1, $year ) ); | |
if ( $week_start_day == 1 ) | |
$running_day = ( $running_day > 0 ) ? $running_day - 1 : 6; | |
$days_in_month = date( 't', mktime( 0, 0, 0, $month, 1, $year ) ); | |
$days_in_this_week = 1; | |
$day_counter = 0; | |
$dates_array = array(); | |
//get today's date | |
$time = current_time('timestamp'); | |
$today_day = date('j', $time); | |
$today_month = date('m', $time); | |
$today_year = date('Y', $time); | |
//row for week one */ | |
$calendar.= '<tr class="calendar-row">'; | |
//print "blank" days until the first of the current week | |
for($x = 0; $x < $running_day; $x++): | |
$calendar.= '<td class="calendar-day-np" valign="top"></td>'; | |
$days_in_this_week++; | |
endfor; | |
//keep going with days | |
for($list_day = 1; $list_day <= $days_in_month; $list_day++): | |
$today = ( $today_day == $list_day && $today_month == $month && $today_year == $year ) ? 'today' : ''; | |
$cal_day = '<td class="calendar-day '. $today .'" valign="top"><div class="sc_day_div">'; | |
// add in the day numbering | |
$cal_day .= '<div class="day-number">'.$list_day.'</div>'; | |
$args = array( | |
'numberposts' => -1, | |
'post_type' => 'product', | |
'post_status' => 'publish', | |
'meta_key' => 'sc_event_date_time', | |
'orderby' => 'meta_value_num', | |
'order' => 'asc', | |
'meta_value' => mktime(0, 0, 0, $month, $list_day, $year), | |
'meta_compare' => '>=' | |
); | |
$events = get_posts( apply_filters( 'sc_calendar_query_args', $args ) ); | |
$cal_event = ''; | |
$cal_event2 = ''; | |
$shown_events = array(); | |
foreach ($events as $event) : setup_postdata( $event ); | |
$id = $event->ID; | |
$shown_events[] = $id; | |
//timestamp for start date | |
$timestamp = get_post_meta($id, 'sc_event_date_time', true); | |
$timestamp2 = get_post_meta($id, 'sc_event_date_time2', true); | |
$yer = get_post_meta($id, 'sc_event_location', true); | |
$ikincigun = get_post_meta($id, 'sc_event_day_of_month2', true); | |
//define start date | |
$evt_day = date( 'j', $timestamp ); | |
$evt_month = date( 'n', $timestamp ); | |
$evt_year = date( 'Y', $timestamp ); | |
$evt_day2 = date( 'j', $timestamp2 ); | |
$evt_month2 = date( 'n', $timestamp2 ); | |
$evt_year2 = date( 'Y', $timestamp2 ); | |
//max days in the event's month | |
$last_day = date( 't', mktime( 0, 0, 0, $evt_month, 1, $evt_year ) ); | |
$last_day2 = date( 't', mktime( 0, 0, 0, $evt_month2, 1, $evt_year2 ) ); | |
//we check if any events exists on current iteration | |
//if yes, return the link to event | |
if( | |
$evt_day == $list_day && | |
$evt_month == $month && | |
$evt_year == $year | |
) { | |
$cal_event .= '<a href="'. get_permalink($id) .'">'. get_the_title($id) .'</a> - <br/><span>'.$yer.'</span>'; | |
} | |
if($ikincigun != '') { | |
if( | |
$evt_day2 == $list_day+1 && | |
$evt_month == $month && | |
$evt_year == $year | |
) { | |
$cal_event2 .= '<a href="'. get_permalink($id) .'">'. get_the_title($id) .'</a> - <br/><span>'.$yer.'</span>'; | |
} | |
} | |
endforeach; | |
$calendar .= $cal_day; | |
$calendar.= $cal_event ? $cal_event : ''; | |
$calendar.= $cal_event2 ? $cal_event2 : ''; | |
$calendar.= '</div></td>'; | |
if($running_day == 6): | |
$calendar.= '</tr>'; | |
if( ( $day_counter + 1 ) != $days_in_month ): | |
$calendar .= '<tr class="calendar-row">'; | |
endif; | |
$running_day = -1; | |
$days_in_this_week = 0; | |
endif; | |
$days_in_this_week++; $running_day++; $day_counter++; | |
endfor; | |
//finish the rest of the days in the week | |
if( $days_in_this_week < 8 ): | |
for( $x = 1; $x <= ( 8 - $days_in_this_week ); $x++ ): | |
$calendar.= '<td class="calendar-day-np" valign="top"><div class="sc_day_div"></div></td>'; | |
endfor; | |
endif; | |
wp_reset_postdata(); | |
//final row | |
$calendar.= '</tr>'; | |
//end the table | |
$calendar.= '</table>'; | |
//all done, return the completed table | |
return $calendar; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment