[ Index ]

PHP Cross Reference of Moodle 1.9.3 [Build 15-Oct-2008]

title

Body

[close]

/calendar/ -> view.php (source)

   1  <?php // $Id: view.php,v 1.95.2.7 2008/04/22 06:08:47 dongsheng Exp $
   2  
   3  /////////////////////////////////////////////////////////////////////////////
   4  //                                                                         //
   5  // NOTICE OF COPYRIGHT                                                     //
   6  //                                                                         //
   7  // Moodle - Calendar extension                                             //
   8  //                                                                         //
   9  // Copyright (C) 2003-2004  Greek School Network            www.sch.gr     //
  10  //                                                                         //
  11  // Designed by:                                                            //
  12  //     Avgoustos Tsinakos (tsinakos@teikav.edu.gr)                         //
  13  //     Jon Papaioannou (pj@moodle.org)                                     //
  14  //                                                                         //
  15  // Programming and development:                                            //
  16  //     Jon Papaioannou (pj@moodle.org)                                     //
  17  //                                                                         //
  18  // For bugs, suggestions, etc contact:                                     //
  19  //     Jon Papaioannou (pj@moodle.org)                                     //
  20  //                                                                         //
  21  // The current module was developed at the University of Macedonia         //
  22  // (www.uom.gr) under the funding of the Greek School Network (www.sch.gr) //
  23  // The aim of this project is to provide additional and improved           //
  24  // functionality to the Asynchronous Distance Education service that the   //
  25  // Greek School Network deploys.                                           //
  26  //                                                                         //
  27  // This program is free software; you can redistribute it and/or modify    //
  28  // it under the terms of the GNU General Public License as published by    //
  29  // the Free Software Foundation; either version 2 of the License, or       //
  30  // (at your option) any later version.                                     //
  31  //                                                                         //
  32  // This program is distributed in the hope that it will be useful,         //
  33  // but WITHOUT ANY WARRANTY; without even the implied warranty of          //
  34  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           //
  35  // GNU General Public License for more details:                            //
  36  //                                                                         //
  37  //          http://www.gnu.org/copyleft/gpl.html                           //
  38  //                                                                         //
  39  /////////////////////////////////////////////////////////////////////////////
  40  
  41  //  Display the calendar page.
  42  
  43      require_once ('../config.php');
  44      require_once($CFG->dirroot.'/course/lib.php');
  45      require_once($CFG->dirroot.'/calendar/lib.php');
  46  
  47      $courseid = optional_param('course', 0, PARAM_INT);
  48      $view = optional_param('view', 'upcoming', PARAM_ALPHA);
  49      $day  = optional_param('cal_d', 0, PARAM_INT);
  50      $mon  = optional_param('cal_m', 0, PARAM_INT);
  51      $yr   = optional_param('cal_y', 0, PARAM_INT);
  52  
  53      if(!$site = get_site()) {
  54          redirect($CFG->wwwroot.'/'.$CFG->admin.'/index.php');
  55      }
  56  
  57      if ($courseid) {
  58          require_login($courseid);
  59      } else if ($CFG->forcelogin) {
  60          require_login();
  61      }
  62  
  63      // Initialize the session variables
  64      calendar_session_vars();
  65  
  66      //add_to_log($course->id, "course", "view", "view.php?id=$course->id", "$course->id");
  67      $now = usergetdate(time());
  68      $pagetitle = '';
  69  
  70      $strcalendar = get_string('calendar', 'calendar');
  71      $navlinks = array();
  72      $navlinks[] = array('name' => $strcalendar,
  73                          'link' =>calendar_get_link_href(CALENDAR_URL.'view.php?view=upcoming&amp;course='.$courseid.'&amp;',
  74                                                          $now['mday'], $now['mon'], $now['year']),
  75                          'type' => 'misc');
  76  
  77  
  78      if(!checkdate($mon, $day, $yr)) {
  79          $day = intval($now['mday']);
  80          $mon = intval($now['mon']);
  81          $yr = intval($now['year']);
  82      }
  83      $time = make_timestamp($yr, $mon, $day);
  84  
  85      switch($view) {
  86          case 'day':
  87              $navlinks[] = array('name' => userdate($time, get_string('strftimedate')), 'link' => null, 'type' => 'misc');
  88              $pagetitle = get_string('dayview', 'calendar');
  89          break;
  90          case 'month':
  91              $navlinks[] = array('name' => userdate($time, get_string('strftimemonthyear')), 'link' => null, 'type' => 'misc');
  92              $pagetitle = get_string('detailedmonthview', 'calendar');
  93          break;
  94          case 'upcoming':
  95              $pagetitle = get_string('upcomingevents', 'calendar');
  96          break;
  97      }
  98  
  99      // If a course has been supplied in the URL, change the filters to show that one
 100      if (!empty($courseid)) {
 101          if ($course = get_record('course', 'id', $courseid)) {
 102              if ($course->id == SITEID) {
 103                  // If coming from the home page, show all courses
 104                  $SESSION->cal_courses_shown = calendar_get_default_courses(true);
 105                  calendar_set_referring_course(0);
 106  
 107              } else {
 108                  // Otherwise show just this one
 109                  $SESSION->cal_courses_shown = $course->id;
 110                  calendar_set_referring_course($SESSION->cal_courses_shown);
 111              }
 112          }
 113      } else {
 114          $course = null;
 115      }
 116  
 117      if (empty($USER->id) or isguest()) {
 118          $defaultcourses = calendar_get_default_courses();
 119          calendar_set_filters($courses, $groups, $users, $defaultcourses, $defaultcourses);
 120  
 121      } else {
 122          calendar_set_filters($courses, $groups, $users);
 123      }
 124  
 125      // Let's see if we are supposed to provide a referring course link
 126      // but NOT for the "main page" course
 127      if ($SESSION->cal_course_referer != SITEID &&
 128         ($shortname = get_field('course', 'shortname', 'id', $SESSION->cal_course_referer)) !== false) {
 129          require_login();
 130          if (empty($course)) {
 131              $course = get_record('course', 'id', $SESSION->cal_course_referer); // Useful to have around
 132          }
 133      }
 134  
 135      $strcalendar = get_string('calendar', 'calendar');
 136      $prefsbutton = calendar_preferences_button();
 137  
 138      // Print title and header
 139      $navigation = build_navigation($navlinks);
 140      print_header("$site->shortname: $strcalendar: $pagetitle", $strcalendar, $navigation,
 141                   '', '', true, $prefsbutton, user_login_string($site));
 142  
 143      echo calendar_overlib_html();
 144  
 145      // Layout the whole page as three big columns.
 146      echo '<table id="calendar" style="height:100%;">';
 147      echo '<tr>';
 148  
 149      // START: Main column
 150  
 151      echo '<td class="maincalendar">';
 152      echo '<div class="heightcontainer">';
 153  
 154      switch($view) {
 155          case 'day':
 156              calendar_show_day($day, $mon, $yr, $courses, $groups, $users, $courseid);
 157          break;
 158          case 'month':
 159              calendar_show_month_detailed($mon, $yr, $courses, $groups, $users, $courseid);
 160          break;
 161          case 'upcoming':
 162              calendar_show_upcoming_events($courses, $groups, $users, get_user_preferences('calendar_lookahead', CALENDAR_UPCOMING_DAYS), get_user_preferences('calendar_maxevents', CALENDAR_UPCOMING_MAXEVENTS), $courseid);
 163          break;
 164      }
 165  
 166      //Link to calendar export page
 167      echo '<div class="bottom">';
 168      print_single_button('export.php', array('course'=>$courseid), get_string('exportcalendar', 'calendar'));
 169  
 170      if (!empty($USER->id)) {
 171          $authtoken = sha1($USER->username . $USER->password);
 172          $usernameencoded = urlencode($USER->username);
 173  
 174          echo "<a href=\"export_execute.php?preset_what=all&amp;preset_time=recentupcoming&amp;username=$usernameencoded&amp;authtoken=$authtoken\">"
 175               .'<img src="'.$CFG->pixpath.'/i/ical.gif" height="14" width="36" '
 176               .'alt="'.get_string('ical', 'calendar').'" '
 177               .'title="'.get_string('quickdownloadcalendar', 'calendar').'" />'
 178               .'</a>';
 179      }
 180  
 181      echo '</div>';
 182      echo '</div>';
 183      echo '</td>';
 184  
 185      // END: Main column
 186  
 187      // START: Last column (3-month display)
 188      echo '<td class="sidecalendar">';
 189      list($prevmon, $prevyr) = calendar_sub_month($mon, $yr);
 190      list($nextmon, $nextyr) = calendar_add_month($mon, $yr);
 191      $getvars = 'id='.$courseid.'&amp;cal_d='.$day.'&amp;cal_m='.$mon.'&amp;cal_y='.$yr; // For filtering
 192  
 193      echo '<div class="sideblock">';
 194      echo '<div class="header"><h2>'.get_string('eventskey', 'calendar').'</h2></div>';
 195      echo '<div class="filters">';
 196      echo calendar_filter_controls($view, $getvars, NULL, $courses);
 197      echo '</div>';
 198      echo '</div>';
 199  
 200      echo '<div class="sideblock">';
 201      echo '<div class="header"><h2>'.get_string('monthlyview', 'calendar').'</h2></div>';
 202  
 203      echo '<div class="minicalendarblock minicalendartop">';
 204      echo calendar_top_controls('display', array('id' => $courseid, 'm' => $prevmon, 'y' => $prevyr));
 205      echo calendar_get_mini($courses, $groups, $users, $prevmon, $prevyr);
 206      echo '</div><div class="minicalendarblock">';
 207      echo calendar_top_controls('display', array('id' => $courseid, 'm' => $mon, 'y' => $yr));
 208      echo calendar_get_mini($courses, $groups, $users, $mon, $yr);
 209      echo '</div><div class="minicalendarblock">';
 210      echo calendar_top_controls('display', array('id' => $courseid, 'm' => $nextmon, 'y' => $nextyr));
 211      echo calendar_get_mini($courses, $groups, $users, $nextmon, $nextyr);
 212      echo '</div>';
 213      echo '</div>';
 214  
 215      echo '</td>';
 216  
 217      echo '</tr></table>';
 218  
 219      print_footer();
 220  
 221  
 222  
 223  function calendar_show_day($d, $m, $y, $courses, $groups, $users, $courseid) {
 224      global $CFG, $USER;
 225  
 226      if (!checkdate($m, $d, $y)) {
 227          $now = usergetdate(time());
 228          list($d, $m, $y) = array(intval($now['mday']), intval($now['mon']), intval($now['year']));
 229      }
 230  
 231      $getvars = 'from=day&amp;cal_d='.$d.'&amp;cal_m='.$m.'&amp;cal_y='.$y; // For filtering
 232  
 233      $starttime = make_timestamp($y, $m, $d);
 234      $endtime   = make_timestamp($y, $m, $d + 1) - 1;
 235  
 236      $events = calendar_get_upcoming($courses, $groups, $users, 1, 100, $starttime);
 237  
 238      $text = '';
 239      if (!isguest() && !empty($USER->id) && calendar_user_can_add_event()) {
 240          $text.= '<div class="buttons">';
 241          $text.= '<form action="'.CALENDAR_URL.'event.php" method="get">';
 242          $text.= '<div>';
 243          $text.= '<input type="hidden" name="action" value="new" />';
 244          $text.= '<input type="hidden" name="course" value="'.$courseid.'" />';
 245          $text.= '<input type="hidden" name="cal_d" value="'.$d.'" />';
 246          $text.= '<input type="hidden" name="cal_m" value="'.$m.'" />';
 247          $text.= '<input type="hidden" name="cal_y" value="'.$y.'" />';
 248          $text.= '<input type="submit" value="'.get_string('newevent', 'calendar').'" />';
 249          $text.= '</div></form></div>';
 250      }
 251  
 252      $text .= get_string('dayview', 'calendar').': '.calendar_course_filter_selector($getvars);
 253  
 254      echo '<div class="header">'.$text.'</div>';
 255  
 256      echo '<div class="controls">'.calendar_top_controls('day', array('id' => $courseid, 'd' => $d, 'm' => $m, 'y' => $y)).'</div>';
 257  
 258      if (empty($events)) {
 259          // There is nothing to display today.
 260          echo '<h3>'.get_string('daywithnoevents', 'calendar').'</h3>';
 261  
 262      } else {
 263  
 264          echo '<div class="eventlist">';
 265  
 266          $underway = array();
 267  
 268          // First, print details about events that start today
 269          foreach ($events as $event) {
 270  
 271              $event->calendarcourseid = $courseid;
 272  
 273              if ($event->timestart >= $starttime && $event->timestart <= $endtime) {  // Print it now
 274  
 275  
 276  /*
 277                  $dayend = calendar_day_representation($event->timestart + $event->timeduration);
 278                  $timeend = calendar_time_representation($event->timestart + $event->timeduration);
 279                  $enddate = usergetdate($event->timestart + $event->timeduration);
 280                  // Set printable representation
 281                  echo calendar_get_link_tag($dayend, CALENDAR_URL.'view.php?view=day'.$morehref.'&amp;', $enddate['mday'], $enddate['mon'], $enddate['year']).' ('.$timeend.')';
 282  */
 283                  //unset($event->time);
 284  
 285                  $event->time = calendar_format_event_time($event, time(), '', false, $starttime);
 286                  calendar_print_event($event);
 287  
 288              } else {                                                                 // Save this for later
 289                  $underway[] = $event;
 290              }
 291          }
 292  
 293          // Then, show a list of all events that just span this day
 294          if (!empty($underway)) {
 295              echo '<h3>'.get_string('spanningevents', 'calendar').':</h3>';
 296              foreach ($underway as $event) {
 297                  $event->time = calendar_format_event_time($event, time(), '', false, $starttime);
 298                  calendar_print_event($event);
 299              }
 300          }
 301  
 302          echo '</div>';
 303  
 304      }
 305  }
 306  
 307  function calendar_show_month_detailed($m, $y, $courses, $groups, $users, $courseid) {
 308      global $CFG, $SESSION, $USER, $CALENDARDAYS;
 309      global $day, $mon, $yr;
 310  
 311      $getvars = 'from=month&amp;cal_d='.$day.'&amp;cal_m='.$mon.'&amp;cal_y='.$yr; // For filtering
 312  
 313      $display = &New stdClass;
 314      $display->minwday = get_user_preferences('calendar_startwday', CALENDAR_STARTING_WEEKDAY);
 315      $display->maxwday = $display->minwday + 6;
 316  
 317      if(!empty($m) && !empty($y)) {
 318          $thisdate = usergetdate(time()); // Time and day at the user's location
 319          if($m == $thisdate['mon'] && $y == $thisdate['year']) {
 320              // Navigated to this month
 321              $date = $thisdate;
 322              $display->thismonth = true;
 323          }
 324          else {
 325              // Navigated to other month, let's do a nice trick and save us a lot of work...
 326              if(!checkdate($m, 1, $y)) {
 327                  $date = array('mday' => 1, 'mon' => $thisdate['mon'], 'year' => $thisdate['year']);
 328                  $display->thismonth = true;
 329              }
 330              else {
 331                  $date = array('mday' => 1, 'mon' => $m, 'year' => $y);
 332                  $display->thismonth = false;
 333              }
 334          }
 335      }
 336      else {
 337          $date = usergetdate(time());
 338          $display->thismonth = true;
 339      }
 340  
 341      // Fill in the variables we 're going to use, nice and tidy
 342      list($d, $m, $y) = array($date['mday'], $date['mon'], $date['year']); // This is what we want to display
 343      $display->maxdays = calendar_days_in_month($m, $y);
 344  
 345      $startwday = 0;
 346      if (get_user_timezone_offset() < 99) {
 347          // We 'll keep these values as GMT here, and offset them when the time comes to query the db
 348          $display->tstart = gmmktime(0, 0, 0, $m, 1, $y); // This is GMT
 349          $display->tend = gmmktime(23, 59, 59, $m, $display->maxdays, $y); // GMT
 350          $startwday = gmdate('w', $display->tstart); // $display->tstart is already GMT, so don't use date(): messes with server's TZ
 351      } else {
 352          // no timezone info specified
 353          $display->tstart = mktime(0, 0, 0, $m, 1, $y);
 354          $display->tend = mktime(23, 59, 59, $m, $display->maxdays, $y);
 355          $startwday = date('w', $display->tstart); // $display->tstart not necessarily GMT, so use date()
 356      }
 357  
 358      // Align the starting weekday to fall in our display range
 359      if($startwday < $display->minwday) {
 360          $startwday += 7;
 361      }
 362  
 363      // Get events from database
 364      $events = calendar_get_events(usertime($display->tstart), usertime($display->tend), $users, $groups, $courses);
 365      if (!empty($events)) {
 366          foreach($events as $eventid => $event) {
 367              if (!empty($event->modulename)) {
 368                  $cm = get_coursemodule_from_instance($event->modulename, $event->instance);
 369                  if (!groups_course_module_visible($cm)) {
 370                      unset($events[$eventid]);
 371                  }
 372              }
 373          }
 374      }
 375      
 376      // Extract information: events vs. time
 377      calendar_events_by_day($events, $m, $y, $eventsbyday, $durationbyday, $typesbyday, $courses);
 378  
 379      $text = '';
 380      if(!isguest() && !empty($USER->id) && calendar_user_can_add_event()) {
 381          $text.= '<div class="buttons"><form action="'.CALENDAR_URL.'event.php" method="get">';
 382          $text.= '<div>';
 383          $text.= '<input type="hidden" name="action" value="new" />';
 384          $text.= '<input type="hidden" name="course" value="'.$courseid.'" />';
 385          $text.= '<input type="hidden" name="cal_m" value="'.$m.'" />';
 386          $text.= '<input type="hidden" name="cal_y" value="'.$y.'" />';
 387          $text.= '<input type="submit" value="'.get_string('newevent', 'calendar').'" />';
 388          $text.= '</div></form></div>';
 389      }
 390  
 391      $text .= get_string('detailedmonthview', 'calendar').': '.calendar_course_filter_selector($getvars);
 392  
 393      echo '<div class="header">'.$text.'</div>';
 394  
 395      echo '<div class="controls">';
 396      echo calendar_top_controls('month', array('id' => $courseid, 'm' => $m, 'y' => $y));
 397      echo '</div>';
 398  
 399      // Start calendar display
 400      echo '<table class="calendarmonth"><tr class="weekdays">'; // Begin table. First row: day names
 401  
 402      // Print out the names of the weekdays
 403      for($i = $display->minwday; $i <= $display->maxwday; ++$i) {
 404          // This uses the % operator to get the correct weekday no matter what shift we have
 405          // applied to the $display->minwday : $display->maxwday range from the default 0 : 6
 406          echo '<th scope="col">'.get_string($CALENDARDAYS[$i % 7], 'calendar').'</th>';
 407      }
 408  
 409      echo '</tr><tr>'; // End of day names; prepare for day numbers
 410  
 411      // For the table display. $week is the row; $dayweek is the column.
 412      $week = 1;
 413      $dayweek = $startwday;
 414  
 415      // Paddding (the first week may have blank days in the beginning)
 416      for($i = $display->minwday; $i < $startwday; ++$i) {
 417          echo '<td class="nottoday">&nbsp;</td>'."\n";
 418      }
 419  
 420      // Now display all the calendar
 421      for($day = 1; $day <= $display->maxdays; ++$day, ++$dayweek) {
 422          if($dayweek > $display->maxwday) {
 423              // We need to change week (table row)
 424              echo "</tr>\n<tr>";
 425              $dayweek = $display->minwday;
 426              ++$week;
 427          }
 428  
 429          // Reset vars
 430          $cell = '';
 431          $dayhref = calendar_get_link_href(CALENDAR_URL.'view.php?view=day&amp;course='.$courseid.'&amp;', $day, $m, $y);
 432  
 433          if(CALENDAR_WEEKEND & (1 << ($dayweek % 7))) {
 434              // Weekend. This is true no matter what the exact range is.
 435              $class = 'weekend';
 436          }
 437          else {
 438              // Normal working day.
 439              $class = '';
 440          }
 441  
 442          // Special visual fx if an event is defined
 443          if(isset($eventsbyday[$day])) {
 444              if(count($eventsbyday[$day]) == 1) {
 445                  $title = get_string('oneevent', 'calendar');
 446              }
 447              else {
 448                  $title = get_string('manyevents', 'calendar', count($eventsbyday[$day]));
 449              }
 450              $cell = '<div class="day"><a href="'.$dayhref.'" title="'.$title.'">'.$day.'</a></div>';
 451          }
 452          else {
 453              $cell = '<div class="day">'.$day.'</div>';
 454          }
 455  
 456          // Special visual fx if an event spans many days
 457          if(isset($typesbyday[$day]['durationglobal'])) {
 458              $class .= ' duration_global';
 459          }
 460          else if(isset($typesbyday[$day]['durationcourse'])) {
 461              $class .= ' duration_course';
 462          }
 463          else if(isset($typesbyday[$day]['durationgroup'])) {
 464              $class .= ' duration_group';
 465          }
 466          else if(isset($typesbyday[$day]['durationuser'])) {
 467              $class .= ' duration_user';
 468          }
 469  
 470          // Special visual fx for today
 471          if($display->thismonth && $day == $d) {
 472              $class .= ' today';
 473          } else {
 474              $class .= ' nottoday';
 475          }
 476  
 477          // Just display it
 478          if(!empty($class)) {
 479              $class = ' class="'.trim($class).'"';
 480          }
 481          echo '<td'.$class.'>'.$cell;
 482  
 483          if(isset($eventsbyday[$day])) {
 484              echo '<ul class="events-new">';
 485              foreach($eventsbyday[$day] as $eventindex) {
 486  
 487                  // If event has a class set then add it to the event <li> tag
 488                  $eventclass = '';
 489                  if (!empty($events[$eventindex]->class)) {
 490                      $eventclass = ' class="'.$events[$eventindex]->class.'"';
 491                  }
 492  
 493                  echo '<li'.$eventclass.'><a href="'.$dayhref.'#event_'.$events[$eventindex]->id.'">'.format_string($events[$eventindex]->name, true).'</a></li>';
 494              }
 495              echo '</ul>';
 496          }
 497          if(isset($durationbyday[$day])) {
 498              echo '<ul class="events-underway">';
 499              foreach($durationbyday[$day] as $eventindex) {
 500                  echo '<li>['.format_string($events[$eventindex]->name,true).']</li>';
 501              }
 502              echo '</ul>';
 503          }
 504          echo "</td>\n";
 505      }
 506  
 507      // Paddding (the last week may have blank days at the end)
 508      for($i = $dayweek; $i <= $display->maxwday; ++$i) {
 509          echo '<td class="nottoday">&nbsp;</td>';
 510      }
 511      echo "</tr>\n"; // Last row ends
 512  
 513      echo "</table>\n"; // Tabular display of days ends
 514  
 515      // OK, now for the filtering display      
 516           echo '<div class="filters"><table><tr>';      
 517             
 518           // Global events      
 519           if($SESSION->cal_show_global) {      
 520               echo '<td class="event_global" style="width: 8px;"></td><td><strong>'.get_string('globalevents', 'calendar').':</strong> ';      
 521               echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showglobal&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";      
 522           }      
 523           else {      
 524               echo '<td style="width: 8px;"></td><td><strong>'.get_string('globalevents', 'calendar').':</strong> ';      
 525               echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showglobal&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";      
 526           }      
 527             
 528           // Course events      
 529           if(!empty($SESSION->cal_show_course)) {      
 530               echo '<td class="event_course" style="width: 8px;"></td><td><strong>'.get_string('courseevents', 'calendar').':</strong> ';      
 531               echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showcourses&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";      
 532           }      
 533           else {      
 534               echo '<td style="width: 8px;"></td><td><strong>'.get_string('courseevents', 'calendar').':</strong> ';      
 535               echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showcourses&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";      
 536           }      
 537             
 538           echo "</tr>\n";      
 539             
 540           if(!empty($USER->id) && !isguest()) {      
 541               echo '<tr>';      
 542               // Group events      
 543               if($SESSION->cal_show_groups) {      
 544                   echo '<td class="event_group" style="width: 8px;"></td><td><strong>'.get_string('groupevents', 'calendar').':</strong> ';      
 545                   echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showgroups&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";      
 546               }      
 547               else {      
 548                   echo '<td style="width: 8px;"></td><td><strong>'.get_string('groupevents', 'calendar').':</strong> ';      
 549                   echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showgroups&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";      
 550               }      
 551               // User events      
 552               if($SESSION->cal_show_user) {      
 553                   echo '<td class="event_user" style="width: 8px;"></td><td><strong>'.get_string('userevents', 'calendar').':</strong> ';      
 554                   echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showuser&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";      
 555               }      
 556               else {      
 557                   echo '<td style="width: 8px;"></td><td><strong>'.get_string('userevents', 'calendar').':</strong> ';      
 558                   echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showuser&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";      
 559               }      
 560               echo "</tr>\n";      
 561           }      
 562             
 563           echo '</table></div>';
 564  }
 565  
 566  function calendar_show_upcoming_events($courses, $groups, $users, $futuredays, $maxevents, $courseid) {
 567      global $USER;
 568  
 569      $events = calendar_get_upcoming($courses, $groups, $users, $futuredays, $maxevents);
 570  
 571      $text = '';
 572  
 573      if(!isguest() && !empty($USER->id) && calendar_user_can_add_event()) {
 574          $text.= '<div class="buttons">';
 575          $text.= '<form action="'.CALENDAR_URL.'event.php" method="get">';
 576          $text.= '<div>';
 577          $text.= '<input type="hidden" name="action" value="new" />';
 578          $text.= '<input type="hidden" name="course" value="'.$courseid.'" />';
 579          /*
 580          $text.= '<input type="hidden" name="cal_m" value="'.$m.'" />';
 581          $text.= '<input type="hidden" name="cal_y" value="'.$y.'" />';
 582          */
 583          $text.= '<input type="submit" value="'.get_string('newevent', 'calendar').'" />';
 584          $text.= '</div></form></div>';
 585      }
 586  
 587      $text .= get_string('upcomingevents', 'calendar').': '.calendar_course_filter_selector('from=upcoming');
 588  
 589      echo '<div class="header">'.$text.'</div>';
 590  
 591      if ($events) {
 592  
 593          echo '<div class="eventlist">';
 594          foreach ($events as $event) {
 595              $event->calendarcourseid = $courseid;
 596              calendar_print_event($event);
 597          }
 598          echo '</div>';
 599      } else {
 600          print_heading(get_string('noupcomingevents', 'calendar'));
 601      }
 602  }
 603  
 604  function calendar_course_filter_selector($getvars = '') {
 605      global $USER, $SESSION;
 606  
 607      if (empty($USER->id) or isguest()) {
 608          return '';
 609      }
 610  
 611      if (has_capability('moodle/calendar:manageentries', get_context_instance(CONTEXT_SYSTEM)) && !empty($CFG->calendar_adminseesall)) {
 612          $courses = get_courses('all', 'c.shortname','c.id,c.shortname');
 613      } else {
 614          $courses = get_my_courses($USER->id, 'shortname');
 615      }
 616  
 617      unset($courses[SITEID]);
 618  
 619      $courseoptions[SITEID] = get_string('fulllistofcourses');
 620      foreach ($courses as $course) {
 621          $courseoptions[$course->id] = format_string($course->shortname);
 622      }
 623  
 624      if (is_numeric($SESSION->cal_courses_shown)) {
 625          $selected = $SESSION->cal_courses_shown;
 626      } else {
 627          $selected = '';
 628      }
 629  
 630      return popup_form(CALENDAR_URL.'set.php?var=setcourse&amp;'.$getvars.'&amp;id=',
 631                         $courseoptions, 'cal_course_flt', $selected, '', '', '', true);
 632  }
 633  
 634  ?>


Generated: Wed Jan 14 11:33:29 2009 Cross-referenced by PHPXref 0.7