本文整理汇总了PHP中usergetmidnight函数的典型用法代码示例。如果您正苦于以下问题:PHP usergetmidnight函数的具体用法?PHP usergetmidnight怎么用?PHP usergetmidnight使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了usergetmidnight函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: report_participation_get_time_options
/**
* Return time options, which should be shown for record filtering.
*
* @param int $minlog Time of first log record available.
* @return array time options.
*/
function report_participation_get_time_options($minlog)
{
$timeoptions = array();
$now = usergetmidnight(time());
// Days.
for ($i = 1; $i < 7; $i++) {
if (strtotime('-' . $i . ' days', $now) >= $minlog) {
$timeoptions[strtotime('-' . $i . ' days', $now)] = get_string('numdays', 'moodle', $i);
}
}
// Weeks.
for ($i = 1; $i < 10; $i++) {
if (strtotime('-' . $i . ' weeks', $now) >= $minlog) {
$timeoptions[strtotime('-' . $i . ' weeks', $now)] = get_string('numweeks', 'moodle', $i);
}
}
// Months.
for ($i = 2; $i < 12; $i++) {
if (strtotime('-' . $i . ' months', $now) >= $minlog) {
$timeoptions[strtotime('-' . $i . ' months', $now)] = get_string('nummonths', 'moodle', $i);
}
}
// Try a year.
if (strtotime('-1 year', $now) >= $minlog) {
$timeoptions[strtotime('-1 year', $now)] = get_string('lastyear');
}
return $timeoptions;
}
示例2: __construct
function __construct($script, $value, $params, $extra)
{
$this->key = 'date_referred';
$this->value = $this->get_value_or_default($value);
$this->params = $params;
$this->script = $script;
$this->now = usergetmidnight(time()) + 60 * 60 * 23 + 3599;
}
示例3: get_all_elements
function get_all_elements() {
$elements = array();
$components = cr_unserialize($this->config->components);
$config = (isset($components['timeline']['config'])) ? $components['timeline']['config'] : new stdclass();
if (isset($config->timemode)) {
$daysecs = 60 * 60 * 24;
if ($config->timemode == 'previous') {
$config->starttime = gmmktime() - $config->previousstart * $daysecs;
$config->endtime = gmmktime() - $config->previousend * $daysecs;
if (isset($config->forcemidnight)) {
$config->starttime = usergetmidnight($config->starttime);
$config->endtime = usergetmidnight($config->endtime) + ($daysecs - 1);
}
}
$filter_starttime = optional_param('filter_starttime', 0, PARAM_RAW);
$filter_endtime = optional_param('filter_endtime', 0, PARAM_RAW);
if ($filter_starttime and $filter_endtime) {
$filter_starttime = make_timestamp($filter_starttime['year'], $filter_starttime['month'], $filter_starttime['day']);
$filter_endtime = make_timestamp($filter_endtime['year'], $filter_endtime['month'], $filter_endtime['day']);
$config->starttime = usergetmidnight($filter_starttime);
$config->endtime = usergetmidnight($filter_endtime) + 24 * 60 * 60;
}
for ($i = $config->starttime; $i < $config->endtime; $i += $config->interval * $daysecs) {
$row = new stdclass();
$row->id = $i;
$row->starttime = $i;
$row->endtime = $row->starttime + ($config->interval * $daysecs - 1);
if ($row->endtime > $config->endtime)
$row->endtime = $config->endtime;
$this->timeline[$row->starttime] = $row;
$elements[] = $row->starttime;
}
if ($config->ordering == 'desc')
rsort($elements);
}
return $elements;
}
示例4: min
if (!isset($hiddenfields['lastaccess'])) {
// Get minimum lastaccess for this course and display a dropbox to filter by lastaccess going back this far.
// We need to make it diferently for normal courses and site course.
if (!$isfrontpage) {
$minlastaccess = $DB->get_field_sql('SELECT min(timeaccess)
FROM {user_lastaccess}
WHERE courseid = ?
AND timeaccess != 0', array($course->id));
$lastaccess0exists = $DB->record_exists('user_lastaccess', array('courseid' => $course->id, 'timeaccess' => 0));
} else {
$minlastaccess = $DB->get_field_sql('SELECT min(lastaccess)
FROM {user}
WHERE lastaccess != 0');
$lastaccess0exists = $DB->record_exists('user', array('lastaccess' => 0));
}
$now = usergetmidnight(time());
$timeaccess = array();
$baseurl->remove_params('accesssince');
// Makes sense for this to go first.
$timeoptions[0] = get_string('selectperiod');
// Days.
for ($i = 1; $i < 7; $i++) {
if (strtotime('-' . $i . ' days', $now) >= $minlastaccess) {
$timeoptions[strtotime('-' . $i . ' days', $now)] = get_string('numdays', 'moodle', $i);
}
}
// Weeks.
for ($i = 1; $i < 10; $i++) {
if (strtotime('-' . $i . ' weeks', $now) >= $minlastaccess) {
$timeoptions[strtotime('-' . $i . ' weeks', $now)] = get_string('numweeks', 'moodle', $i);
}
示例5: print_log_graph
if (empty($CFG->grade_profilereport) or !file_exists($CFG->dirroot . '/grade/report/' . $CFG->grade_profilereport . '/lib.php')) {
$CFG->grade_profilereport = 'user';
}
require_once $CFG->libdir . '/gradelib.php';
require_once $CFG->dirroot . '/grade/lib.php';
require_once $CFG->dirroot . '/grade/report/' . $CFG->grade_profilereport . '/lib.php';
$functionname = 'grade_report_' . $CFG->grade_profilereport . '_profilereport';
if (function_exists($functionname)) {
$functionname($course, $user);
}
break;
case "todaylogs":
echo '<div class="graph">';
print_log_graph($course, $user->id, "userday.png");
echo '</div>';
print_log($course, $user->id, usergetmidnight(time()), "l.time DESC", $page, $perpage, "user.php?id={$course->id}&user={$user->id}&mode={$mode}");
break;
case "alllogs":
echo '<div class="graph">';
print_log_graph($course, $user->id, "usercourse.png");
echo '</div>';
print_log($course, $user->id, 0, "l.time DESC", $page, $perpage, "user.php?id={$course->id}&user={$user->id}&mode={$mode}");
break;
case 'stats':
if (empty($CFG->enablestats)) {
error("Stats is not enabled.");
}
require_once $CFG->dirroot . '/lib/statslib.php';
$statsstatus = stats_check_uptodate($course->id);
if ($statsstatus !== NULL) {
notify($statsstatus);
示例6: instance_config_print
function instance_config_print()
{
global $CFG, $DB;
if (!isset($this->config)) {
// ... teacher has not yet configured the block, let's put some default values here to explain things
$this->config->title = get_string('blockname', 'block_glossary_random');
$this->config->refresh = 0;
$this->config->showconcept = 1;
$this->config->cache = get_string('notyetconfigured', 'block_glossary_random');
$this->config->addentry = get_string('addentry', 'block_glossary_random');
$this->config->viewglossary = get_string('viewglossary', 'block_glossary_random');
$this->config->invisible = get_string('invisible', 'block_glossary_random');
}
// select glossaries to put in dropdown box ...
$glossaries = $DB->get_records_menu('glossary', array('course' => $this->course->id), 'name', 'id,name');
//format menu texts to avoid html and to filter multilang values
if (!empty($glossaries)) {
foreach ($glossaries as $key => $value) {
$glossaries[$key] = strip_tags(format_string($value, true));
}
}
// and select quotetypes to put in dropdown box
$type[0] = get_string('random', 'block_glossary_random');
$type[1] = get_string('lastmodified', 'block_glossary_random');
$type[2] = get_string('nextone', 'block_glossary_random');
$this->config->nexttime = usergetmidnight(time()) + DAYSECS * $this->config->refresh;
// display the form
if (is_file($CFG->dirroot . '/blocks/' . $this->name() . '/config_instance.html')) {
print_simple_box_start('center', '', '', 5, 'blockconfigglobal');
include $CFG->dirroot . '/blocks/' . $this->name() . '/config_instance.html';
print_simple_box_end();
} else {
notice(get_string('blockconfigbad'), str_replace('blockaction=', 'dummy=', qualified_me()));
}
return true;
}
示例7: error_reporting
$graph->parameter['tick_length'] = 0;
$graph->parameter['shadow'] = 'none';
error_reporting(5);
// Ignore most warnings such as font problems etc.
$graph->draw_stack();
} else {
$site = get_site();
if ($course->id == $site->id) {
$courseselect = 0;
} else {
$courseselect = $course->id;
}
if ($date) {
$daystart = usergetmidnight($date);
} else {
$daystart = usergetmidnight(time());
}
$dayfinish = $daystart + 86400;
$hours = array();
for ($i = 0; $i <= 23; $i++) {
$logs[$i] = 0;
$hour = $daystart + $i * 3600;
$hours[$i] = $i;
}
$rawlogs = report_log_userday($user->id, $courseselect, $daystart, $logreader);
if (empty($rawlogs)) {
return;
}
foreach ($rawlogs as $rawlog) {
$logs[$rawlog->hour] = $rawlog->num;
}
示例8: forum_cron
//.........这里部分代码省略.........
}
mtrace('post ' . $post->id . ': ' . $post->subject);
}
// Mark processed posts as read.
if (get_user_preferences('forum_markasreadonnotification', 1, $userto->id) == 1) {
forum_tp_mark_posts_read($userto, $userto->markposts);
}
unset($userto);
}
}
if ($posts) {
foreach ($posts as $post) {
mtrace($mailcount[$post->id] . " users were sent post {$post->id}, '{$post->subject}'");
if ($errorcount[$post->id]) {
$DB->set_field('forum_posts', 'mailed', FORUM_MAILED_ERROR, array('id' => $post->id));
}
}
}
// release some memory
unset($subscribedusers);
unset($mailcount);
unset($errorcount);
cron_setup_user();
$sitetimezone = core_date::get_server_timezone();
// Now see if there are any digest mails waiting to be sent, and if we should send them
mtrace('Starting digest processing...');
core_php_time_limit::raise(300);
// terminate if not able to fetch all digests in 5 minutes
if (!isset($CFG->digestmailtimelast)) {
// To catch the first time
set_config('digestmailtimelast', 0);
}
$timenow = time();
$digesttime = usergetmidnight($timenow, $sitetimezone) + $CFG->digestmailtime * 3600;
// Delete any really old ones (normally there shouldn't be any)
$weekago = $timenow - 7 * 24 * 3600;
$DB->delete_records_select('forum_queue', "timemodified < ?", array($weekago));
mtrace('Cleaned old digest records');
if ($CFG->digestmailtimelast < $digesttime and $timenow > $digesttime) {
mtrace('Sending forum digests: ' . userdate($timenow, '', $sitetimezone));
$digestposts_rs = $DB->get_recordset_select('forum_queue', "timemodified < ?", array($digesttime));
if ($digestposts_rs->valid()) {
// We have work to do
$usermailcount = 0;
//caches - reuse the those filled before too
$discussionposts = array();
$userdiscussions = array();
foreach ($digestposts_rs as $digestpost) {
if (!isset($posts[$digestpost->postid])) {
if ($post = $DB->get_record('forum_posts', array('id' => $digestpost->postid))) {
$posts[$digestpost->postid] = $post;
} else {
continue;
}
}
$discussionid = $digestpost->discussionid;
if (!isset($discussions[$discussionid])) {
if ($discussion = $DB->get_record('forum_discussions', array('id' => $discussionid))) {
$discussions[$discussionid] = $discussion;
} else {
continue;
}
}
$forumid = $discussions[$discussionid]->forum;
if (!isset($forums[$forumid])) {
if ($forum = $DB->get_record('forum', array('id' => $forumid))) {
示例9: reset_course_userdata
/**
* This function will empty a course of user data.
* It will retain the activities and the structure of the course.
*
* @param object $data an object containing all the settings including courseid (without magic quotes)
* @return array status array of array component, item, error
*/
function reset_course_userdata($data)
{
global $CFG, $DB;
require_once $CFG->libdir . '/gradelib.php';
require_once $CFG->libdir . '/completionlib.php';
require_once $CFG->dirroot . '/group/lib.php';
$data->courseid = $data->id;
$context = context_course::instance($data->courseid);
$eventparams = array('context' => $context, 'courseid' => $data->id, 'other' => array('reset_options' => (array) $data));
$event = \core\event\course_reset_started::create($eventparams);
$event->trigger();
// Calculate the time shift of dates.
if (!empty($data->reset_start_date)) {
// Time part of course startdate should be zero.
$data->timeshift = $data->reset_start_date - usergetmidnight($data->reset_start_date_old);
} else {
$data->timeshift = 0;
}
// Result array: component, item, error.
$status = array();
// Start the resetting.
$componentstr = get_string('general');
// Move the course start time.
if (!empty($data->reset_start_date) and $data->timeshift) {
// Change course start data.
$DB->set_field('course', 'startdate', $data->reset_start_date, array('id' => $data->courseid));
// Update all course and group events - do not move activity events.
$updatesql = "UPDATE {event}\n SET timestart = timestart + ?\n WHERE courseid=? AND instance=0";
$DB->execute($updatesql, array($data->timeshift, $data->courseid));
// Update any date activity restrictions.
if ($CFG->enableavailability) {
\availability_date\condition::update_all_dates($data->courseid, $data->timeshift);
}
$status[] = array('component' => $componentstr, 'item' => get_string('datechanged'), 'error' => false);
}
if (!empty($data->reset_end_date)) {
// If the user set a end date value respect it.
$DB->set_field('course', 'enddate', $data->reset_end_date, array('id' => $data->courseid));
} else {
if ($data->timeshift > 0 && $data->reset_end_date_old) {
// If there is a time shift apply it to the end date as well.
$enddate = $data->reset_end_date_old + $data->timeshift;
$DB->set_field('course', 'enddate', $enddate, array('id' => $data->courseid));
}
}
if (!empty($data->reset_events)) {
$DB->delete_records('event', array('courseid' => $data->courseid));
$status[] = array('component' => $componentstr, 'item' => get_string('deleteevents', 'calendar'), 'error' => false);
}
if (!empty($data->reset_notes)) {
require_once $CFG->dirroot . '/notes/lib.php';
note_delete_all($data->courseid);
$status[] = array('component' => $componentstr, 'item' => get_string('deletenotes', 'notes'), 'error' => false);
}
if (!empty($data->delete_blog_associations)) {
require_once $CFG->dirroot . '/blog/lib.php';
blog_remove_associations_for_course($data->courseid);
$status[] = array('component' => $componentstr, 'item' => get_string('deleteblogassociations', 'blog'), 'error' => false);
}
if (!empty($data->reset_completion)) {
// Delete course and activity completion information.
$course = $DB->get_record('course', array('id' => $data->courseid));
$cc = new completion_info($course);
$cc->delete_all_completion_data();
$status[] = array('component' => $componentstr, 'item' => get_string('deletecompletiondata', 'completion'), 'error' => false);
}
if (!empty($data->reset_competency_ratings)) {
\core_competency\api::hook_course_reset_competency_ratings($data->courseid);
$status[] = array('component' => $componentstr, 'item' => get_string('deletecompetencyratings', 'core_competency'), 'error' => false);
}
$componentstr = get_string('roles');
if (!empty($data->reset_roles_overrides)) {
$children = $context->get_child_contexts();
foreach ($children as $child) {
$DB->delete_records('role_capabilities', array('contextid' => $child->id));
}
$DB->delete_records('role_capabilities', array('contextid' => $context->id));
// Force refresh for logged in users.
$context->mark_dirty();
$status[] = array('component' => $componentstr, 'item' => get_string('deletecourseoverrides', 'role'), 'error' => false);
}
if (!empty($data->reset_roles_local)) {
$children = $context->get_child_contexts();
foreach ($children as $child) {
role_unassign_all(array('contextid' => $child->id));
}
// Force refresh for logged in users.
$context->mark_dirty();
$status[] = array('component' => $componentstr, 'item' => get_string('deletelocalroles', 'role'), 'error' => false);
}
// First unenrol users - this cleans some of related user data too, such as forum subscriptions, tracking, etc.
$data->unenrolled = array();
if (!empty($data->unenrol_users)) {
//.........这里部分代码省略.........
示例10: get_today_sessions_for_copy
/**
* Returns today sessions suitable for copying attendance log
*
* Fetches data from {attendance_sessions}
*
* @return array of records or an empty array
*/
public function get_today_sessions_for_copy($sess) {
global $DB;
$count = sizeof($sess);
if ($count > 0) {
$start = usergetmidnight($sess->sessdate);
$sql = "SELECT *
FROM {local_attendance_sessions}
WHERE sessdate >= :start AND sessdate <= :end AND
(groupid = 0 OR groupid = :groupid) AND
lasttaken > 0 AND attendanceid = :aid";
$params = array(
'start' => $start,
'end' => $sess->sessdate,
'groupid' => $sess->groupid,
'aid' => $this->id);
return $DB->get_records_sql($sql, $params);
} else
return array();
}
示例11: send_expiry_notifications
/**
* Send expiry notifications.
*
* Plugin that wants to have expiry notification MUST implement following:
* - expirynotifyhour plugin setting,
* - configuration options in instance edit form (expirynotify, notifyall and expirythreshold),
* - notification strings (expirymessageenrollersubject, expirymessageenrollerbody,
* expirymessageenrolledsubject and expirymessageenrolledbody),
* - expiry_notification provider in db/messages.php,
* - upgrade code that sets default thresholds for existing courses (should be 1 day),
* - something that calls this method, such as cron.
*
* @param bool $verbose verbose CLI output
*/
public function send_expiry_notifications($verbose = false)
{
global $DB, $CFG;
// Unfortunately this may take a long time, it should not be interrupted,
// otherwise users get duplicate notification.
@set_time_limit(0);
raise_memory_limit(MEMORY_HUGE);
$name = $this->get_name();
$expirynotifylast = $this->get_config('expirynotifylast', 0);
$expirynotifyhour = $this->get_config('expirynotifyhour');
if (is_null($expirynotifyhour)) {
debugging("send_expiry_notifications() in {$name} enrolment plugin needs expirynotifyhour setting");
return;
}
$timenow = time();
$notifytime = usergetmidnight($timenow, $CFG->timezone) + $expirynotifyhour * 3600;
if ($expirynotifylast > $notifytime) {
if ($verbose) {
mtrace($name . ' enrolment expiry notifications were already sent today at ' . userdate($expirynotifylast, '', $CFG->timezone) . '.');
}
return;
} else {
if ($timenow < $notifytime) {
if ($verbose) {
mtrace($name . ' enrolment expiry notifications will be sent at ' . userdate($notifytime, '', $CFG->timezone) . '.');
}
return;
}
}
if ($verbose) {
mtrace('Processing ' . $name . ' enrolment expiration notifications...');
}
// Notify users responsible for enrolment once every day.
$sql = "SELECT ue.*, e.expirynotify, e.notifyall, e.expirythreshold, e.courseid, c.fullname\n FROM {user_enrolments} ue\n JOIN {enrol} e ON (e.id = ue.enrolid AND e.enrol = :name AND e.expirynotify > 0 AND e.status = :enabled)\n JOIN {course} c ON (c.id = e.courseid)\n JOIN {user} u ON (u.id = ue.userid AND u.deleted = 0 AND u.suspended = 0)\n WHERE ue.status = :active AND ue.timeend > 0 AND ue.timeend > :now1 AND ue.timeend < (e.expirythreshold + :now2)\n ORDER BY ue.enrolid ASC, u.lastname ASC, u.firstname ASC, u.id ASC";
$params = array('enabled' => ENROL_INSTANCE_ENABLED, 'active' => ENROL_USER_ACTIVE, 'now1' => $timenow, 'now2' => $timenow, 'name' => $name);
$rs = $DB->get_recordset_sql($sql, $params);
$lastenrollid = 0;
$users = array();
foreach ($rs as $ue) {
if ($lastenrollid and $lastenrollid != $ue->enrolid) {
$this->notify_expiry_enroller($lastenrollid, $users, $verbose);
$users = array();
}
$lastenrollid = $ue->enrolid;
$enroller = $this->get_enroller($ue->enrolid);
$context = context_course::instance($ue->courseid);
$user = $DB->get_record('user', array('id' => $ue->userid));
$users[] = array('fullname' => fullname($user, has_capability('moodle/site:viewfullnames', $context, $enroller)), 'timeend' => $ue->timeend);
if (!$ue->notifyall) {
continue;
}
if ($ue->timeend - $ue->expirythreshold + 86400 < $timenow) {
// Notify enrolled users only once at the start of the threshold.
if ($verbose) {
mtrace(" user {$ue->userid} was already notified that enrolment in course {$ue->courseid} expires on " . userdate($ue->timeend, '', $CFG->timezone));
}
continue;
}
$this->notify_expiry_enrolled($user, $ue, $verbose);
}
$rs->close();
if ($lastenrollid and $users) {
$this->notify_expiry_enroller($lastenrollid, $users, $verbose);
}
if ($verbose) {
mtrace('...notification processing finished.');
}
$this->set_config('expirynotifylast', $timenow);
}
示例12: construct_sessions_data_for_add
function construct_sessions_data_for_add($formdata)
{
global $CFG;
$duration = $formdata->durtime['hours'] * HOURSECS + $formdata->durtime['minutes'] * MINSECS;
$now = time();
$sessions = array();
if (isset($formdata->addmultiply)) {
$startdate = $formdata->sessiondate;
$starttime = $startdate - usergetmidnight($startdate);
$enddate = $formdata->sessionenddate + DAYSECS;
// because enddate in 0:0am
if ($enddate < $startdate) {
return NULL;
}
$days = (int) ceil(($enddate - $startdate) / DAYSECS);
// Getting first day of week
$sdate = $startdate;
$dinfo = usergetdate($sdate);
if ($CFG->calendar_startwday === '0') {
//week start from sunday
$startweek = $startdate - $dinfo['wday'] * DAYSECS;
//call new variable
} else {
$wday = $dinfo['wday'] === 0 ? 7 : $dinfo['wday'];
$startweek = $startdate - ($wday - 1) * DAYSECS;
}
$wdaydesc = array(0 => 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
while ($sdate < $enddate) {
if ($sdate < $startweek + WEEKSECS) {
$dinfo = usergetdate($sdate);
if (key_exists($wdaydesc[$dinfo['wday']], $formdata->sdays)) {
$sess->sessdate = usergetmidnight($sdate) + $starttime;
$sess->duration = $duration;
$sess->descriptionitemid = $formdata->sdescription['itemid'];
$sess->description = $formdata->sdescription['text'];
$sess->descriptionformat = $formdata->sdescription['format'];
$sess->timemodified = $now;
fill_groupid($formdata, $sessions, $sess);
}
$sdate += DAYSECS;
} else {
$startweek += WEEKSECS * $formdata->period;
$sdate = $startweek;
}
}
} else {
$sess->sessdate = $formdata->sessiondate;
$sess->duration = $duration;
$sess->descriptionitemid = $formdata->sdescription['itemid'];
$sess->description = $formdata->sdescription['text'];
$sess->descriptionformat = $formdata->sdescription['format'];
$sess->timemodified = $now;
fill_groupid($formdata, $sessions, $sess);
}
return $sessions;
}
示例13: report_ncccscensus_generate_report
/**
* Performs the report function.
*
* @param array $formdata the form data
* @param int $type the report type
* @param string $saveto File to save the pdf report to.
* @return bool False on failure
* @uses $CFG, $DB
*/
function report_ncccscensus_generate_report($formdata, $type = REPORT_NCCCSCENSUS_ACTION_VIEW, $saveto = false)
{
global $CFG, $DB;
require_once $CFG->libdir . '/moodlelib.php';
$reportname = 'report_ncccscensus';
$cid = $formdata->id;
// In case the form is hacked, set a default startdate to today at midnight.
if (empty($formdata->startdate)) {
$formdata->startdate = usergetmidnight(time(), get_user_timezone());
}
// In case the form is hacked, set a default enddate to today at midnight.
if (empty($formdata->enddate)) {
$formdata->enddate = $formdata->startdate;
}
// Advance enddate to tomorrow's midnight.
$formdata->enddate += DAYSECS - 1;
// This flag determines if we should display grouped users or not.
$nogroups = isset($formdata->disablegroups) ? true : false;
if ($nogroups) {
$group = false;
} else {
// If group specified, do some validation.
$group = isset($formdata->group) ? $formdata->group : false;
// In case the form is hacked, the group could be invalid.
if ($group === false || $group < 0) {
throw new report_ncccscensus_exception('cannotfindgroup');
}
if ($group > 0) {
// Validate the group ID.
if (!groups_group_exists($group)) {
throw new report_ncccscensus_exception('cannotfindgroup');
}
// Validate the group ID with respect to the course ID.
$groupdata = groups_get_course_data($cid);
$groupfound = false;
foreach ($groupdata->groups as $groupobject) {
if ($groupobject->id == $group) {
$groupfound = true;
break;
}
}
if (!$groupfound) {
throw new report_ncccscensus_exception('invalidgroupid');
}
// User could still hack form to view a group that they don't have the capability to see.
$context = context_course::instance($cid);
if (has_capability('moodle/site:accessallgroups', $context)) {
$userid = 0;
} else {
if (has_capability('moodle/course:managegroups', $context)) {
$userid = $USER->id;
} else {
$userid = false;
}
}
if ($userid === false) {
throw new report_ncccscensus_exception('invalidgroupid');
}
if ($userid != 0) {
$grouprecs = groups_get_all_groups($course->id, $userid, 0, 'g.id, g.name');
$groupnotfound = true;
foreach ($grouprecs as $grouprec) {
if ($grouprec->id == $group) {
$groupnotfound = false;
break;
}
}
if ($groupnotfound) {
throw new report_ncccscensus_exception('invalidgroupid');
}
}
}
}
$users = array();
if ($nogroups) {
$users = report_ncccscensus_get_users($cid, REPORT_NCCCSCENSUS_EXCLUDE_GROUP_MEMBERS);
} else {
if ($group > 0) {
$users = report_ncccscensus_get_users($cid, $group);
} else {
$users = report_ncccscensus_get_users($cid);
}
}
$results = report_ncccscensus_build_grades_array($cid, $users, $formdata->startdate, $formdata->enddate);
if (empty($results)) {
return false;
}
if ($type == REPORT_NCCCSCENSUS_ACTION_VIEW) {
$headers = array('student' => get_string('studentfullnamehtml', $reportname));
$showstudentid = report_ncccscensus_check_field_status('showstudentid', 'html');
} else {
//.........这里部分代码省略.........
示例14: make_timestamp
// If a day, month and year were passed then convert it to a timestamp. If these were passed
// then we can assume the day, month and year are passed as Gregorian, as no where in core
// should we be passing these values rather than the time. This is done for BC.
if (!empty($day) && !empty($mon) && !empty($year)) {
if (checkdate($mon, $day, $year)) {
$time = make_timestamp($year, $mon, $day);
}
}
if (empty($time)) {
$time = time();
}
if ($courseid != SITEID) {
$url->param('course', $courseid);
}
if ($view !== 'upcoming') {
$time = usergetmidnight($time);
$url->param('view', $view);
}
$url->param('time', $time);
$PAGE->set_url($url);
if ($courseid != SITEID && !empty($courseid)) {
$course = $DB->get_record('course', array('id' => $courseid));
$courses = array($course->id => $course);
$issite = false;
navigation_node::override_active_url(new moodle_url('/course/view.php', array('id' => $course->id)));
} else {
$course = get_site();
$courses = calendar_get_default_courses();
$issite = true;
}
require_course_login($course);
示例15: array
if ($courseid == SITEID) {
$PAGE->set_heading(fullname($user));
} else {
$PAGE->set_heading($course->fullname);
}
// Trigger a user logs viewed event.
$event = \report_log\event\user_report_viewed::create(array('context' => $coursecontext, 'relateduserid' => $userid, 'other' => array('mode' => $mode)));
$event->trigger();
echo $OUTPUT->header();
if ($courseid != SITEID) {
$userheading = array('user' => $user, 'usercontext' => $personalcontext);
echo $OUTPUT->context_header($userheading, 2);
}
// Time to filter records from.
if ($mode === 'today') {
$timefrom = usergetmidnight(time());
} else {
$timefrom = 0;
}
$output = $PAGE->get_renderer('report_log');
$reportlog = new report_log_renderable($logreader, $course, $user->id, 0, '', -1, -1, false, false, true, false, $PAGE->url, $timefrom, '', $page, $perpage, 'timecreated DESC');
// Setup table if log reader is enabled.
if (!empty($reportlog->selectedlogreader)) {
$reportlog->setup_table();
$reportlog->tablelog->is_downloadable(false);
}
echo $output->reader_selector($reportlog);
if ($mode === 'all') {
$reportlog->selecteddate = 0;
}
// Print the graphic chart accordingly to the mode (all, today).