Advertisement
Chrizz93

PHP

Apr 21st, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.37 KB | None | 0 0
  1. <?php
  2. /* laver Kalender omridset */
  3. function draw_calendar($month,$year,$events = array()){
  4.  
  5.     /* laver tabel omridset */
  6.     $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';
  7.  
  8.     /* tabel overskrifter */
  9.     $headings = array('Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag','Søndag');
  10.     $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>';
  11.  
  12.     /* Dage og uger variabler */
  13.     $running_day = date('W',mktime(0,0,0,$month,1,$year));
  14.     $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
  15.     $days_in_this_week = 1;
  16.     $day_counter = 0;
  17.     $dates_array = array();
  18.  
  19.     /* række for uge 1 */
  20.     $calendar.= '<tr class="calendar-row">';
  21.  
  22.     /* printer tom celle indtil den første dag i måneden */
  23.     for($x = 0; $x < $running_day; $x++):
  24.         $calendar.= '<td class="calendar-day-np">&nbsp;</td>';
  25.         $days_in_this_week++;
  26.     endfor;
  27.  
  28.     /* Dagene i måneden */
  29.     for($list_day = 1; $list_day <= $days_in_month; $list_day++):
  30.         $calendar.= '<td class="calendar-day"><div style="position:relative;height:100px;">';
  31.             /* Tilføjer dag numre */
  32.             $calendar.= '<div class="day-number">'.$list_day.'</div>';
  33.            
  34.             $event_day = $year.'-'.$month.'-'.$list_day;
  35.             if(isset($events[$event_day])) {
  36.                 foreach($events[$event_day] as $event) {
  37.                     $calendar.= '<div class="event">'.$event['title'].'</div>';
  38.                 }
  39.             }
  40.             else {
  41.                 $calendar.= str_repeat('<p>&nbsp;</p>',2);
  42.             }
  43.         $calendar.= '</div></td>';
  44.         if($running_day == 6):
  45.             $calendar.= '</tr>';
  46.             if(($day_counter+1) != $days_in_month):
  47.                 $calendar.= '<tr class="calendar-row">';
  48.             endif;
  49.             $running_day = -1;
  50.             $days_in_this_week = 0;
  51.         endif;
  52.         $days_in_this_week++; $running_day++; $day_counter++;
  53.     endfor;
  54.  
  55.     /* Resten af dagene i ugen */
  56.     if($days_in_this_week < 8):
  57.         for($x = 1; $x <= (8 - $days_in_this_week); $x++):
  58.             $calendar.= '<td class="calendar-day-np">&nbsp;</td>';
  59.         endfor;
  60.     endif;
  61.  
  62.     /* Sidste række */
  63.     $calendar.= '</tr>';
  64.    
  65.  
  66.     /* Enden af tabelen */
  67.     $calendar.= '</table>';
  68.  
  69.     /** Sørger for fejl meddelse ikke kommer **/
  70.     $calendar = str_replace('</td>','</td>'."\n",$calendar);
  71.     $calendar = str_replace('</tr>','</tr>'."\n",$calendar);
  72.    
  73.     /* returner kalender variabel */
  74.     return $calendar;
  75. }
  76.  
  77. function random_number() {
  78.     srand(time());
  79.     return (rand() % 7);
  80. }
  81.  
  82. /* date settings */
  83. $month = (int) ($_GET['month']);
  84. $year = (int)  ($_GET['year']);
  85.  
  86. /* select month control */
  87. $select_month_control = '<select name="month" id="month">';
  88. for($x = 1; $x <= 12; $x++) {
  89.     $select_month_control.= '<option value="'.$x.'"'.($x != $month ? '' : ' selected="selected"').'>'.date('F',mktime(0,0,0,$x,1,$year)).'</option>';
  90. }
  91. $select_month_control.= '</select>';
  92.  
  93. /* select year control */
  94. $year_range = 7;
  95. $select_year_control = '<select name="year" id="year">';
  96. for($x = ($year-floor($year_range/2)); $x <= ($year+floor($year_range/2)); $x++) {
  97.     $select_year_control.= '<option value="'.$x.'"'.($x != $year ? '' : ' selected="selected"').'>'.$x.'</option>';
  98. }
  99. $select_year_control.= '</select>';
  100.  
  101. /* "next month" control */
  102. $next_month_link = '<a href="?month='.($month != 12 ? $month + 1 : 1).'&year='.($month != 12 ? $year : $year + 1).'" class="control">Next Month &gt;&gt;</a>';
  103.  
  104. /* "previous month" control */
  105. $previous_month_link = '<a href="?month='.($month != 1 ? $month - 1 : 12).'&year='.($month != 1 ? $year : $year - 1).'" class="control">&lt;&lt;    Previous Month</a>';
  106.  
  107.  
  108. /* bringing the controls together */
  109. $controls = '<form method="get">'.$select_month_control.$select_year_control.'&nbsp;<input type="submit" name="submit" value="Go" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$previous_month_link.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$next_month_link.' </form>';
  110.  
  111. /* get all events for the given month */
  112. $events = array();
  113. $query = "SELECT title, DATE_FORMAT(event_date,'%Y-%m-%D') AS event_date FROM events WHERE event_date LIKE '$year-$month%'";
  114. $result = mysqli_query($query,$db_link) or die('cannot get results!');
  115. while($row = mysql_fetch_assoc($result)) {
  116.     $events[$row['event_date']][] = $row;
  117. }
  118.  
  119. echo '<h2 style="float:left; padding-right:30px;">'.date('F',mktime(0,0,0,$month,1,$year)).' '.$year.'</h2>';
  120. echo '<div style="float:left;">'.$controls.'</div>';
  121. echo '<div style="clear:both;"></div>';
  122. echo draw_calendar($month,$year,$events);
  123. echo '<br /><br />';
  124.  
  125. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement