Example #1
0
/**
 * Get event format time
 *
 * @param calendar_event $event event object
 * @param int $now current time in gmt
 * @param array $linkparams list of params for event link
 * @param bool $usecommonwords the words as formatted date/time.
 * @param int $showtime determine the show time GMT timestamp
 * @return string $eventtime link/string for event time
 */
function calendar_format_event_time($event, $now, $linkparams = null, $usecommonwords = true, $showtime = 0)
{
    $starttime = $event->timestart;
    $endtime = $event->timestart + $event->timeduration;
    if (empty($linkparams) || !is_array($linkparams)) {
        $linkparams = array();
    }
    $linkparams['view'] = 'day';
    // OK, now to get a meaningful display...
    // Check if there is a duration for this event.
    if ($event->timeduration) {
        // Get the midnight of the day the event will start.
        $usermidnightstart = usergetmidnight($starttime);
        // Get the midnight of the day the event will end.
        $usermidnightend = usergetmidnight($endtime);
        // Check if we will still be on the same day.
        if ($usermidnightstart == $usermidnightend) {
            // Check if we are running all day.
            if ($event->timeduration == DAYSECS) {
                $time = get_string('allday', 'calendar');
            } else {
                // Specify the time we will be running this from.
                $datestart = calendar_time_representation($starttime);
                $dateend = calendar_time_representation($endtime);
                $time = $datestart . ' <strong>&raquo;</strong> ' . $dateend;
            }
            // Set printable representation.
            if (!$showtime) {
                $day = calendar_day_representation($event->timestart, $now, $usecommonwords);
                $url = calendar_get_link_href(new moodle_url(CALENDAR_URL . 'view.php', $linkparams), 0, 0, 0, $endtime);
                $eventtime = html_writer::link($url, $day) . ', ' . $time;
            } else {
                $eventtime = $time;
            }
        } else {
            // It must spans two or more days.
            $daystart = calendar_day_representation($event->timestart, $now, $usecommonwords) . ', ';
            if ($showtime == $usermidnightstart) {
                $daystart = '';
            }
            $timestart = calendar_time_representation($event->timestart);
            $dayend = calendar_day_representation($event->timestart + $event->timeduration, $now, $usecommonwords) . ', ';
            if ($showtime == $usermidnightend) {
                $dayend = '';
            }
            $timeend = calendar_time_representation($event->timestart + $event->timeduration);
            // Set printable representation.
            if ($now >= $usermidnightstart && $now < $usermidnightstart + DAYSECS) {
                $url = calendar_get_link_href(new moodle_url(CALENDAR_URL . 'view.php', $linkparams), 0, 0, 0, $endtime);
                $eventtime = $timestart . ' <strong>&raquo;</strong> ' . html_writer::link($url, $dayend) . $timeend;
            } else {
                $url = calendar_get_link_href(new moodle_url(CALENDAR_URL . 'view.php', $linkparams), 0, 0, 0, $endtime);
                $eventtime = html_writer::link($url, $daystart) . $timestart . ' <strong>&raquo;</strong> ';
                $url = calendar_get_link_href(new moodle_url(CALENDAR_URL . 'view.php', $linkparams), 0, 0, 0, $starttime);
                $eventtime .= html_writer::link($url, $dayend) . $timeend;
            }
        }
    } else {
        // There is no time duration.
        $time = calendar_time_representation($event->timestart);
        // Set printable representation.
        if (!$showtime) {
            $day = calendar_day_representation($event->timestart, $now, $usecommonwords);
            $url = calendar_get_link_href(new moodle_url(CALENDAR_URL . 'view.php', $linkparams), 0, 0, 0, $starttime);
            $eventtime = html_writer::link($url, $day) . ', ' . trim($time);
        } else {
            $eventtime = $time;
        }
    }
    // Check if It has expired.
    if ($event->timestart + $event->timeduration < $now) {
        $eventtime = '<span class="dimmed_text">' . str_replace(' href=', ' class="dimmed" href=', $eventtime) . '</span>';
    }
    return $eventtime;
}
Example #2
0
function calendar_format_event_time($event, $now, $morehref, $usecommonwords = true, $showtime = 0)
{
    $startdate = usergetdate($event->timestart);
    $enddate = usergetdate($event->timestart + $event->timeduration);
    $usermidnightstart = usergetmidnight($event->timestart);
    if ($event->timeduration) {
        // To avoid doing the math if one IF is enough :)
        $usermidnightend = usergetmidnight($event->timestart + $event->timeduration);
    } else {
        $usermidnightend = $usermidnightstart;
    }
    // OK, now to get a meaningful display...
    // First of all we have to construct a human-readable date/time representation
    if ($event->timeduration) {
        // It has a duration
        if ($usermidnightstart == $usermidnightend || $event->timestart == $usermidnightstart && ($event->timeduration == 86400 || $event->timeduration == 86399) || $event->timestart + $event->timeduration <= $usermidnightstart + 86400) {
            // But it's all on the same day
            $timestart = calendar_time_representation($event->timestart);
            $timeend = calendar_time_representation($event->timestart + $event->timeduration);
            $time = $timestart . ' <strong>&raquo;</strong> ' . $timeend;
            if ($event->timestart == $usermidnightstart && ($event->timeduration == 86400 || $event->timeduration == 86399)) {
                $time = get_string('allday', 'calendar');
            }
            // Set printable representation
            if (!$showtime) {
                $day = calendar_day_representation($event->timestart, $now, $usecommonwords);
                $eventtime = calendar_get_link_tag($day, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $enddate['mday'], $enddate['mon'], $enddate['year']) . ', ' . $time;
            } else {
                $eventtime = $time;
            }
        } else {
            // It spans two or more days
            $daystart = calendar_day_representation($event->timestart, $now, $usecommonwords) . ', ';
            if ($showtime == $usermidnightstart) {
                $daystart = '';
            }
            $timestart = calendar_time_representation($event->timestart);
            $dayend = calendar_day_representation($event->timestart + $event->timeduration, $now, $usecommonwords) . ', ';
            if ($showtime == $usermidnightend) {
                $dayend = '';
            }
            $timeend = calendar_time_representation($event->timestart + $event->timeduration);
            // Set printable representation
            if ($now >= $usermidnightstart && $now < $usermidnightstart + 86400) {
                $eventtime = $timestart . ' <strong>&raquo;</strong> ' . calendar_get_link_tag($dayend, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $enddate['mday'], $enddate['mon'], $enddate['year']) . $timeend;
            } else {
                $eventtime = calendar_get_link_tag($daystart, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $startdate['mday'], $startdate['mon'], $startdate['year']) . $timestart . ' <strong>&raquo;</strong> ' . calendar_get_link_tag($dayend, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $enddate['mday'], $enddate['mon'], $enddate['year']) . $timeend;
            }
        }
    } else {
        $time = ' ';
        // Set printable representation
        if (!$showtime) {
            $day = calendar_day_representation($event->timestart, $now, $usecommonwords);
            $eventtime = calendar_get_link_tag($day, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $startdate['mday'], $startdate['mon'], $startdate['year']) . trim($time);
        } else {
            $eventtime = $time;
        }
    }
    if ($event->timestart + $event->timeduration < $now) {
        // It has expired
        $eventtime = '<span class="dimmed_text">' . str_replace(' href=', ' class="dimmed" href=', $eventtime) . '</span>';
    }
    return $eventtime;
}
 /**
  * Return friendly text date (e.g. "Today", "Tomorrow") in a <time> tag
  * @return string
  */
 public function friendly_datetime($time)
 {
     $timetext = \calendar_day_representation($time);
     $timetext .= ', ' . \calendar_time_representation($time);
     $datetime = date(DateTime::W3C, $time);
     return html_writer::tag('time', $timetext, array('datetime' => $datetime));
 }
