Advertisement
Guest User

Untitled

a guest
Jul 27th, 2016
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. private function draw_calendar($month, $year){
  2. /* draw table */
  3. $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';
  4.  
  5. /* table headings */
  6. $headings = array($this->user->lang('SUNDAY'), $this->user->lang('MONDAY'), $this->user->lang('TUESDAY'), $this->user->lang('WEDNESDAY'), $this->user->lang('THURSDAY'), $this->user->lang('FRIDAY'), $this->user->lang('SATURDAY'));
  7. $calendar .= '<thead class="calendar-head"><tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">', $headings).'</td></tr></thead>';
  8.  
  9. /* generation found at http://davidwalsh.name/php-calendar */
  10. /* days and weeks vars now ... */
  11. $running_day = date('w', mktime(0, 0, 0, $month, 1, $year));
  12. $days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
  13. $days_in_this_week = 1;
  14. $day_counter = 0;
  15. $dates_array = array();
  16.  
  17. /* row for week one */
  18. $calendar .= '<tr class="calendar-row">';
  19.  
  20. /* print "blank" days until the first of the current week */
  21. for($x = 0; $x < $running_day; $x++) {
  22. $calendar .= '<td class="calendar-day-np"> </td>';
  23. $days_in_this_week++;
  24. }
  25.  
  26. /* keep going with days.... */
  27. for($list_day = 1; $list_day <= $days_in_month; $list_day++) {
  28. if($list_day == date('j') && $month == date('n') && $year == date('Y')) {
  29. $calendar .= '<td class="calendar-day calendar-today">';
  30. }
  31. else {
  32. $calendar .= '<td class="calendar-day">';
  33. }
  34. /* add in the day number */
  35. $calendar .= '<div class="day-number">'.$list_day.'</div>';
  36.  
  37. $events = $this->events->get_events_of_day($month, $list_day, $year);
  38.  
  39. if(!empty($events)) {
  40. for($i = 0; $i < count($events); $i++) {
  41. $events[$i]['time_number'] = $this->time_to_number($events[$i]['start'], $this->user->lang('PM'));
  42. }
  43. usort($events, function ($a, $b) {
  44. return strnatcmp($a['time_number'], $b['time_number']);
  45. });
  46. }
  47.  
  48. foreach($events as $event) {
  49. $calendar .= '<div class="calendar-event"><p><a href="' . $this->helper->route('event', array('id' => $event['id'])) . '">' . $event['title']. '</a></p>';
  50. if($event['start'] != NULL) {
  51. $calendar .= '<span><i class="fa fa-clock-o lazyIcon"></i> ' . $event['start'] . ' - ' . $event['end'] . '</span>';
  52. }
  53. $calendar .= '</div>';
  54. }
  55. unset($events);
  56.  
  57. $calendar .= '</td>';
  58.  
  59. if($running_day == 6) {
  60. $calendar .= '</tr>';
  61.  
  62. if(($day_counter+1) != $days_in_month) {
  63. $calendar .= '<tr class="calendar-row">';
  64. }
  65.  
  66. $running_day = -1;
  67. $days_in_this_week = 0;
  68. }
  69.  
  70. $days_in_this_week++; $running_day++; $day_counter++;
  71. }
  72.  
  73. /* finish the rest of the days in the week */
  74. if($days_in_this_week < 8) {
  75. for($x = 1; $x <= (8 - $days_in_this_week); $x++) {
  76. $calendar .= '<td class="calendar-day-np"> </td>';
  77. }
  78. }
  79.  
  80. /* final row */
  81. $calendar .= '</tr>';
  82.  
  83. /* end the table */
  84. $calendar .= '</table>';
  85.  
  86. /* all done, return result */
  87. return $calendar;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement