本文整理汇总了PHP中setup_and_print_groups函数的典型用法代码示例。如果您正苦于以下问题:PHP setup_and_print_groups函数的具体用法?PHP setup_and_print_groups怎么用?PHP setup_and_print_groups使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了setup_and_print_groups函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get_string
$strsubscribenone = get_string("subscribenone", "forum");
$strsubscribers = get_string("subscribers", "forum");
$strforums = get_string("forums", "forum");
$navigation = "<a href=\"index.php?id={$course->id}\">{$strforums}</a> ->\n <a href=\"view.php?f={$forum->id}\">" . format_string($forum->name, true) . "</a> -> {$strsubscribers}";
if (has_capability('mod/forum:managesubscriptions', $context)) {
print_header_simple("{$strsubscribers}", "", "{$navigation}", "", "", true, forum_update_subscriptions_button($course->id, $id));
if ($edit != -1) {
$USER->subscriptionsediting = $edit;
}
} else {
print_header_simple("{$strsubscribers}", "", "{$navigation}", "", "", true, '');
unset($USER->subscriptionsediting);
}
/// Check to see if groups are being used in this forum
$groupmode = groupmode($course, $cm);
$currentgroup = setup_and_print_groups($course, $groupmode, "subscribers.php?id={$forum->id}");
if (empty($USER->subscriptionsediting)) {
/// Display an overview of subscribers
if (!($users = forum_subscribed_users($course, $forum, $currentgroup))) {
print_heading(get_string("nosubscribers", "forum"));
} else {
print_heading(get_string("subscribersto", "forum", "'" . format_string($forum->name) . "'"));
echo '<table align="center" cellpadding="5" cellspacing="5">';
foreach ($users as $user) {
echo '<tr><td>';
print_user_picture($user->id, $course->id, $user->picture);
echo '</td><td>';
echo fullname($user);
echo '</td><td>';
echo $user->email;
echo '</td></tr>';
示例2: foreach
// make some easy ways to access the entries.
if ($eee = get_records("journal_entries", "journal", $journal->id)) {
foreach ($eee as $ee) {
$entrybyuser[$ee->userid] = $ee;
$entrybyentry[$ee->id] = $ee;
}
} else {
$entrybyuser = array();
$entrybyentry = array();
}
$strentries = get_string("entries", "journal");
$strjournals = get_string("modulenameplural", "journal");
print_header_simple("{$strjournals}", "", "<a href=\"index.php?id={$course->id}\">{$strjournals}</a> ->\n <a href=\"view.php?id={$cm->id}\">" . format_string($journal->name, true) . "</a> -> {$strentries}", "", "", true);
/// Check to see if groups are being used in this journal
$groupmode = groupmode($course, $cm);
$currentgroup = setup_and_print_groups($course, $groupmode, "report.php?id={$cm->id}");
/// Process incoming data if there is any
if ($data = data_submitted()) {
$feedback = array();
$data = (array) $data;
// Peel out all the data from variable names.
foreach ($data as $key => $val) {
if ($key != "id") {
$type = substr($key, 0, 1);
$num = substr($key, 1);
$feedback[$num][$type] = $val;
}
}
$timenow = time();
$count = 0;
foreach ($feedback as $num => $vals) {
示例3: hotpot_get_report_users
function hotpot_get_report_users($course, $formdata)
{
$users = array();
/// Check to see if groups are being used in this module
$groupmode = groupmode($course, $cm);
//TODO: there is no $cm defined!
$currentgroup = setup_and_print_groups($course, $groupmode, "report.php?id={$cm->id}&mode=simple");
$sort = "u.lastname ASC";
switch ($formdata['reportusers']) {
case 'students':
if ($currentgroup) {
$users = get_group_students($currentgroup, $sort);
} else {
$users = get_course_students($course->id, $sort);
}
break;
case 'all':
if ($currentgroup) {
$users = get_group_users($currentgroup, $sort);
} else {
$users = get_course_users($course->id, $sort);
}
break;
}
return $users;
}
示例4: optional_param
}
$answer = optional_param('answer', '', PARAM_INT);
if (empty($answer)) {
redirect("view.php?id={$cm->id}", get_string('mustchooseone', 'choice'));
} else {
choice_user_submit_response($answer, $choice, $USER->id, $course->id, $cm);
}
redirect("view.php?id={$cm->id}");
exit;
}
/// Display the choice and possibly results
print_header_simple(format_string($choice->name), "", "<a href=\"index.php?id={$course->id}\">{$strchoices}</a> -> " . format_string($choice->name), "", "", true, update_module_button($cm->id, $course->id, $strchoice), navmenu($course, $cm));
add_to_log($course->id, "choice", "view", "view.php?id={$cm->id}", $choice->id, $cm->id);
/// Check to see if groups are being used in this choice
$groupmode = groupmode($course, $cm);
setup_and_print_groups($course, $groupmode, 'view.php?id=' . $id);
if (has_capability('mod/choice:readresponses', $context)) {
choice_show_reportlink($choice, $course->id, $cm->id, $groupmode);
}
echo '<div class="clearer"></div>';
if ($choice->text) {
print_box(format_text($choice->text, $choice->format), 'generalbox', 'intro');
}
$current = false;
// Initialise for later
//if user has already made a selection, and they are not allowed to update it, show their selected answer.
if (!empty($USER->id) && ($current = get_record('choice_answers', 'choiceid', $choice->id, 'userid', $USER->id)) && empty($choice->allowupdate)) {
print_simple_box(get_string("yourselection", "choice", userdate($choice->timeopen)) . ": " . format_string(choice_get_option_text($choice, $current->optionid)), "center");
}
/// Print the form
if ($choice->timeopen > time()) {
示例5: blocks_print_group
}
/// Print the page header
$PAGE->print_header($course->shortname . ': %fullname%', '', $meta);
/// If we have blocks, then print the left side here
if (!empty($CFG->showblocksonmodpages)) {
echo '<table id="layout-table"><tr>';
if (blocks_have_content($pageblocks, BLOCK_POS_LEFT) || $PAGE->user_is_editing()) {
echo '<td style="width: ' . $blocks_preferred_width . 'px;" id="left-column">';
blocks_print_group($PAGE, $pageblocks, BLOCK_POS_LEFT);
echo '</td>';
}
echo '<td id="middle-column">';
}
/// Check to see if groups are being used here
$groupmode = groupmode($course, $cm);
$currentgroup = setup_and_print_groups($course, $groupmode, 'view.php?d=' . $data->id . '&search=' . s($search) . '&sort=' . s($sort) . '&order=' . s($order) . '&');
print_heading(format_string($data->name));
// Do we need to show a link to the RSS feed for the records?
if (!empty($CFG->enablerssfeeds) && !empty($CFG->data_enablerssfeeds) && $data->rssarticles > 0) {
echo '<div style="float:right;">';
rss_print_link($course->id, $USER->id, 'data', $data->id, get_string('rsstype'));
echo '</div>';
echo '<div style="clear:both;"></div>';
}
if ($data->intro and empty($page) and empty($record) and $mode != 'single') {
print_box(format_text($data->intro), 'generalbox', 'intro');
}
/// Delete any requested records
if ($delete && confirm_sesskey() && (has_capability('mod/data:manageentries', $context) or data_isowner($delete))) {
if ($confirm = optional_param('confirm', 0, PARAM_INT)) {
if ($deleterecord = get_record('data_records', 'id', $delete)) {
示例6: elseif
} elseif (!is_callable('build_navigation')) {
$navigation = array(array('title' => $course->shortname, 'url' => $CFG->wwwroot . "/course/view.php?id={$course->id}", 'type' => 'course'), array('title' => $strturnitintools, 'url' => $CFG->wwwroot . "/mod/turnitintool/index.php?id={$course->id}", 'type' => 'activity'), array('title' => format_string($turnitintool->name), 'url' => '', 'type' => 'activityinstance'));
} else {
$navigation = build_navigation('', $cm);
}
// Do not use navbar in 2.7+
if ((property_exists($CFG, 'branch') and $CFG->branch < 27) || !property_exists($CFG, 'branch')) {
turnitintool_header($cm, $course, $_SERVER["REQUEST_URI"], $turnitintool->name, $SITE->fullname, $navigation, "", "", true, update_module_button($cm->id, $course->id, $strturnitintool), navmenu($course));
} else {
turnitintool_header($cm, $course, $_SERVER["REQUEST_URI"], $turnitintool->name, $SITE->fullname, $navigation, "", "", true, update_module_button($cm->id, $course->id, $strturnitintool));
}
/// Check to see if groups are being used and abstract for 1.8 if neccessary
if (!is_callable('groups_get_activity_group')) {
$changegroup = optional_param('group', -1, PARAM_INT);
$cm->currentgroup = get_and_set_current_group($course, $cm->groupmode, $changegroup);
setup_and_print_groups($course, $cm->groupmode, $redirectlink);
} else {
$groupmode = groups_get_activity_groupmode($cm);
if ($groupmode) {
groups_get_activity_group($cm, true);
groups_print_activity_menu($cm, $redirectlink);
}
}
// Print the main part of the page
echo '<div id="turnitintool_style">';
if (!is_null($param_do)) {
$do = $param_do;
} else {
$do = 'intro';
}
// $do=ACTION
示例7: forum_search_form
$buttontext = forum_search_form($course, $search);
}
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
/// Print header.
$navigation = "<a href=\"index.php?id={$course->id}\">{$strforums}</a> ->";
print_header_simple(format_string($forum->name), "", "{$navigation} " . format_string($forum->name), "", "", true, $buttontext, navmenu($course, $cm));
/// Some capability checks.
if (empty($cm->visible) and !has_capability('moodle/course:viewhiddenactivities', $context)) {
notice(get_string('activityiscurrentlyhidden'));
}
if (!has_capability('mod/forum:viewdiscussion', $context)) {
notice(get_string('noviewdiscussionspermission', 'forum'));
}
/// find out current groups mode
$groupmode = groupmode($course, $cm);
$currentgroup = setup_and_print_groups($course, $groupmode, 'view.php?id=' . $cm->id);
/// Okay, we can show the discussions. Log the forum view.
if ($cm->id) {
add_to_log($course->id, "forum", "view forum", "view.php?id={$cm->id}", "{$forum->id}", $cm->id);
} else {
add_to_log($course->id, "forum", "view forum", "view.php?f={$forum->id}", "{$forum->id}");
}
/// Print settings and things across the top
// If it's a simple single discussion forum, we need to print the display
// mode control.
if ($forum->type == 'single') {
if (!($discussion = get_record("forum_discussions", "forum", $forum->id))) {
if ($discussions = get_records("forum_discussions", "forum", $forum->id, "timemodified ASC")) {
$discussion = array_pop($discussions);
}
}
示例8: array_flip
$hiddenfields = array_flip(explode(',', $CFG->hiddenuserfields));
}
/// Print settings and things in a table across the top
echo '<table class="controls" cellspacing="0"><tr>';
/// Print my course menus
if ($mycourses = get_my_courses($USER->id)) {
echo '<td class="left">';
$courselist = array();
foreach ($mycourses as $mycourse) {
$courselist[$mycourse->id] = format_string($mycourse->shortname);
}
popup_form($CFG->wwwroot . '/user/index.php?roleid=' . $roleid . '&sifirst=&silast=&id=', $courselist, 'courseform', $course->id, '', '', '', false, 'self', get_string('mycourses'));
echo '</td>';
}
echo '<td class="left">';
setup_and_print_groups($course, $groupmode, $baseurl);
echo '</td>';
// get minimum lastaccess for this course and display a dropbox to filter by lastaccess going back this far.
// this might not work anymore because you always going to get yourself as the most recent entry? added $USER!=$user ch
$minlastaccess = get_field_sql('SELECT min(timeaccess) FROM ' . $CFG->prefix . 'user_lastaccess WHERE courseid = ' . $course->id . ' AND timeaccess != 0 AND userid!=' . $USER->id);
$lastaccess0exists = record_exists('user_lastaccess', 'courseid', $course->id, 'timeaccess', 0);
$now = usergetmidnight(time());
$timeaccess = array();
// 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);
}
}
示例9: error
error("Course module is incorrect");
}
$strchoice = get_string("modulename", "choice");
$strchoices = get_string("modulenameplural", "choice");
$strresponses = get_string("responses", "choice");
add_to_log($course->id, "choice", "report", "report.php?id={$cm->id}", "{$choice->id}", $cm->id);
if ($action == 'delete' && has_capability('mod/choice:deleteresponses', $context)) {
choice_delete_responses($attemptids);
//delete responses.
redirect("report.php?id={$cm->id}");
}
if (!$download) {
print_header_simple(format_string($choice->name) . ": {$strresponses}", "", "<a href=\"index.php?id={$course->id}\">{$strchoices}</a> ->\n <a href=\"view.php?id={$cm->id}\">" . format_string($choice->name, true) . "</a> -> {$strresponses}", "", '', true, update_module_button($cm->id, $course->id, $strchoice), navmenu($course, $cm));
/// Check to see if groups are being used in this choice
$groupmode = groupmode($course, $cm);
setup_and_print_groups($course, $groupmode, 'report.php?id=' . $id);
} else {
$groupmode = groupmode($course, $cm);
get_and_set_current_group($course, $groupmode);
}
$users = get_users_by_capability($context, 'mod/choice:choose', 'u.id, u.picture, u.firstname, u.lastname, u.idnumber', 'u.firstname ASC');
if (!$users) {
print_heading(get_string("nousersyet"));
}
if ($allresponses = get_records("choice_answers", "choiceid", $choice->id)) {
foreach ($allresponses as $aa) {
$answers[$aa->userid] = $aa;
}
} else {
$answers = array();
}
示例10: get_string
$strallquestions = get_string("allquestions", "survey");
$strselectedquestions = get_string("selectedquestions", "survey");
$strseemoredetail = get_string("seemoredetail", "survey");
$strnotes = get_string("notes", "survey");
add_to_log($course->id, "survey", "view report", "report.php?id={$cm->id}", "{$survey->id}", $cm->id);
if ($course->id != SITEID) {
$navigation = "<a href=\"../../course/view.php?id={$course->id}\">{$course->shortname}</a> ->\n <a href=\"index.php?id={$course->id}\">{$strsurveys}</a> ->\n <a href=\"view.php?id={$cm->id}\">" . format_string($survey->name, true) . "</a> -> ";
} else {
$navigation = "<a href=\"index.php?id={$course->id}\">{$strsurveys}</a> ->\n <a href=\"view.php?id={$cm->id}\">" . format_string($survey->name, true) . "</a> -> ";
}
print_header("{$course->shortname}: " . format_string($survey->name), $course->fullname, "{$navigation} {$strreport}", "", "", true, update_module_button($cm->id, $course->id, $strsurvey), navmenu($course, $cm));
/// Check to see if groups are being used in this survey
if ($groupmode = groupmode($course, $cm)) {
// Groups are being used
$menuaction = $action == "student" ? "students" : $action;
$currentgroup = setup_and_print_groups($course, $groupmode, "report.php?id={$cm->id}&action={$menuaction}&qid={$qid}");
} else {
$currentgroup = 0;
}
if ($currentgroup) {
$users = get_group_users($currentgroup);
} else {
$users = get_course_users($course->id);
}
print_simple_box_start("center");
if ($showscales) {
echo "<a href=\"report.php?action=summary&id={$id}\">{$strsummary}</a>";
echo " <a href=\"report.php?action=scales&id={$id}\">{$strscales}</a>";
echo " <a href=\"report.php?action=questions&id={$id}\">{$strquestions}</a>";
echo " <a href=\"report.php?action=students&id={$id}\">{$course->students}</a>";
if (has_capability('mod/survey:download', $context)) {
示例11: rss_get_url
$rsspath = rss_get_url($course->id, $USER->id, 'data', $data->id);
$meta .= '<link rel="alternate" type="application/rss+xml" ';
$meta .= 'title ="' . format_string($course->shortname) . ': %fullname%" href="' . $rsspath . '" />';
}
if ($data->csstemplate) {
$meta .= '<link rel="stylesheet" type="text/css" href="' . $CFG->wwwroot . '/mod/data/css.php?d=' . $data->id . '" /> ';
}
if ($data->jstemplate) {
$meta .= '<script type="text/javascript" src="' . $CFG->wwwroot . '/mod/data/js.php?d=' . $data->id . '"></script>';
}
/// Print the page header
$strdata = get_string('modulenameplural', 'data');
print_header_simple($data->name, '', "<a href='index.php?id={$course->id}'>{$strdata}</a> -> {$data->name}", '', $meta, true, update_module_button($cm->id, $course->id, get_string('modulename', 'data')), navmenu($course, $cm), '', '');
/// Check to see if groups are being used here
$groupmode = groupmode($course, $cm);
$currentgroup = setup_and_print_groups($course, $groupmode, 'edit.php?d=' . $data->id);
print_heading(format_string($data->name));
if ($currentgroup) {
$groupselect = " AND groupid = '{$currentgroup}'";
$groupparam = "&groupid={$currentgroup}";
} else {
$groupselect = "";
$groupparam = "";
}
/// Print the tabs
$currenttab = 'add';
if ($rid) {
$editentry = true;
//used in tabs
}
include 'tabs.php';
示例12: display_submissions
/**
* Display all the submissions ready for grading
*/
function display_submissions()
{
global $CFG, $db, $USER;
/* first we check to see if the form has just been submitted
* to request user_preference updates
*/
if (isset($_POST['updatepref'])) {
$perpage = optional_param('perpage', 10, PARAM_INT);
$perpage = $perpage <= 0 ? 10 : $perpage;
set_user_preference('assignment_perpage', $perpage);
set_user_preference('assignment_quickgrade', optional_param('quickgrade', 0, PARAM_BOOL));
}
/* next we get perpage and quickgrade (allow quick grade) params
* from database
*/
$perpage = get_user_preferences('assignment_perpage', 10);
$quickgrade = get_user_preferences('assignment_quickgrade', 0);
$teacherattempts = true;
/// Temporary measure
$page = optional_param('page', 0, PARAM_INT);
$strsaveallfeedback = get_string('saveallfeedback', 'assignment');
/// Some shortcuts to make the code read better
$course = $this->course;
$assignment = $this->assignment;
$cm = $this->cm;
$tabindex = 1;
//tabindex for quick grading tabbing; Not working for dropdowns yet
add_to_log($course->id, 'assignment', 'view submission', 'submissions.php?id=' . $this->assignment->id, $this->assignment->id, $this->cm->id);
print_header_simple(format_string($this->assignment->name, true), "", '<a href="index.php?id=' . $course->id . '">' . $this->strassignments . '</a> -> <a href="view.php?a=' . $this->assignment->id . '">' . format_string($this->assignment->name, true) . '</a> -> ' . $this->strsubmissions, '', '', true, update_module_button($cm->id, $course->id, $this->strassignment), navmenu($course, $cm));
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
/// find out current groups mode
$groupmode = groupmode($course, $cm);
$currentgroup = setup_and_print_groups($course, $groupmode, 'submissions.php?id=' . $this->cm->id);
/// Get all ppl that are allowed to submit assignments
$users = get_users_by_capability($context, 'mod/assignment:submit', '', '', '', '', $currentgroup, '', false);
$tablecolumns = array('picture', 'fullname', 'grade', 'submissioncomment', 'timemodified', 'timemarked', 'status');
$tableheaders = array('', get_string('fullname'), get_string('grade'), get_string('comment', 'assignment'), get_string('lastmodified') . ' (' . $course->student . ')', get_string('lastmodified') . ' (' . $course->teacher . ')', get_string('status'));
require_once $CFG->libdir . '/tablelib.php';
$table = new flexible_table('mod-assignment-submissions');
$table->define_columns($tablecolumns);
$table->define_headers($tableheaders);
$table->define_baseurl($CFG->wwwroot . '/mod/assignment/submissions.php?id=' . $this->cm->id . '&currentgroup=' . $currentgroup);
$table->sortable(true, 'lastname');
//sorted by lastname by default
$table->collapsible(true);
$table->initialbars(true);
$table->column_suppress('picture');
$table->column_suppress('fullname');
$table->column_class('picture', 'picture');
$table->column_class('fullname', 'fullname');
$table->column_class('grade', 'grade');
$table->column_class('submissioncomment', 'comment');
$table->column_class('timemodified', 'timemodified');
$table->column_class('timemarked', 'timemarked');
$table->column_class('status', 'status');
$table->set_attribute('cellspacing', '0');
$table->set_attribute('id', 'attempts');
$table->set_attribute('class', 'submissions');
$table->set_attribute('width', '90%');
//$table->set_attribute('align', 'center');
// Start working -- this is necessary as soon as the niceties are over
$table->setup();
/// Check to see if groups are being used in this assignment
if (!$teacherattempts) {
$teachers = get_course_teachers($course->id);
if (!empty($teachers)) {
$keys = array_keys($teachers);
}
foreach ($keys as $key) {
unset($users[$key]);
}
}
if (empty($users)) {
print_heading(get_string('noattempts', 'assignment'));
return true;
}
/// Construct the SQL
if ($where = $table->get_sql_where()) {
$where .= ' AND ';
}
if ($sort = $table->get_sql_sort()) {
$sort = ' ORDER BY ' . $sort;
}
$select = 'SELECT u.id, u.firstname, u.lastname, u.picture,
s.id AS submissionid, s.grade, s.submissioncomment,
s.timemodified, s.timemarked,
COALESCE(SIGN(SIGN(s.timemarked) + SIGN(s.timemarked - s.timemodified)), 0) AS status ';
$sql = 'FROM ' . $CFG->prefix . 'user u ' . 'LEFT JOIN ' . $CFG->prefix . 'assignment_submissions s ON u.id = s.userid
AND s.assignment = ' . $this->assignment->id . ' ' . 'WHERE ' . $where . 'u.id IN (' . implode(',', array_keys($users)) . ') ';
$table->pagesize($perpage, count($users));
///offset used to calculate index of student in that particular query, needed for the pop up to know who's next
$offset = $page * $perpage;
$strupdate = get_string('update');
$strgrade = get_string('grade');
$grademenu = make_grades_menu($this->assignment->grade);
if (($ausers = get_records_sql($select . $sql . $sort, $table->get_page_start(), $table->get_page_size())) !== false) {
foreach ($ausers as $auser) {
//.........这里部分代码省略.........
示例13: grade_download
} else {
if ($action == 'excel') {
grade_download('xls', $id);
exit;
} else {
if ($action == 'text') {
grade_download('txt', $id);
exit;
}
}
}
}
print_header($course->shortname . ': ' . get_string('grades'), $course->fullname, grade_nav($course, $action));
/// find out current groups mode
$groupmode = groupmode($course);
$currentgroup = setup_and_print_groups($course, $groupmode, 'index.php?id=' . $course->id);
echo '<div class="clearer"></div>';
grade_preferences_menu($action, $course);
grade_set_uncategorized();
if (has_capability('moodle/course:viewcoursegrades', get_context_instance(CONTEXT_COURSE, $course->id))) {
switch ($action) {
case "cats":
grade_set_categories();
break;
case "insert_category":
grade_insert_category();
grade_set_categories();
break;
case "assign_categories":
grade_assign_categories();
grade_set_categories();
示例14: display
/**
* Display the report.
*/
public function display($game, $cm, $course)
{
global $CFG, $SESSION, $DB;
// Define some strings.
$strreallydel = addslashes(get_string('deleteattemptcheck', 'game'));
$strtimeformat = get_string('strftimedatetime');
$strreviewquestion = get_string('reviewresponse', 'quiz');
// Only print headers if not asked to download data.
if (!($download = optional_param('download', null))) {
$this->print_header_and_tabs($cm, $course, $game, $reportmode = "overview");
}
// Deal with actions.
$action = optional_param('action', '', PARAM_ACTION);
switch ($action) {
case 'delete':
// Some attempts need to be deleted.
$attemptids = optional_param('attemptid', array(), PARAM_INT);
foreach ($attemptids as $attemptid) {
if ($attemptid && ($todelete = get_record('game_attempts', 'id', $attemptid))) {
delete_records('game_attempts', 'id', $attemptid);
delete_records('game_queries', 'attemptid', $attemptid);
// Search game_attempts for other instances by this user.
// If none, then delete record for this game, this user from game_grades.
// else recalculate best grade.
$userid = $todelete->userid;
if (!record_exists('game_attempts', 'userid', $userid, 'gameid', $game->id)) {
delete_records('game_grades', 'userid', $userid, 'gameid', $game->id);
} else {
game_save_best_score($game, $userid);
}
}
}
break;
}
// Print information on the number of existing attempts.
if (!$download) {
// Do not print notices when downloading.
if ($attemptnum = count_records('game_attempts', 'gameid', $game->id)) {
$a = new stdClass();
$a->attemptnum = $attemptnum;
$a->studentnum = count_records_select('game_attempts', "gameid = '{$game->id}' AND preview = '0'", 'COUNT(DISTINCT userid)');
$a->studentstring = $course->students;
notify(get_string('numattempts', 'game', $a));
}
}
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
// Find out current groups mode.
if ($groupmode = groupmode($course, $cm)) {
// Groups are being used.
if (!$download) {
$currentgroup = setup_and_print_groups($course, $groupmode, "report.php?id={$cm->id}&mode=overview");
} else {
$currentgroup = get_and_set_current_group($course, $groupmode);
}
} else {
$currentgroup = get_and_set_current_group($course, $groupmode);
}
// Set table options.
$noattempts = optional_param('noattempts', 0, PARAM_INT);
$detailedmarks = optional_param('detailedmarks', 0, PARAM_INT);
$pagesize = optional_param('pagesize', 10, PARAM_INT);
$hasfeedback = game_has_feedback($game->id) && $game->grade > 1.0E-7;
if ($pagesize < 1) {
$pagesize = 10;
}
// Now check if asked download of data.
if ($download) {
$filename = clean_filename("{$course->shortname} " . format_string($game->name, true));
$sort = '';
}
// Define table columns.
$tablecolumns = array('checkbox', 'picture', 'fullname', 'timestart', 'timefinish', 'duration');
$tableheaders = array(null, '', get_string('fullname'), get_string('startedon', 'game'), get_string('timecompleted', 'game'), get_string('attemptduration', 'game'));
if ($game->grade) {
$tablecolumns[] = 'grade';
$tableheaders[] = get_string('grade', 'game') . '/' . $game->grade;
}
if ($detailedmarks) {
// We want to display marks for all questions.
// Start by getting all questions.
$questionlist = game_questions_in_game($game->questions);
$questionids = explode(',', $questionlist);
$sql = "SELECT q.*, i.score AS maxgrade, i.id AS instance" . " FROM {question} q," . " {game_queries} i" . " WHERE i.gameid = '{$game->id}' AND q.id = i.questionid" . " AND q.id IN ({$questionlist})";
if (!($questions = get_records_sql($sql))) {
print_error('No questions found');
}
$number = 1;
foreach ($questionids as $key => $id) {
if ($questions[$id]->length) {
// Only print questions of non-zero length.
$tablecolumns[] = '$' . $id;
$tableheaders[] = '#' . $number;
$questions[$id]->number = $number;
$number += $questions[$id]->length;
} else {
// Get rid of zero length questions.
unset($questions[$id]);
//.........这里部分代码省略.........
示例15: required_param
<?php
// $Id: exceptions.php,v 1.11.6.4 2007/11/23 04:12:12 toyomoyo Exp $
require_once "../config.php";
require_once "lib.php";
$id = required_param('id');
// course id
$action = optional_param('action', '');
if (!($course = get_record('course', 'id', $id))) {
error('No course ID');
}
require_login($course->id);
require_capability('moodle/course:managegrades', get_context_instance(CONTEXT_COURSE, $id));
print_header("{$course->shortname}: " . get_string('grades'), $course->fullname, grade_nav($course, $action));
$groupmode = groupmode($course);
$group = setup_and_print_groups($course, $groupmode, 'exceptions.php?id=' . $course->id . '&action=excepts');
echo '<div class="clearer"></div>';
grade_preferences_menu($action, $course);
grade_set_uncategorized();
/// We are in editing mode. First, process any inputs there may be.
if ($data = data_submitted()) {
// make sure it is safe to process data
if (!empty($USER->id)) {
if (!confirm_sesskey()) {
error(get_string('confirmsesskeybad', 'error'));
}
}
if (!empty($data->nonmembersadd)) {
/// Add people to a grade_item
if (!empty($data->nonmembers) and !empty($data->grade_itemid)) {
$grade_itemmodified = false;