/**
 * Runs any processes that must be run
 * after a bigbluebuttonbn insert/update
 *
 * @global object
 * @param object $bigbluebuttonbn BigBlueButtonBN form data
 * @return void
 **/
function bigbluebuttonbn_process_post_save(&$bigbluebuttonbn)
{
    global $DB, $CFG, $USER;
    // Now that an id was assigned, generate and set the meetingid property based on
    // [Moodle Instance + Activity ID + BBB Secret] (but only for new activities)
    if (isset($bigbluebuttonbn->add) && !empty($bigbluebuttonbn->add)) {
        $bigbluebuttonbn_meetingid = sha1($CFG->wwwroot . $bigbluebuttonbn->id . bigbluebuttonbn_get_cfg_shared_secret());
        $DB->set_field('bigbluebuttonbn', 'meetingid', $bigbluebuttonbn_meetingid, array('id' => $bigbluebuttonbn->id));
        $action = get_string('mod_form_field_notification_msg_created', 'bigbluebuttonbn');
    } else {
        $action = get_string('mod_form_field_notification_msg_modified', 'bigbluebuttonbn');
    }
    // Add evento to the calendar when if openingtime is set
    if (isset($bigbluebuttonbn->openingtime) && $bigbluebuttonbn->openingtime) {
        $event = new stdClass();
        $event->name = $bigbluebuttonbn->name;
        $event->courseid = $bigbluebuttonbn->course;
        $event->groupid = 0;
        $event->userid = 0;
        $event->modulename = 'bigbluebuttonbn';
        $event->instance = $bigbluebuttonbn->id;
        $event->timestart = $bigbluebuttonbn->openingtime;
        if ($bigbluebuttonbn->closingtime) {
            $event->durationtime = $bigbluebuttonbn->closingtime - $bigbluebuttonbn->openingtime;
        } else {
            $event->durationtime = 0;
        }
        if ($event->id = $DB->get_field('event', 'id', array('modulename' => 'bigbluebuttonbn', 'instance' => $bigbluebuttonbn->id))) {
            $calendarevent = calendar_event::load($event->id);
            $calendarevent->update($event);
        } else {
            calendar_event::create($event);
        }
    } else {
        $DB->delete_records('event', array('modulename' => 'bigbluebuttonbn', 'instance' => $bigbluebuttonbn->id));
    }
    if (isset($bigbluebuttonbn->notification) && $bigbluebuttonbn->notification) {
        // Prepare message
        $msg = new stdClass();
        /// Build the message_body
        $msg->action = $action;
        $msg->activity_type = "";
        $msg->activity_title = $bigbluebuttonbn->name;
        /// Add the meeting details to the message_body
        $msg->action = ucfirst($action);
        $msg->activity_description = "";
        if (!empty($bigbluebuttonbn->intro)) {
            $msg->activity_description = trim($bigbluebuttonbn->intro);
        }
        $msg->activity_openingtime = "";
        if ($bigbluebuttonbn->openingtime) {
            $date = new stdClass();
            $date->day = calendar_day_representation($bigbluebuttonbn->openingtime);
            $date->time = calendar_time_representation($bigbluebuttonbn->openingtime);
            $msg->activity_openingtime = get_string('email_date', 'bigbluebuttonbn', $date);
        }
        $msg->activity_closingtime = "";
        if ($bigbluebuttonbn->closingtime) {
            $date = new stdClass();
            $date->day = calendar_day_representation($bigbluebuttonbn->closingtime);
            $date->time = calendar_time_representation($bigbluebuttonbn->closingtime);
            $msg->activity_closingtime = get_string('email_date', 'bigbluebuttonbn', $date);
        }
        $msg->activity_owner = fullname($USER);
        $message_text = get_string('email_body_notification', 'bigbluebuttonbn', $msg);
        // Send notification to all users enrolled
        bigbluebuttonbn_send_notification($USER, $bigbluebuttonbn, $message_text);
    }
}
Example #5
0
/**
 * Get event format time
 *
 * @param calendar_event $event event object
 * @param int $now current time in gmt
 * @param array $linkparams list of params for event link
 * @param bool $usecommonwords the words as formatted date/time.
 * @param int $showtime determine the show time GMT timestamp
 * @return string $eventtime link/string for event time
 */
