本文整理汇总了PHP中get_and_set_current_group函数的典型用法代码示例。如果您正苦于以下问题:PHP get_and_set_current_group函数的具体用法?PHP get_and_set_current_group怎么用?PHP get_and_set_current_group使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_and_set_current_group函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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]);
//.........这里部分代码省略.........
示例2: optional_param
require_once "{$CFG->libdir}/rsslib.php";
$id = optional_param('id', 0, PARAM_INT);
// Course id
$subscribe = optional_param('subscribe', null, PARAM_INT);
// Subscribe/Unsubscribe all forums
if ($id) {
if (!($course = get_record("course", "id", $id))) {
error("Course ID is incorrect");
}
} else {
if (!($course = get_site())) {
error("Could not find a top-level course!");
}
}
require_course_login($course);
$currentgroup = get_and_set_current_group($course, groupmode($course));
$coursecontext = get_context_instance(CONTEXT_COURSE, $course->id);
unset($SESSION->fromdiscussion);
add_to_log($course->id, "forum", "view forums", "index.php?id={$course->id}");
$strforums = get_string("forums", "forum");
$strforum = get_string("forum", "forum");
$strdescription = get_string("description");
$strdiscussions = get_string("discussions", "forum");
$strsubscribed = get_string("subscribed", "forum");
$strunreadposts = get_string("unreadposts", "forum");
$strtracking = get_string('tracking', 'forum');
$strmarkallread = get_string('markallread', 'forum');
$strtrackforum = get_string('trackforum', 'forum');
$strnotrackforum = get_string('notrackforum', 'forum');
$strsubscribe = get_string('subscribe', 'forum');
$strunsubscribe = get_string('unsubscribe', 'forum');
示例3: elseif
$navigation = '';
} 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';
}
示例4: error
if (!($chat = get_record('chat', 'id', $id))) {
error('Could not find that chat room!');
}
if (!($course = get_record('course', 'id', $chat->course))) {
error('Could not find the course this belongs to!');
}
if (!($cm = get_coursemodule_from_instance('chat', $chat->id, $course->id))) {
error('Course Module ID was incorrect');
}
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
require_login($course->id, false, $cm);
require_capability('mod/chat:chat', $context);
/// Check to see if groups are being used here
if ($groupmode = groupmode($course, $cm)) {
// Groups are being used
if ($groupid = get_and_set_current_group($course, $groupmode, $groupid)) {
if (!($group = get_record('groups', 'id', $groupid))) {
error("That group (id {$groupid}) doesn't exist!");
}
$groupname = ': ' . $group->name;
} else {
$groupname = ': ' . get_string('allparticipants');
}
} else {
$groupid = 0;
$groupname = '';
}
$strchat = get_string('modulename', 'chat');
// must be before current_language() in chat_login_user() to force course language!!!
$strchats = get_string('modulenameplural', 'chat');
$stridle = get_String('idle', 'chat');
示例5: display_submission
/**
* Display a single submission, ready for grading on a popup window
*
* This default method prints the teacher info and submissioncomment box at the top and
* the student info and submission at the bottom.
* This method also fetches the necessary data in order to be able to
* provide a "Next submission" button.
* Calls preprocess_submission() to give assignment type plug-ins a chance
* to process submissions before they are graded
* This method gets its arguments from the page parameters userid and offset
*/
function display_submission($extra_javascript = '')
{
global $CFG;
$userid = required_param('userid', PARAM_INT);
$offset = required_param('offset', PARAM_INT);
//offset for where to start looking for student.
if (!($user = get_record('user', 'id', $userid))) {
error('No such user!');
}
if (!($submission = $this->get_submission($user->id))) {
$submission = $this->prepare_new_submission($userid);
}
if ($submission->timemodified > $submission->timemarked) {
$subtype = 'assignmentnew';
} else {
$subtype = 'assignmentold';
}
/// construct SQL, using current offset to find the data of the next student
$course = $this->course;
$assignment = $this->assignment;
$cm = $this->cm;
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
/// Get all ppl that can submit assignments
$currentgroup = get_and_set_current_group($course, groupmode($course, $cm));
$users = get_users_by_capability($context, 'mod/assignment:submit', 'u.id, u.id', '', '', '', $currentgroup, '', false);
$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 u.id IN (' . implode(',', array_keys($users)) . ') ';
require_once $CFG->libdir . '/tablelib.php';
if ($sort = flexible_table::get_sql_sort('mod-assignment-submissions')) {
$sort = 'ORDER BY ' . $sort . ' ';
}
$nextid = 0;
if (($auser = get_records_sql($select . $sql . $sort, $offset + 1, 1)) !== false) {
$nextuser = array_shift($auser);
/// Calculate user status
$nextuser->status = $nextuser->timemarked > 0 && $nextuser->timemarked >= $nextuser->timemodified;
$nextid = $nextuser->id;
}
print_header(get_string('feedback', 'assignment') . ':' . fullname($user, true) . ':' . format_string($this->assignment->name));
/// Print any extra javascript needed for saveandnext
echo $extra_javascript;
///SOme javascript to help with setting up >.>
echo '<script type="text/javascript">' . "\n";
echo 'function setNext(){' . "\n";
echo 'document.getElementById(\'submitform\').mode.value=\'next\';' . "\n";
echo 'document.getElementById(\'submitform\').userid.value="' . $nextid . '";' . "\n";
echo '}' . "\n";
echo 'function saveNext(){' . "\n";
echo 'document.getElementById(\'submitform\').mode.value=\'saveandnext\';' . "\n";
echo 'document.getElementById(\'submitform\').userid.value="' . $nextid . '";' . "\n";
echo 'document.getElementById(\'submitform\').saveuserid.value="' . $userid . '";' . "\n";
echo 'document.getElementById(\'submitform\').menuindex.value = document.getElementById(\'submitform\').grade.selectedIndex;' . "\n";
echo '}' . "\n";
echo '</script>' . "\n";
echo '<table cellspacing="0" class="feedback ' . $subtype . '" >';
///Start of teacher info row
echo '<tr>';
echo '<td class="picture teacher">';
if ($submission->teacher) {
$teacher = get_record('user', 'id', $submission->teacher);
} else {
global $USER;
$teacher = $USER;
}
print_user_picture($teacher->id, $this->course->id, $teacher->picture);
echo '</td>';
echo '<td class="content">';
echo '<form id="submitform" action="submissions.php" method="post">';
echo '<fieldset class="invisiblefieldset">';
echo '<input type="hidden" name="offset" value="' . ($offset + 1) . '" />';
echo '<input type="hidden" name="userid" value="' . $userid . '" />';
echo '<input type="hidden" name="id" value="' . $this->cm->id . '" />';
echo '<input type="hidden" name="mode" value="grade" />';
echo '<input type="hidden" name="menuindex" value="0" />';
//selected menu index
//new hidden field, initialized to -1.
echo '<input type="hidden" name="saveuserid" value="-1" />';
if ($submission->timemarked) {
echo '<div class="from">';
echo '<div class="fullname">' . fullname($teacher, true) . '</div>';
echo '<div class="time">' . userdate($submission->timemarked) . '</div>';
echo '</div>';
}
echo '<div class="grade">' . get_string('grade') . ':';
choose_from_menu(make_grades_menu($this->assignment->grade), 'grade', $submission->grade, get_string('nograde'), '', -1);
//.........这里部分代码省略.........
示例6: error
// Redirect to field entry
}
}
if ($rid) {
//editting a record, do you have access to edit this?
if (!has_capability('mod/data:manageentries', $context) or !data_isowner($rid) or !confirm_sesskey()) {
error(get_string('noaccess', 'data'));
}
}
/// 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}", "", "", true, "", navmenu($course));
print_heading(format_string($data->name));
/// Groups needed for Add entry tab
$groupmode = groupmode($course, $cm);
$currentgroup = get_and_set_current_group($course, $groupmode);
/// Print the tabs
$currenttab = 'add';
include 'tabs.php';
$um = new upload_manager('recordsfile', false, false, null, false, 0);
if ($um->preprocess_files() && confirm_sesskey()) {
$filename = $um->files['recordsfile']['tmp_name'];
// Large files are likely to take their time and memory. Let PHP know
// that we'll take longer, and that the process should be recycled soon
// to free up memory.
@set_time_limit(0);
@raise_memory_limit("96M");
if (function_exists('apache_child_terminate')) {
@apache_child_terminate();
}
//Fix mac/dos newlines
示例7: jclic_get_students
function jclic_get_students($cm, $course, $jclicid)
{
global $CFG;
$version_moodle = (double) substr($CFG->release, 0, 3);
if ($version_moodle >= 1.7) {
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
$currentgroup = get_and_set_current_group($course, groupmode($course, $cm));
$users = get_users_by_capability($context, 'mod/jclic:submit', 'u.id, u.id', '', '', '', $currentgroup, '', false);
$dbstudents = array();
if (!empty($users)) {
$select = 'SELECT u.id AS userid, u.firstname, u.lastname, u.picture ';
$sql = 'FROM ' . $CFG->prefix . 'user u ' . 'LEFT JOIN ' . $CFG->prefix . 'jclic_sessions a ON u.id = a.user_id AND a.jclicid = ' . $jclicid . ' ' . 'WHERE u.id IN (' . implode(',', array_keys($users)) . ') ';
$dbstudents = get_records_sql($select . $sql);
}
} else {
$dbstudents = get_records_sql("SELECT DISTINCT us.userid, u.firstname, u.lastname\n \t\t\t\t FROM {$CFG->prefix}user u,{$CFG->prefix}user_students us, {$CFG->prefix}jclic j\n \t\t\t\t WHERE us.course=j.course AND j.id={$jclicid} AND u.id=us.userid");
}
return $dbstudents;
}
示例8: forum_menu_list
/**
* @todo Document this function
*/
function forum_menu_list($course)
{
$menu = array();
$currentgroup = get_and_set_current_group($course, groupmode($course));
if ($forums = get_all_instances_in_course("forum", $course)) {
if ($course->format == 'weeks') {
$strsection = get_string('week');
} else {
$strsection = get_string('topic');
}
foreach ($forums as $forum) {
if ($cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) {
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
if (!isset($forum->visible)) {
if (!instance_is_visible("forum", $forum) && !has_capability('moodle/course:viewhiddenactivities', $context)) {
continue;
}
}
$groupmode = groupmode($course, $cm);
// Groups are being used
if ($groupmode == SEPARATEGROUPS && $currentgroup === false && !has_capability('moodle/site:accessallgroups', $context)) {
continue;
}
}
$menu[$forum->id] = format_string($forum->name, true);
}
}
return $menu;
}
示例9: get_content
function get_content()
{
global $USER, $CFG, $COURSE;
if ($this->content !== NULL) {
return $this->content;
}
$this->content = new stdClass();
$this->content->text = '';
$this->content->footer = '';
if (empty($this->instance)) {
return $this->content;
}
$timetoshowusers = 300;
//Seconds default
if (isset($CFG->block_online_users_timetosee)) {
$timetoshowusers = $CFG->block_online_users_timetosee * 60;
}
$timefrom = 100 * floor((time() - $timetoshowusers) / 100);
// Round to nearest 100 seconds for better query cache
// Get context so we can check capabilities.
$context = get_context_instance(CONTEXT_COURSE, $COURSE->id);
//Calculate if we are in separate groups
$isseparategroups = $COURSE->groupmode == SEPARATEGROUPS && $COURSE->groupmodeforce && !has_capability('moodle/site:accessallgroups', $context);
//Get the user current group
$currentgroup = $isseparategroups ? get_and_set_current_group($COURSE, groupmode($COURSE)) : NULL;
$groupmembers = "";
$groupselect = "";
//Add this to the SQL to show only group users
if ($currentgroup !== NULL) {
$groupmembers = ', ' . groups_members_from_sql();
//TODO: ", {$CFG->prefix}groups_members gm ";
$groupselect = ' AND ' . groups_members_where_sql($currentgroup, 'u.id');
//" AND u.id = gm.userid AND gm.groupid = '$currentgroup'";
}
if ($COURSE->id == SITEID) {
// Site-level
$select = "SELECT u.id, u.username, u.firstname, u.lastname, u.picture, max(u.lastaccess) as lastaccess ";
$from = "FROM {$CFG->prefix}user u \n {$groupmembers} ";
$where = "WHERE u.lastaccess > {$timefrom}\n {$groupselect} ";
$order = "ORDER BY lastaccess DESC ";
} else {
// Course-level
$courseselect = "AND ul.courseid = '" . $COURSE->id . "'";
$select = "SELECT u.id, u.username, u.firstname, u.lastname, u.picture, max(ul.timeaccess) as lastaccess ";
$from = "FROM {$CFG->prefix}user_lastaccess ul,\n {$CFG->prefix}user u\n {$groupmembers} ";
$where = "WHERE ul.timeaccess > {$timefrom}\n AND u.id = ul.userid\n AND ul.courseid = {$COURSE->id}\n {$groupselect} ";
$order = "ORDER BY lastaccess DESC ";
}
$groupby = "GROUP BY u.id, u.username, u.firstname, u.lastname, u.picture ";
$SQL = $select . $from . $where . $groupby . $order;
$users = array();
$pcontext = get_related_contexts_string($context);
if ($pusers = get_records_sql($SQL, 0, 50)) {
// We'll just take the most recent 50 maximum
foreach ($pusers as $puser) {
// if current user can't view hidden role assignment in this context and
// user has a hidden role assigned at this context or any parent contexts,
// ignore this user
$SQL = "SELECT id FROM {$CFG->prefix}role_assignments\n WHERE userid = {$puser->id}\n AND contextid {$pcontext}\n AND hidden = 1";
if (!has_capability('moodle/role:viewhiddenassigns', $context) && record_exists_sql($SQL)) {
// can't see this user as the current user has no capability
// and this user has a hidden assignment at this context or higher
continue;
}
$puser->fullname = fullname($puser);
$users[$puser->id] = $puser;
}
}
//Calculate minutes
$minutes = floor($timetoshowusers / 60);
$this->content->text = "<div class=\"info\">(" . get_string("periodnminutes", "block_online_users", $minutes) . ")</div>";
//Now, we have in users, the list of users to show
//Because they are online
if (!empty($users)) {
//Accessibility: Don't want 'Alt' text for the user picture; DO want it for the envelope/message link (existing lang string).
//Accessibility: Converted <div> to <ul>, inherit existing classes & styles.
$this->content->text .= "<ul class='list'>\n";
foreach ($users as $user) {
$this->content->text .= '<li class="listentry">';
$timeago = format_time(time() - $user->lastaccess);
//bruno to calculate correctly on frontpage
if ($user->username == 'guest') {
$this->content->text .= '<div class="user">' . print_user_picture($user->id, $COURSE->id, $user->picture, 16, true, false, '', false);
$this->content->text .= get_string('guestuser') . '</div>';
} else {
$this->content->text .= '<div class="user"><a href="' . $CFG->wwwroot . '/user/view.php?id=' . $user->id . '&course=' . $COURSE->id . '" title="' . $timeago . '">';
$this->content->text .= print_user_picture($user->id, $COURSE->id, $user->picture, 16, true, false, '', false);
$this->content->text .= $user->fullname . '</a></div>';
}
if (!empty($USER->id) and $USER->id != $user->id and !empty($CFG->messaging) and !isguest() and $user->username != 'guest') {
// Only when logged in and messaging active etc
$this->content->text .= '<div class="message"><a title="' . get_string('messageselectadd') . '" href="' . $CFG->wwwroot . '/message/discussion.php?id=' . $user->id . '" onclick="this.target=\'message_' . $user->id . '\';return openpopup(\'/message/discussion.php?id=' . $user->id . '\', \'message_' . $user->id . '\', \'menubar=0,location=0,scrollbars,status,resizable,width=400,height=500\', 0);">' . '<img class="iconsmall" src="' . $CFG->pixpath . '/t/message.gif" alt="' . get_string('messageselectadd') . '" /></a></div>';
}
$this->content->text .= "</li>\n";
}
$this->content->text .= '</ul><div class="clearer"><!-- --></div>';
} else {
$this->content->text .= "<div class=\"info\">" . get_string("none") . "</div>";
}
return $this->content;
//.........这里部分代码省略.........
示例10: get_content
function get_content()
{
global $CFG, $SITE, $COURSE, $USER;
if (empty($CFG->bloglevel)) {
$this->content->text = '';
return $this->content;
}
if (empty($this->config->timewithin)) {
$this->config->timewithin = BLOGDEFAULTTIMEWITHIN;
}
if (empty($this->config->numberoftags)) {
$this->config->numberoftags = BLOGDEFAULTNUMBEROFTAGS;
}
if (empty($this->config->sort)) {
$this->config->sort = BLOGDEFAULTSORT;
}
if ($this->content !== NULL) {
return $this->content;
}
if (empty($this->instance)) {
$this->content = '';
return $this->content;
}
$this->content = new stdClass();
$this->content->text = '';
$this->content->footer = '';
/// Get a list of tags
$timewithin = $this->config->timewithin * 24 * 60 * 60;
/// convert to seconds
$sql = 'SELECT t.id, t.type, t.text, COUNT(DISTINCT bt.id) as ct ';
$sql .= "FROM {$CFG->prefix}tags t, {$CFG->prefix}blog_tag_instance bt, {$CFG->prefix}post p ";
$sql .= 'WHERE t.id = bt.tagid ';
$sql .= 'AND p.id = bt.entryid ';
$sql .= 'AND (p.publishstate = \'site\' or p.publishstate=\'public\') ';
$sql .= "AND bt.timemodified > {$timewithin} ";
$sql .= 'GROUP BY t.id, t.type, t.text ';
$sql .= 'ORDER BY ct DESC, t.text ASC';
if ($tags = get_records_sql($sql, 0, $this->config->numberoftags)) {
/// There are 2 things to do:
/// 1. tags with the same count should have the same size class
/// 2. however many tags we have should be spread evenly over the
/// 20 size classes
$totaltags = count($tags);
$currenttag = 0;
$size = 20;
$lasttagct = -1;
$etags = array();
foreach ($tags as $tag) {
$currenttag++;
if ($currenttag == 1) {
$lasttagct = $tag->ct;
$size = 20;
} else {
if ($tag->ct != $lasttagct) {
$lasttagct = $tag->ct;
$size = 20 - (int) (($currenttag - 1) / $totaltags * 20);
}
}
$tag->class = "{$tag->type} s{$size}";
$etags[] = $tag;
}
/// Now we sort the tag display order
$CFG->tagsort = $this->config->sort;
usort($etags, "blog_tags_sort");
/// Finally we create the output
/// Accessibility: markup as a list.
$this->content->text .= "\n<ul class='inline-list'>\n";
foreach ($etags as $tag) {
switch ($CFG->bloglevel) {
case BLOG_USER_LEVEL:
$filtertype = 'user';
$filterselect = $USER->id;
break;
case BLOG_GROUP_LEVEL:
$filtertype = 'group';
$filterselect = get_and_set_current_group($COURSE, groupmode($COURSE));
break;
case BLOG_COURSE_LEVEL:
$filtertype = 'course';
if (isset($COURSE->id)) {
$filterselect = $COURSE->id;
} else {
$filterselect = $this->instance->pageid;
}
break;
default:
if (isset($COURSE->id) && $COURSE->id != SITEID) {
$filtertype = 'course';
$filterselect = $COURSE->id;
} else {
$filtertype = 'site';
$filterselect = SITEID;
}
break;
}
$link = $CFG->wwwroot . '/blog/index.php?filtertype=' . $filtertype . '&filterselect=' . $filterselect . '&tagid=' . $tag->id;
$this->content->text .= '<li><a href="' . $link . '" ' . 'class="' . $tag->class . '" ' . 'title="' . get_string('numberofentries', 'blog', $tag->ct) . '">' . $tag->text . '</a></li> ';
}
$this->content->text .= "\n</ul>\n";
}
//.........这里部分代码省略.........
示例11: get_content
function get_content()
{
global $CFG, $USER, $COURSE;
if ($this->content !== NULL) {
return $this->content;
}
$this->content = new stdClass();
$this->content->text = '';
$this->content->footer = '';
if (empty($this->instance)) {
return $this->content;
}
if ($COURSE->newsitems) {
// Create a nice listing of recent postings
require_once $CFG->dirroot . '/mod/forum/lib.php';
// We'll need this
$text = '';
if (!($forum = forum_get_course_forum($COURSE->id, 'news'))) {
return '';
}
if (!($cm = get_coursemodule_from_instance('forum', $forum->id, $COURSE->id))) {
return '';
}
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
/// First work out whether we can post to this group and if so, include a link
$groupmode = groupmode($COURSE, $cm);
$currentgroup = get_and_set_current_group($COURSE, $groupmode);
if (forum_user_can_post_discussion($forum, $currentgroup, $groupmode, $cm, $context)) {
$text .= '<div class="newlink"><a href="' . $CFG->wwwroot . '/mod/forum/post.php?forum=' . $forum->id . '">' . get_string('addanewtopic', 'forum') . '</a>...</div>';
}
/// Get all the recent discussions we're allowed to see
if (!($discussions = forum_get_discussions($forum->id, 'p.modified DESC', 0, false, $currentgroup, $COURSE->newsitems))) {
$text .= '(' . get_string('nonews', 'forum') . ')';
$this->content->text = $text;
return $this->content;
}
/// Actually create the listing now
$strftimerecent = get_string('strftimerecent');
$strmore = get_string('more', 'forum');
/// Accessibility: markup as a list.
$text .= "\n<ul class='unlist'>\n";
foreach ($discussions as $discussion) {
$discussion->subject = $discussion->name;
$discussion->subject = format_string($discussion->subject, true, $forum->course);
$text .= '<li class="post">' . '<div class="head">' . '<div class="date">' . userdate($discussion->modified, $strftimerecent) . '</div>' . '<div class="name">' . fullname($discussion) . '</div></div>' . '<div class="info">' . $discussion->subject . ' ' . '<a href="' . $CFG->wwwroot . '/mod/forum/discuss.php?d=' . $discussion->discussion . '">' . $strmore . '...</a></div>' . "</li>\n";
}
$text .= "</ul>\n";
$this->content->text = $text;
$this->content->footer = '<a href="' . $CFG->wwwroot . '/mod/forum/view.php?f=' . $forum->id . '">' . get_string('oldertopics', 'forum') . '</a> ...';
/// If RSS is activated at site and forum level and this forum has rss defined, show link
if (isset($CFG->enablerssfeeds) && isset($CFG->forum_enablerssfeeds) && $CFG->enablerssfeeds && $CFG->forum_enablerssfeeds && $forum->rsstype && $forum->rssarticles) {
require_once $CFG->dirroot . '/lib/rsslib.php';
// We'll need this
if ($forum->rsstype == 1) {
$tooltiptext = get_string('rsssubscriberssdiscussions', 'forum', format_string($forum->name));
} else {
$tooltiptext = get_string('rsssubscriberssposts', 'forum', format_string($forum->name));
}
if (empty($USER->id)) {
$userid = 0;
} else {
$userid = $USER->id;
}
$this->content->footer .= '<br />' . rss_get_link($COURSE->id, $userid, 'forum', $forum->id, $tooltiptext);
}
}
return $this->content;
}
示例12: get_string
$header = ' (' . $header . ')';
}
echo '<div class="header">' . get_string('newevent', 'calendar') . $header . '</div>';
if ($eventtype == 'select') {
$courseid = optional_param('courseid', $SESSION->cal_course_referer, PARAM_INT);
if ($courseid == 0) {
// workaround by Dan for bug #6130
$courseid = SITEID;
}
if (!($course = get_record('course', 'id', $courseid))) {
error('Incorrect course ID');
}
if ($groupmode = groupmode($course)) {
// Groups are being used
$changegroup = optional_param('group', -1, PARAM_INT);
$groupid = get_and_set_current_group($course, $groupmode, $changegroup);
} else {
$groupid = 0;
}
echo '<h2>' . get_string('eventkind', 'calendar') . ':</h2>';
echo '<div id="selecteventtype">';
include 'event_select.html';
echo '</div>';
} else {
include 'event_new.html';
if ($usehtmleditor) {
use_html_editor("description");
}
}
break;
}
示例13: print_section_fn
//.........这里部分代码省略.........
$icon = "{$CFG->modpixpath}/{$mod->modname}/icon.gif";
}
if ($mod->indent) {
print_spacer(12, 20 * $mod->indent, false);
}
// /// If the questionnaire is mandatory
// if (($mod->modname == 'questionnaire') && empty($mandatorypopup)) {
// $mandatorypopup = is_mod_mandatory($mod, $USER->id);
// }
if ($mod->modname == "label") {
if (empty($this->course->usemandatory) || empty($mod->mandatory)) {
if (!$mod->visible) {
echo "<span class=\"dimmed_text\">";
}
echo format_text($extra, FORMAT_HTML, $labelformatoptions);
if (!$mod->visible) {
echo "</span>";
}
} else {
if ($isediting) {
$linkcss = $mod->visible ? "" : " class=\"dimmed\" ";
$alttext = isset($link_title[$mod->modname]) ? $link_title[$mod->modname] : $mod->modfullname;
echo "<img src=\"{$icon}\"" . " height=16 width=16 alt=\"{$alttext}\">" . " <font size=2><a title=\"{$alttext}\" {$linkcss} {$extra}" . " href=\"{$CFG->wwwroot}/mod/{$mod->modname}/view.php?id={$mod->id}\">{$instancename}</a></font>";
}
}
} else {
if (!$isediting && $mod->modname == 'forum' && isset($this->course->expforumsec) && $this->course->expforumsec == $section->section) {
$page = optional_param('page', 0, PARAM_INT);
$changegroup = isset($_GET['group']) ? $_GET['group'] : -1;
// Group change requested?
$forum = get_record("forum", "id", $mod->instance);
$groupmode = groupmode($this->course, $mod);
// Groups are being used
$currentgroup = get_and_set_current_group($this->course, $groupmode, $changegroup);
forum_print_latest_discussions($this->course, $forum, $CFG->forum_manydiscussions, 'header', '', $currentgroup, $groupmode, $page);
} else {
// Normal activity
if (!$isteacher && !empty($this->course->activitytracking)) {
$act_compl = is_activity_complete($mod, $USER->id);
if ($act_compl === false) {
echo ' <img src="' . $CFG->wwwroot . '/course/format/' . $this->course->format . '/pix/incomplete.gif" ' . 'height="16" width="16" alt="Activity Not Completed" hspace="10" ' . 'title="Activity Not Completed">';
} else {
if ($act_compl === true || is_int($act_compl) && $act_compl >= 50) {
echo ' <img src="' . $CFG->wwwroot . '/course/format/' . $this->course->format . '/pix/completed.gif" ' . 'height="16" width="16" alt="Activity Completed" hspace="10" ' . 'title="Activity Completed">';
} else {
if (is_int($act_compl)) {
echo ' <img src="' . $CFG->wwwroot . '/course/format/' . $this->course->format . '/pix/completedpoor.gif" ' . 'height="16" width="16" alt="Activity Completed Poorly" hspace="10" ' . 'title="Activity Completed Poorly">';
} else {
if ($act_compl == 'submitted') {
echo ' <img src="' . $CFG->wwwroot . '/course/format/' . $this->course->format . '/pix/submitted.gif" ' . 'height="16" width="16" alt="Activity Submitted" hspace="10" ' . 'title="Activity Submitted">';
}
}
}
}
}
$linkcss = $mod->visible ? "" : " class=\"dimmed\" ";
$alttext = isset($link_title[$mod->modname]) ? $link_title[$mod->modname] : $mod->modfullname;
echo "<img src=\"{$icon}\"" . " height=16 width=16 alt=\"{$alttext}\">" . " <font size=2><a title=\"{$alttext}\" {$linkcss} {$extra}" . " href=\"{$CFG->wwwroot}/mod/{$mod->modname}/view.php?id={$mod->id}\">{$instancename}</a></font>";
}
}
if ($usetracking && $mod->modname == 'forum') {
if ($unread = forum_tp_count_forum_unread_posts($mod, $this->course)) {
echo '<span class="unread"> <a href="' . $CFG->wwwroot . '/mod/forum/view.php?id=' . $mod->id . '">';
if ($unread == 1) {
echo $strunreadpostsone;
} else {
示例14: object
$SESSION->fromurl = $_SERVER["HTTP_REFERER"];
} else {
$SESSION->fromurl = '';
}
// Load up the $post variable.
$post = new object();
$post->course = $course->id;
$post->forum = $forum->id;
$post->discussion = 0;
// ie discussion # not defined yet
$post->parent = 0;
$post->subject = '';
$post->userid = $USER->id;
$post->message = '';
if ($groupmode = groupmode($course, $cm)) {
$post->groupid = get_and_set_current_group($course, $groupmode);
if ($post->groupid == 0) {
$post->groupid = -1;
//TODO: why -1??
}
} else {
$post->groupid = -1;
//TODO: why -1??
}
forum_set_return();
} else {
if (!empty($reply)) {
// User is writing a new reply
if (!($parent = forum_get_post_full($reply))) {
error("Parent post ID was incorrect");
}
示例15: forum_print_latest_discussions
/**
* Prints the discussion view screen for a forum.
*
* @param object $course The current course object.
* @param object $forum Forum to be printed.
* @param int $maxdiscussions The maximum number of discussions per page(optional).
* @param string $displayformat The display format to use (optional).
* @param string $sort Sort arguments for database query (optional).
* @param int $currentgroup Group to display discussions for (optional).
* @param int $groupmode Group mode of the forum (optional).
* @param int $page Page mode, page to display (optional).
*
*/
function forum_print_latest_discussions($course, $forum, $maxdiscussions = 5, $displayformat = 'plain', $sort = '', $currentgroup = -1, $groupmode = -1, $page = -1, $cm = NULL)
{
global $CFG, $USER;
if (!$cm) {
if (!($cm = get_coursemodule_from_instance('forum', $forum->id, $forum->course))) {
error('Course Module ID was incorrect');
}
}
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
// Sort out some defaults
if (!$maxdiscussions && $displayformat == 'plain') {
$displayformat = 'header';
// Abbreviate display by default
}
$fullpost = false;
if ($displayformat == 'plain') {
$fullpost = true;
}
// Decide if current user is allowed to see ALL the current discussions or not
// First check the group stuff
$groupmode = groupmode($course, $cm);
$currentgroup = get_and_set_current_group($course, $groupmode);
// If the user can post discussions, then this is a good place to put the
// button for it. We do not show the button if we are showing site news
// and the current user is a guest.
if (forum_user_can_post_discussion($forum, $currentgroup, $groupmode, $cm, $context) || $forum->type != 'news' && has_capability('moodle/legacy:guest', $context, NULL, false)) {
echo '<div class="singlebutton forumaddnew">';
echo "<form id=\"newdiscussionform\" method=\"get\" action=\"{$CFG->wwwroot}/mod/forum/post.php\">";
echo '<div>';
echo "<input type=\"hidden\" name=\"forum\" value=\"{$forum->id}\" />";
echo '<input type="submit" value="';
echo $forum->type == 'news' ? get_string('addanewtopic', 'forum') : ($forum->type == 'qanda' ? get_string('addanewquestion', 'forum') : get_string('addanewdiscussion', 'forum'));
echo '" />';
echo '</div>';
echo '</form>';
echo "</div>\n";
} else {
if (!isguestuser() and isloggedin() and $forum->type != 'news' and $groupmode == SEPARATEGROUPS and !ismember($currentgroup)) {
notify(get_string('cannotadddiscussion', 'forum'));
}
}
// Get all the recent discussions we're allowed to see
$getuserlastmodified = $displayformat == 'header';
if (!($discussions = forum_get_discussions($forum->id, $sort, 0, $fullpost, $currentgroup, 0, $getuserlastmodified))) {
echo '<div class="forumnodiscuss">';
if ($forum->type == 'news') {
echo '(' . get_string('nonews', 'forum') . ')';
} else {
if ($forum->type == 'qanda') {
echo '(' . get_string('noquestions', 'forum') . ')';
} else {
echo '(' . get_string('nodiscussions', 'forum') . ')';
}
}
echo "</div>\n";
return;
}
// If no discussions then don't use paging (to avoid some divide by 0 errors)
if ($maxdiscussions <= 0) {
$page = -1;
$maxdiscussions = 0;
}
// If we want paging
if ($page != -1) {
///Get the number of discussions found
$numdiscussions = count($discussions);
///Show the paging bar
print_paging_bar($numdiscussions, $page, $maxdiscussions, "view.php?f={$forum->id}&");
//Calculate the page "window"
$pagestart = $page * $maxdiscussions + 1;
$pageend = $pagestart + $maxdiscussions - 1;
}
$replies = forum_count_discussion_replies($forum->id);
$canreply = forum_user_can_post($forum);
$canviewparticipants = has_capability('moodle/course:viewparticipants', $context);
$discussioncount = 0;
$olddiscussionlink = false;
$strdatestring = get_string('strftimerecentfull');
// Check if the forum is tracked.
if ($cantrack = forum_tp_can_track_forums($forum)) {
$forumtracked = forum_tp_is_tracked($forum);
} else {
$forumtracked = false;
}
if ($displayformat == 'header') {
echo '<table cellspacing="0" class="forumheaderlist">';
echo '<thead>';
//.........这里部分代码省略.........