function calendar_format_event_time($event, $now, $linkparams = null, $usecommonwords = true, $showtime=0) {
    $startdate = usergetdate($event->timestart);
    $enddate = usergetdate($event->timestart + $event->timeduration);
    $usermidnightstart = usergetmidnight($event->timestart);

    if($event->timeduration) {
        // To avoid doing the math if one IF is enough :)
        $usermidnightend = usergetmidnight($event->timestart + $event->timeduration);
    }
    else {
        $usermidnightend = $usermidnightstart;
    }

    if (empty($linkparams) || !is_array($linkparams)) {
        $linkparams = array();
    }
    $linkparams['view'] = 'day';

    // OK, now to get a meaningful display...
    // First of all we have to construct a human-readable date/time representation

    if($event->timeduration) {
        // It has a duration
        if($usermidnightstart == $usermidnightend ||
           ($event->timestart == $usermidnightstart) && ($event->timeduration == 86400 || $event->timeduration == 86399) ||
           ($event->timestart + $event->timeduration <= $usermidnightstart + 86400)) {
            // But it's all on the same day
            $timestart = calendar_time_representation($event->timestart);
            $timeend = calendar_time_representation($event->timestart + $event->timeduration);
            $time = $timestart.' <strong>&raquo;</strong> '.$timeend;

            if ($event->timestart == $usermidnightstart && ($event->timeduration == 86400 || $event->timeduration == 86399)) {
                $time = get_string('allday', 'calendar');
            }

            // Set printable representation
            if (!$showtime) {
                $day = calendar_day_representation($event->timestart, $now, $usecommonwords);
                $url = calendar_get_link_href(new moodle_url(CALENDAR_URL.'view.php', $linkparams), $enddate['mday'], $enddate['mon'], $enddate['year']);
                $eventtime = html_writer::link($url, $day).', '.$time;
            } else {
                $eventtime = $time;
            }
        } else {
            // It spans two or more days
            $daystart = calendar_day_representation($event->timestart, $now, $usecommonwords).', ';
            if ($showtime == $usermidnightstart) {
                $daystart = '';
            }
            $timestart = calendar_time_representation($event->timestart);
            $dayend = calendar_day_representation($event->timestart + $event->timeduration, $now, $usecommonwords).', ';
            if ($showtime == $usermidnightend) {
                $dayend = '';
            }
            $timeend = calendar_time_representation($event->timestart + $event->timeduration);

            // Set printable representation
            if ($now >= $usermidnightstart && $now < ($usermidnightstart + 86400)) {
                $url = calendar_get_link_href(new moodle_url(CALENDAR_URL.'view.php', $linkparams), $enddate['mday'], $enddate['mon'], $enddate['year']);
                $eventtime = $timestart.' <strong>&raquo;</strong> '.html_writer::link($url, $dayend).$timeend;
            } else {
                $url = calendar_get_link_href(new moodle_url(CALENDAR_URL.'view.php', $linkparams), $enddate['mday'], $enddate['mon'], $enddate['year']);
                $eventtime  = html_writer::link($url, $daystart).$timestart.' <strong>&raquo;</strong> ';

                $url = calendar_get_link_href(new moodle_url(CALENDAR_URL.'view.php', $linkparams), $startdate['mday'], $startdate['mon'], $startdate['year']);
                $eventtime .= html_writer::link($url, $dayend).$timeend;
            }
        }
    } else {
        $time = calendar_time_representation($event->timestart);

        // Set printable representation
        if (!$showtime) {
            $day = calendar_day_representation($event->timestart, $now, $usecommonwords);
            $url = calendar_get_link_href(new moodle_url(CALENDAR_URL.'view.php', $linkparams), $startdate['mday'], $startdate['mon'], $startdate['year']);
            $eventtime = html_writer::link($url, $day).', '.trim($time);
        } else {
            $eventtime = $time;
        }
    }

    if($event->timestart + $event->timeduration < $now) {
        // It has expired
        $eventtime = '<span class="dimmed_text">'.str_replace(' href=', ' class="dimmed" href=', $eventtime).'</span>';
    }

    return $eventtime;
}
Example #6
0
function calendar_format_event_time($event, $now, $morehref, $usecommonwords = true)
{
    $startdate = usergetdate($event->timestart);
    $enddate = usergetdate($event->timestart + $event->timeduration);
    $usermidnightstart = usergetmidnight($event->timestart);
    if ($event->timeduration) {
        // To avoid doing the math if one IF is enough :)
        $usermidnightend = usergetmidnight($event->timestart + $event->timeduration);
    } else {
        $usermidnightend = $usermidnightstart;
    }
    // OK, now to get a meaningful display...
    // First of all we have to construct a human-readable date/time representation
    if ($event->timestart + $event->timeduration < $now) {
        // It has expired, so we don't care about duration
        $day = calendar_day_representation($event->timestart + $event->timeduration, $now, $usecommonwords);
        $time = calendar_time_representation($event->timestart + $event->timeduration);
        // This var always has the printable time representation
        $eventtime = '<span class="dimmed_text"><a class="dimmed" href="' . calendar_get_link_href(CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $enddate['mday'], $enddate['mon'], $enddate['year']) . '">' . $day . '</a> (' . $time . ')</span>';
    } else {
        if ($event->timeduration) {
            // It has a duration
            if ($usermidnightstart == $usermidnightend) {
                // But it's all on the same day
                $day = calendar_day_representation($event->timestart, $now, $usecommonwords);
                $timestart = calendar_time_representation($event->timestart);
                $timeend = calendar_time_representation($event->timestart + $event->timeduration);
                // Set printable representation
                $eventtime = calendar_get_link_tag($day, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $enddate['mday'], $enddate['mon'], $enddate['year']) . ' (' . $timestart . ' <strong>&raquo;</strong> ' . $timeend . ')';
            } else {
                // It spans two or more days
                $daystart = calendar_day_representation($event->timestart, $now, $usecommonwords);
                $dayend = calendar_day_representation($event->timestart + $event->timeduration, $now, $usecommonwords);
                $timestart = calendar_time_representation($event->timestart);
                $timeend = calendar_time_representation($event->timestart + $event->timeduration);
                // Set printable representation
                $eventtime = calendar_get_link_tag($daystart, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $startdate['mday'], $startdate['mon'], $startdate['year']) . ' (' . $timestart . ') <strong>&raquo;</strong> ' . calendar_get_link_tag($dayend, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $enddate['mday'], $enddate['mon'], $enddate['year']) . ' (' . $timeend . ')';
            }
        } else {
            // It's an "instantaneous" event
            $day = calendar_day_representation($event->timestart, $now, $usecommonwords);
            $time = calendar_time_representation($event->timestart);
            // Set printable representation
            $eventtime = calendar_get_link_tag($day, CALENDAR_URL . 'view.php?view=day' . $morehref . '&amp;', $startdate['mday'], $startdate['mon'], $startdate['year']) . ' (' . $time . ')';
        }
    }
    return $eventtime;
}
 /**
  * Meeting times.
  *
  * @param $times
  * @return string
  */
 public function meeting_times($times)
 {
     $startday = calendar_day_representation($times->start);
     $endday = calendar_day_representation($times->end);
     $endtime = calendar_time_representation($times->end);
     $startyear = userdate($times->start, '%y');
     $endyear = userdate($times->end, '%y');
     $startmonth = userdate($times->start, '%m');
     $endmonth = userdate($times->end, '%m');
     $openended = date('Y-m-d', $times->end) === '3000-01-01';
     $startiscurrentyear = $startyear === userdate(time(), '%y');
     if ($startiscurrentyear && ($openended || $startyear === $endyear)) {
         $datesstr = $this->datetime($times->start);
     } else {
         $visualstart = userdate($times->start, get_string('strftimedatetime', 'langconfig'));
         $datesstr = $this->datetime($times->start, $visualstart);
     }
     if ($startday === $endday && $startmonth === $endmonth && $startyear === $endyear) {
         $datesstr .= ' - ' . $this->datetime($times->end, $endtime);
     } else {
         if ($openended) {
             $datesstr .= ' (' . get_string('openended', 'mod_collaborate') . ')';
         } else {
             if ($startyear === $endyear) {
                 $datesstr .= ' - ' . $this->datetime($times->end);
             } else {
                 $visualend = userdate($times->end, get_string('strftimedatetime', 'langconfig'));
                 $datesstr .= ' - ' . $this->datetime($times->end, $visualend);
             }
         }
     }
     return $datesstr;
 }