本文整理汇总了PHP中print_headline函数的典型用法代码示例。如果您正苦于以下问题:PHP print_headline函数的具体用法?PHP print_headline怎么用?PHP print_headline使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了print_headline函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: wiki_print_recent_activity
function wiki_print_recent_activity($course, $isteacher, $timestart)
{
/// Given a course and a time, this module should find recent activity
/// that has occurred in wiki activities and print it out.
/// Return true if there was output, or false is there was none.
global $CFG;
$sql = "SELECT l.*, cm.instance FROM {$CFG->prefix}log l \n INNER JOIN {$CFG->prefix}course_modules cm ON l.cmid = cm.id \n WHERE l.time > '{$timestart}' AND l.course = {$course->id} \n AND l.module = 'wiki' AND action LIKE 'edit%'\n ORDER BY l.time ASC";
if (!($logs = get_records_sql($sql))) {
return false;
}
$modinfo = get_fast_modinfo($course);
$wikis = array();
foreach ($logs as $log) {
$cm = $modinfo->instances['wiki'][$log->instance];
if (!$cm->uservisible) {
continue;
}
/// Process log->url and rebuild it here to properly clean the pagename - MDL-15896
$extractedpage = preg_replace('/^.*&page=/', '', $log->url);
$log->url = preg_replace('/page=.*$/', 'page=' . urlencode($extractedpage), $log->url);
$wikis[$log->info] = wiki_log_info($log);
$wikis[$log->info]->pagename = $log->info;
$wikis[$log->info]->time = $log->time;
$wikis[$log->info]->url = str_replace('&', '&', $log->url);
}
if (!$wikis) {
return false;
}
print_headline(get_string('updatedwikipages', 'wiki') . ':', 3);
foreach ($wikis as $wiki) {
print_recent_activity_note($wiki->time, $wiki, $wiki->pagename, $CFG->wwwroot . '/mod/wiki/' . $wiki->url);
}
return false;
}
示例2: assignment_print_recent_activity
/**
* Print recent activity from all assignments in a given course
*
* This is used by the recent activity block
*/
function assignment_print_recent_activity($course, $isteacher, $timestart)
{
global $CFG;
$content = false;
$assignments = array();
if (!($logs = get_records_select('log', 'time > \'' . $timestart . '\' AND ' . 'course = \'' . $course->id . '\' AND ' . 'module = \'assignment\' AND ' . 'action = \'upload\' ', 'time ASC'))) {
return false;
}
foreach ($logs as $log) {
//Create a temp valid module structure (course,id)
$tempmod = new object();
$tempmod->course = $log->course;
$tempmod->id = $log->info;
//Obtain the visible property from the instance
$modvisible = instance_is_visible($log->module, $tempmod);
//Only if the mod is visible
if ($modvisible) {
if ($info = assignment_log_info($log)) {
$assignments[$log->info] = $info;
$assignments[$log->info]->time = $log->time;
$assignments[$log->info]->url = str_replace('&', '&', $log->url);
}
}
}
if (!empty($assignments)) {
print_headline(get_string('newsubmissions', 'assignment') . ':');
foreach ($assignments as $assignment) {
print_recent_activity_note($assignment->time, $assignment, $assignment->name, $CFG->wwwroot . '/mod/assignment/' . $assignment->url);
}
$content = true;
}
return $content;
}
示例3: workshop_print_recent_activity
function workshop_print_recent_activity($course, $isteacher, $timestart)
{
global $CFG;
// have a look for agreed assessments for this user (agree)
$agreecontent = false;
if (!$isteacher) {
// teachers only need to see submissions
if ($logs = workshop_get_agree_logs($course, $timestart)) {
// got some, see if any belong to a visible module
foreach ($logs as $log) {
// Create a temp valid module structure (only need courseid, moduleid)
$tempmod->course = $course->id;
$tempmod->id = $log->workshopid;
//Obtain the visible property from the instance
if (instance_is_visible("workshop", $tempmod)) {
$agreecontent = true;
break;
}
}
// if we got some "live" ones then output them
if ($agreecontent) {
print_headline(get_string("workshopagreedassessments", "workshop") . ":");
foreach ($logs as $log) {
//Create a temp valid module structure (only need courseid, moduleid)
$tempmod->course = $course->id;
$tempmod->id = $log->workshopid;
//Obtain the visible property from the instance
if (instance_is_visible("workshop", $tempmod)) {
if (!workshop_is_teacher($workshop, $log->userid)) {
// don't break anonymous rule
$log->firstname = $course->student;
$log->lastname = '';
}
print_recent_activity_note($log->time, $log, $log->name, $CFG->wwwroot . '/mod/workshop/' . $log->url);
}
}
}
}
}
// have a look for new assessments for this user (assess)
$assesscontent = false;
if (!$isteacher) {
// teachers only need to see submissions
if ($logs = workshop_get_assess_logs($course, $timestart)) {
// got some, see if any belong to a visible module
foreach ($logs as $log) {
// Create a temp valid module structure (only need courseid, moduleid)
$tempmod->course = $course->id;
$tempmod->id = $log->workshopid;
//Obtain the visible property from the instance
if (instance_is_visible("workshop", $tempmod)) {
$assesscontent = true;
break;
}
}
// if we got some "live" ones then output them
if ($assesscontent) {
print_headline(get_string("workshopassessments", "workshop") . ":");
foreach ($logs as $log) {
//Create a temp valid module structure (only need courseid, moduleid)
$tempmod->course = $course->id;
$tempmod->id = $log->workshopid;
//Obtain the visible property from the instance
if (instance_is_visible("workshop", $tempmod)) {
if (!workshop_is_teacher($tempmod->id, $log->userid)) {
// don't break anonymous rule
$log->firstname = $course->student;
$log->lastname = '';
}
print_recent_activity_note($log->time, $log, $log->name, $CFG->wwwroot . '/mod/workshop/' . $log->url);
}
}
}
}
}
// have a look for new comments for this user (comment)
$commentcontent = false;
if (!$isteacher) {
// teachers only need to see submissions
if ($logs = workshop_get_comment_logs($course, $timestart)) {
// got some, see if any belong to a visible module
foreach ($logs as $log) {
// Create a temp valid module structure (only need courseid, moduleid)
$tempmod->course = $course->id;
$tempmod->id = $log->workshopid;
//Obtain the visible property from the instance
if (instance_is_visible("workshop", $tempmod)) {
$commentcontent = true;
break;
}
}
// if we got some "live" ones then output them
if ($commentcontent) {
print_headline(get_string("workshopcomments", "workshop") . ":");
foreach ($logs as $log) {
//Create a temp valid module structure (only need courseid, moduleid)
$tempmod->course = $course->id;
$tempmod->id = $log->workshopid;
//Obtain the visible property from the instance
if (instance_is_visible("workshop", $tempmod)) {
//.........这里部分代码省略.........
示例4: hotpot_print_recent_activity
function hotpot_print_recent_activity($course, $isteacher, $timestart)
{
/// Given a course and a time, this module should find recent activity
/// that has occurred in hotpot activities and print it out.
/// Return true if there was output, or false is there was none.
global $CFG;
$result = false;
$records = get_records_sql("\n SELECT\n h.id AS id,\n h.name AS name,\n COUNT(*) AS count_attempts\n FROM\n {$CFG->prefix}hotpot h,\n {$CFG->prefix}hotpot_attempts a\n WHERE\n h.course = {$course->id}\n AND h.id = a.hotpot\n AND a.id = a.clickreportid\n AND a.starttime > {$timestart}\n GROUP BY\n h.id, h.name\n ");
// note that PostGreSQL requires h.name in the GROUP BY clause
if ($records) {
$names = array();
foreach ($records as $id => $record) {
if ($cm = get_coursemodule_from_instance('hotpot', $record->id, $course->id)) {
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
if (has_capability('mod/hotpot:viewreport', $context)) {
$href = "{$CFG->wwwroot}/mod/hotpot/view.php?hp={$id}";
$name = ' <a href="' . $href . '">' . $record->name . '</a>';
if ($record->count_attempts > 1) {
$name .= " ({$record->count_attempts})";
}
$names[] = $name;
}
}
}
if (count($names) > 0) {
print_headline(get_string('modulenameplural', 'hotpot') . ':');
if ($CFG->version >= 2005050500) {
// Moodle 1.5+
echo '<div class="head"><div class="name">' . implode('<br />', $names) . '</div></div>';
} else {
// Moodle 1.4.x (or less)
echo '<font size="1">' . implode('<br />', $names) . '</font>';
}
$result = true;
}
}
return $result;
// True if anything was printed, otherwise false
}
示例5: assignment_print_recent_activity
/**
* Print recent activity from all assignments in a given course
*
* This is used by the recent activity block
*/
function assignment_print_recent_activity($course, $viewfullnames, $timestart)
{
global $CFG, $USER;
// do not use log table if possible, it may be huge
if (!($submissions = get_records_sql("SELECT asb.id, asb.timemodified, cm.id AS cmid, asb.userid,\n u.firstname, u.lastname, u.email, u.picture\n FROM {$CFG->prefix}assignment_submissions asb\n JOIN {$CFG->prefix}assignment a ON a.id = asb.assignment\n JOIN {$CFG->prefix}course_modules cm ON cm.instance = a.id\n JOIN {$CFG->prefix}modules md ON md.id = cm.module\n JOIN {$CFG->prefix}user u ON u.id = asb.userid\n WHERE asb.timemodified > {$timestart} AND\n a.course = {$course->id} AND\n md.name = 'assignment'\n ORDER BY asb.timemodified ASC"))) {
return false;
}
$modinfo =& get_fast_modinfo($course);
// reference needed because we might load the groups
$show = array();
$grader = array();
foreach ($submissions as $submission) {
if (!array_key_exists($submission->cmid, $modinfo->cms)) {
continue;
}
$cm = $modinfo->cms[$submission->cmid];
if (!$cm->uservisible) {
continue;
}
if ($submission->userid == $USER->id) {
$show[] = $submission;
continue;
}
// the act of sumbitting of assignment may be considered private - only graders will see it if specified
if (empty($CFG->assignment_showrecentsubmissions)) {
if (!array_key_exists($cm->id, $grader)) {
$grader[$cm->id] = has_capability('moodle/grade:viewall', get_context_instance(CONTEXT_MODULE, $cm->id));
}
if (!$grader[$cm->id]) {
continue;
}
}
$groupmode = groups_get_activity_groupmode($cm, $course);
if ($groupmode == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_MODULE, $cm->id))) {
if (isguestuser()) {
// shortcut - guest user does not belong into any group
continue;
}
if (is_null($modinfo->groups)) {
$modinfo->groups = groups_get_user_groups($course->id);
// load all my groups and cache it in modinfo
}
// this will be slow - show only users that share group with me in this cm
if (empty($modinfo->groups[$cm->id])) {
continue;
}
$usersgroups = groups_get_all_groups($course->id, $cm->userid, $cm->groupingid);
if (is_array($usersgroups)) {
$usersgroups = array_keys($usersgroups);
$interset = array_intersect($usersgroups, $modinfo->groups[$cm->id]);
if (empty($intersect)) {
continue;
}
}
}
$show[] = $submission;
}
if (empty($show)) {
return false;
}
print_headline(get_string('newsubmissions', 'assignment') . ':');
foreach ($show as $submission) {
$cm = $modinfo->cms[$submission->cmid];
$link = $CFG->wwwroot . '/mod/assignment/view.php?id=' . $cm->id;
print_recent_activity_note($submission->timemodified, $submission, $cm->name, $link, false, $viewfullnames);
}
return true;
}
示例6: elluminate_print_recent_activity
function elluminate_print_recent_activity($course, $isteacher, $timestart)
{
/// Given a course and a time, this module should find recent activity
/// that has occurred in Blackboard Collaborate activities and print it out.
/// Return true if there was output, or false is there was none.
global $CFG;
global $DB;
$content = false;
$meetings = NULL;
$select = "time > {$timestart} AND course = {$course->id} AND " . "module = 'elluminate' AND action = 'view.meeting'";
if (!($logs = $DB->get_records_select('log', $select, null, 'time ASC'))) {
return false;
}
foreach ($logs as $log) {
//Create a temp valid module structure (course,id)
$tempmod = new stdClass();
$tempmod->course = $log->course;
$tempmod->id = $log->info;
//Obtain the visible property from the instance
$modvisible = instance_is_visible($log->module, $tempmod);
//Only if the mod is visible
if ($modvisible) {
$sql = "SELECT e.name, u.firstname, u.lastname\n\t\t FROM {elluminate} e,\n\t\t {user} u" . "WHERE e.id = :elluminate\n \t\tAND u.id = :log";
$sql_params = array('elluminate' => $log->info, 'log' => $log->userid);
$meetings[$log->info] = $DB->get_record_sql($sql, $sql_params);
$meetings[$log->info]->time = $log->time;
$meetings[$log->info]->url = str_replace('&', '&', $log->url);
}
}
if ($meetings) {
print_headline(get_string('newsubmissions', 'assignment') . ':');
foreach ($meetings as $meeting) {
print_recent_activity_note($meeting->time, $meeting, $isteacher, stripslashes($meeting->name), $CFG->wwwroot . '/mod/elluminate/' . $meeting->url);
}
$content = true;
}
return $content;
}
示例7: forum_print_recent_activity
/**
* Given a course and a date, prints a summary of all the new
* messages posted in the course since that date
* @param object $course
* @param bool $viewfullnames capability
* @param int $timestart
* @return bool success
*/
function forum_print_recent_activity($course, $viewfullnames, $timestart)
{
global $CFG, $USER;
// do not use log table if possible, it may be huge and is expensive to join with other tables
if (!($posts = get_records_sql("SELECT p.*, f.type AS forumtype, d.forum, d.groupid,\n d.timestart, d.timeend, d.userid AS duserid,\n u.firstname, u.lastname, u.email, u.picture\n FROM {$CFG->prefix}forum_posts p\n JOIN {$CFG->prefix}forum_discussions d ON d.id = p.discussion\n JOIN {$CFG->prefix}forum f ON f.id = d.forum\n JOIN {$CFG->prefix}user u ON u.id = p.userid\n WHERE p.created > {$timestart} AND f.course = {$course->id}\n ORDER BY p.id ASC"))) {
// order by initial posting date
return false;
}
$modinfo =& get_fast_modinfo($course);
$groupmodes = array();
$cms = array();
$strftimerecent = get_string('strftimerecent');
$printposts = array();
foreach ($posts as $post) {
if (!isset($modinfo->instances['forum'][$post->forum])) {
// not visible
continue;
}
$cm = $modinfo->instances['forum'][$post->forum];
if (!$cm->uservisible) {
continue;
}
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
if (!has_capability('mod/forum:viewdiscussion', $context)) {
continue;
}
if (!empty($CFG->forum_enabletimedposts) and $USER->id != $post->duserid and ($post->timestart > 0 and $post->timestart > time() or $post->timeend > 0 and $post->timeend < time())) {
if (!has_capability('mod/forum:viewhiddentimedposts', $context)) {
continue;
}
}
$groupmode = groups_get_activity_groupmode($cm, $course);
if ($groupmode) {
if ($post->groupid == -1 or $groupmode == VISIBLEGROUPS or has_capability('moodle/site:accessallgroups', $context)) {
// oki (Open discussions have groupid -1)
} else {
// separate mode
if (isguestuser()) {
// shortcut
continue;
}
if (is_null($modinfo->groups)) {
$modinfo->groups = groups_get_user_groups($course->id);
// load all my groups and cache it in modinfo
}
if (!array_key_exists($post->groupid, $modinfo->groups[0])) {
continue;
}
}
}
$printposts[] = $post;
}
unset($posts);
if (!$printposts) {
return false;
}
print_headline(get_string('newforumposts', 'forum') . ':', 3);
echo "\n<ul class='unlist'>\n";
foreach ($printposts as $post) {
$subjectclass = empty($post->parent) ? ' bold' : '';
echo '<li><div class="head">' . '<div class="date">' . userdate($post->modified, $strftimerecent) . '</div>' . '<div class="name">' . fullname($post, $viewfullnames) . '</div>' . '</div>';
echo '<div class="info' . $subjectclass . '">';
if (empty($post->parent)) {
echo '"<a href="' . $CFG->wwwroot . '/mod/forum/discuss.php?d=' . $post->discussion . '">';
} else {
echo '"<a href="' . $CFG->wwwroot . '/mod/forum/discuss.php?d=' . $post->discussion . '&parent=' . $post->parent . '#p' . $post->id . '">';
}
$post->subject = break_up_long_words(format_string($post->subject, true));
echo $post->subject;
echo "</a>\"</div></li>\n";
}
echo "</ul>\n";
return true;
}
示例8: wiki_print_recent_activity
function wiki_print_recent_activity($course, $isteacher, $timestart)
{
/// Given a course and a time, this module should find recent activity
/// that has occurred in wiki activities and print it out.
/// Return true if there was output, or false is there was none.
global $CFG;
if (!($logs = get_records_select('log', 'time > \'' . $timestart . '\' AND ' . 'course = \'' . $course->id . '\' AND ' . 'module = \'wiki\' AND ' . 'action LIKE \'edit%\' ', 'time ASC'))) {
return false;
}
foreach ($logs as $log) {
//Create a temp valid module structure (course,id)
$tempmod = new Object();
$tempmod->course = $log->course;
$tempmod->id = $log->cmid;
//Obtain the visible property from the instance
$modvisible = instance_is_visible($log->module, $tempmod);
/// Process log->url and rebuild it here to properly clean the pagename - MDL-15896
$extractedpage = preg_replace('/^.*&page=/', '', $log->url);
$log->url = preg_replace('/page=.*$/', 'page=' . urlencode($extractedpage), $log->url);
//Only if the mod is visible
if ($modvisible) {
$wikis[$log->info] = wiki_log_info($log);
$wikis[$log->info]->pagename = $log->info;
$wikis[$log->info]->time = $log->time;
$wikis[$log->info]->url = str_replace('&', '&', $log->url);
}
}
if ($wikis) {
$content = true;
print_headline(get_string('updatedwikipages', 'wiki') . ':', 3);
foreach ($wikis as $wiki) {
print_recent_activity_note($wiki->time, $wiki, $wiki->pagename, $CFG->wwwroot . '/mod/wiki/' . $wiki->url);
}
}
return true;
// True if anything was printed, otherwise false
}
示例9: survey_print_recent_activity
function survey_print_recent_activity($course, $isteacher, $timestart)
{
global $CFG;
$content = false;
$surveys = NULL;
if (!($logs = get_records_select('log', 'time > \'' . $timestart . '\' AND ' . 'course = \'' . $course->id . '\' AND ' . 'module = \'survey\' AND ' . 'action = \'submit\' ', 'time ASC'))) {
return false;
}
foreach ($logs as $log) {
//Create a temp valid module structure (course,id)
$tempmod->course = $log->course;
$tempmod->id = $log->info;
//Obtain the visible property from the instance
$modvisible = instance_is_visible($log->module, $tempmod);
//Only if the mod is visible
if ($modvisible) {
$surveys[$log->id] = survey_log_info($log);
$surveys[$log->id]->time = $log->time;
$surveys[$log->id]->url = str_replace('&', '&', $log->url);
}
}
if ($surveys) {
$content = true;
print_headline(get_string('newsurveyresponses', 'survey') . ':');
foreach ($surveys as $survey) {
print_recent_activity_note($survey->time, $survey, $survey->name, $CFG->wwwroot . '/mod/survey/' . $survey->url);
}
}
return $content;
}
示例10: journal_print_recent_activity
function journal_print_recent_activity($course, $isteacher, $timestart)
{
global $CFG;
if (!empty($CFG->journal_showrecentactivity)) {
// Don't even bother
return false;
}
$content = false;
$journals = NULL;
if (!($logs = get_records_select('log', 'time > \'' . $timestart . '\' AND ' . 'course = \'' . $course->id . '\' AND ' . 'module = \'journal\' AND ' . '(action = \'add entry\' OR action = \'update entry\')', 'time ASC'))) {
return false;
}
foreach ($logs as $log) {
///Get journal info. I'll need it later
$j_log_info = journal_log_info($log);
//Create a temp valid module structure (course,id)
$tempmod->course = $log->course;
$tempmod->id = $j_log_info->id;
//Obtain the visible property from the instance
$modvisible = instance_is_visible($log->module, $tempmod);
//Only if the mod is visible
if ($modvisible) {
if (!isset($journals[$log->info])) {
$journals[$log->info] = $j_log_info;
$journals[$log->info]->time = $log->time;
$journals[$log->info]->url = str_replace('&', '&', $log->url);
}
}
}
if ($journals) {
$content = true;
print_headline(get_string('newjournalentries', 'journal') . ':');
foreach ($journals as $journal) {
print_recent_activity_note($journal->time, $journal, $journal->name, $CFG->wwwroot . '/mod/journal/' . $journal->url);
}
}
return $content;
}
示例11: chat_print_recent_activity
function chat_print_recent_activity($course, $viewfullnames, $timestart)
{
/// Given a course and a date, prints a summary of all chat rooms past and present
/// This function is called from course/lib.php: print_recent_activity()
global $CFG, $USER;
// this is approximate only, but it is really fast ;-)
$timeout = $CFG->chat_old_ping * 10;
if (!($mcms = get_records_sql("SELECT cm.id, MAX(chm.timestamp) AS lasttime\n FROM {$CFG->prefix}course_modules cm\n JOIN {$CFG->prefix}modules md ON md.id = cm.module\n JOIN {$CFG->prefix}chat ch ON ch.id = cm.instance\n JOIN {$CFG->prefix}chat_messages chm ON chm.chatid = ch.id\n WHERE chm.timestamp > {$timestart} AND ch.course = {$course->id} AND md.name = 'chat'\n GROUP BY cm.id\n ORDER BY lasttime ASC"))) {
return false;
}
$past = array();
$current = array();
$modinfo =& get_fast_modinfo($course);
// reference needed because we might load the groups
foreach ($mcms as $cmid => $mcm) {
if (!array_key_exists($cmid, $modinfo->cms)) {
continue;
}
$cm = $modinfo->cms[$cmid];
$cm->lasttime = $mcm->lasttime;
if (!$modinfo->cms[$cm->id]->uservisible) {
continue;
}
if (groups_get_activity_groupmode($cm) != SEPARATEGROUPS or has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_MODULE, $cm->id))) {
if ($timeout > time() - $cm->lasttime) {
$current[] = $cm;
} else {
$past[] = $cm;
}
continue;
}
if (is_null($modinfo->groups)) {
$modinfo->groups = groups_get_user_groups($course->id);
// load all my groups and cache it in modinfo
}
// verify groups in separate mode
if (!($mygroupids = $modinfo->groups[$cm->groupingid])) {
continue;
}
// ok, last post was not for my group - we have to query db to get last message from one of my groups
// only minor problem is that the order will not be correct
$mygroupids = implode(',', $mygroupids);
$cm->mygroupids = $mygroupids;
if (!($mcm = get_record_sql("SELECT cm.id, MAX(chm.timestamp) AS lasttime\n FROM {$CFG->prefix}course_modules cm\n JOIN {$CFG->prefix}chat ch ON ch.id = cm.instance\n JOIN {$CFG->prefix}chat_messages chm ON chm.chatid = ch.id\n WHERE chm.timestamp > {$timestart} AND cm.id = {$cm->id} AND\n (chm.groupid IN ({$mygroupids}) OR chm.groupid = 0)\n GROUP BY cm.id"))) {
continue;
}
$cm->lasttime = $mcm->lasttime;
if ($timeout > time() - $cm->lasttime) {
$current[] = $cm;
} else {
$past[] = $cm;
}
}
if (!$past and !$current) {
return false;
}
$strftimerecent = get_string('strftimerecent');
if ($past) {
print_headline(get_string('pastchats', 'chat') . ':');
foreach ($past as $cm) {
$link = $CFG->wwwroot . '/mod/chat/view.php?id=' . $cm->id;
$date = userdate($cm->lasttime, $strftimerecent);
echo '<div class="head"><div class="date">' . $date . '</div></div>';
echo '<div class="info"><a href="' . $link . '">' . format_string($cm->name, true) . '</a></div>';
}
}
if ($current) {
print_headline(get_string('currentchats', 'chat') . ':');
$oldest = floor((time() - $CFG->chat_old_ping) / 10) * 10;
// better db caching
$timeold = time() - $CFG->chat_old_ping;
$timeold = floor($timeold / 10) * 10;
// better db caching
$timeoldext = time() - $CFG->chat_old_ping * 10;
// JSless gui_basic needs much longer timeouts
$timeoldext = floor($timeoldext / 10) * 10;
// better db caching
$timeout = "AND (chu.version<>'basic' AND chu.lastping>{$timeold}) OR (chu.version='basic' AND chu.lastping>{$timeoldext})";
foreach ($current as $cm) {
//count users first
if (isset($cm->mygroupids)) {
$groupselect = "AND (chu.groupid IN ({$cm->mygroupids}) OR chu.groupid = 0)";
} else {
$groupselect = "";
}
if (!($users = get_records_sql("SELECT u.id, u.firstname, u.lastname, u.email, u.picture\n FROM {$CFG->prefix}course_modules cm\n JOIN {$CFG->prefix}chat ch ON ch.id = cm.instance\n JOIN {$CFG->prefix}chat_users chu ON chu.chatid = ch.id\n JOIN {$CFG->prefix}user u ON u.id = chu.userid\n WHERE cm.id = {$cm->id} {$timeout} {$groupselect}\n GROUP BY u.id, u.firstname, u.lastname, u.email, u.picture"))) {
}
$link = $CFG->wwwroot . '/mod/chat/view.php?id=' . $cm->id;
$date = userdate($cm->lasttime, $strftimerecent);
echo '<div class="head"><div class="date">' . $date . '</div></div>';
echo '<div class="info"><a href="' . $link . '">' . format_string($cm->name, true) . '</a></div>';
echo '<div class="userlist">';
if ($users) {
echo '<ul>';
foreach ($users as $user) {
echo '<li>' . fullname($user, $viewfullnames) . '</li>';
}
echo '</ul>';
}
echo '</div>';
//.........这里部分代码省略.........
示例12: oublog_print_recent_activity
/**
* Given a course and a time, this module should find recent activity
* that has occurred in newmodule activities and print it out.
* Return true if there was output, or false is there was none.
*
* @param object $course
* @param bool $isteacher
* @param int $timestart
* @return boolean true on success, false on failure.
**/
function oublog_print_recent_activity($course, $isteacher, $timestart)
{
global $CFG;
include_once 'locallib.php';
$sql = "SELECT i.oublogid, p.id AS postid, p.*, u.firstname, u.lastname, u.email, u.idnumber, i.userid\r\n FROM {$CFG->prefix}oublog_posts p\r\n INNER JOIN {$CFG->prefix}oublog_instances i ON p.oubloginstancesid = i.id\r\n INNER JOIN {$CFG->prefix}oublog b ON i.oublogid = b.id\r\n INNER JOIN {$CFG->prefix}user u ON i.userid = u.id\r\n WHERE b.course = {$course->id} AND p.deletedby IS NULL AND p.timeposted >= {$timestart} ";
if (!($rs = get_recordset_sql($sql))) {
return true;
}
$modinfo =& get_fast_modinfo($course);
$strftimerecent = get_string('strftimerecent');
print_headline(get_string('newblogposts', 'oublog') . ':', 3);
echo "\n<ul class='unlist'>\n";
while ($blog = rs_fetch_next_record($rs)) {
if (!isset($modinfo->instances['oublog'][$blog->oublogid])) {
// not visible
continue;
}
$cm = $modinfo->instances['oublog'][$blog->oublogid];
if (!$cm->uservisible) {
continue;
}
if (!has_capability('mod/oublog:view', get_context_instance(CONTEXT_MODULE, $cm->id))) {
continue;
}
if (!has_capability('mod/oublog:view', get_context_instance(CONTEXT_USER, $blog->userid))) {
continue;
}
$groupmode = oublog_get_activity_groupmode($cm, $course);
if ($groupmode) {
if ($blog->groupid && $groupmode != VISIBLEGROUPS) {
// separate mode
if (isguestuser()) {
// shortcut
continue;
}
if (is_null($modinfo->groups)) {
$modinfo->groups = groups_get_user_groups($course->id);
// load all my groups and cache it in modinfo
}
if (!array_key_exists($blog->groupid, $modinfo->groups[0])) {
continue;
}
}
}
echo '<li><div class="head">' . '<div class="date">' . oublog_date($blog->timeposted, $strftimerecent) . '</div>' . '<div class="name">' . fullname($blog) . '</div>' . '</div>';
echo '<div class="info">';
echo "<a href=\"{$CFG->wwwroot}/mod/oublog/viewpost.php?post={$blog->postid}\">";
echo break_up_long_words(format_string(empty($blog->title) ? $blog->message : $blog->title));
echo '</a>';
echo '</div>';
}
echo "</ul>\n";
rs_close($rs);
}
示例13: lightboxgallery_print_recent_activity
function lightboxgallery_print_recent_activity($course, $viewfullnames, $timestart)
{
global $CFG;
$sql = "SELECT c.*, l.name, u.firstname, u.lastname\n FROM {$CFG->prefix}lightboxgallery_comments c\n JOIN {$CFG->prefix}lightboxgallery l ON l.id = c.gallery\n JOIN {$CFG->prefix}user u ON u.id = c.userid\n WHERE c.timemodified > {$timestart} AND l.course = {$course->id}\n ORDER BY c.timemodified ASC";
if ($comments = get_records_sql($sql)) {
print_headline(get_string('newgallerycomments', 'lightboxgallery') . ':', 3);
echo '<ul class="unlist">';
$strftimerecent = get_string('strftimerecent');
foreach ($comments as $comment) {
$display = lightboxgallery_resize_text(trim(strip_tags($comment->comment)), MAX_COMMENT_PREVIEW);
echo '<li>' . ' <div class="head">' . ' <div class="date">' . userdate($comment->timemodified, $strftimerecent) . '</div>' . ' <div class="name">' . fullname($comment, $viewfullnames) . ' - ' . format_string($comment->name) . '</div>' . ' </div>' . ' <div class="info">' . ' "<a href="' . $CFG->wwwroot . '/mod/lightboxgallery/view.php?l=' . $comment->gallery . '#c' . $comment->id . '">' . $display . '</a>"' . ' </div>' . '</li>';
}
echo '</ul>';
}
return true;
}
示例14: wiki_print_recent_activity
function wiki_print_recent_activity($course, $isteacher, $timestart)
{
/// Given a course and a time, this module should find recent activity
/// that has occurred in wiki activities and print it out.
/// Return true if there was output, or false is there was none.
global $CFG;
$sql = "SELECT l.*, cm.instance FROM {$CFG->prefix}log l \n INNER JOIN {$CFG->prefix}course_modules cm ON l.cmid = cm.id \n WHERE l.time > '{$timestart}' AND l.course = {$course->id} \n AND l.module = 'wiki' AND action LIKE 'edit%'\n ORDER BY l.time ASC";
if (!($logs = get_records_sql($sql))) {
return false;
}
foreach ($logs as $log) {
//Create a temp valid module structure (course,id)
$tempmod = new Object();
$tempmod->course = $log->course;
$tempmod->id = $log->instance;
//Obtain the visible property from the instance
$modvisible = instance_is_visible($log->module, $tempmod);
//Only if the mod is visible
if ($modvisible) {
$wikis[$log->info] = wiki_log_info($log);
$wikis[$log->info]->pagename = $log->info;
$wikis[$log->info]->time = $log->time;
$wikis[$log->info]->url = str_replace('&', '&', $log->url);
}
}
if (isset($wikis)) {
$content = true;
print_headline(get_string('updatedwikipages', 'wiki') . ':', 3);
foreach ($wikis as $wiki) {
print_recent_activity_note($wiki->time, $wiki, $wiki->pagename, $CFG->wwwroot . '/mod/wiki/' . $wiki->url);
}
}
return true;
// True if anything was printed, otherwise false
}
示例15: dimdim_print_recent_activity
function dimdim_print_recent_activity($course, $isteacher, $timestart)
{
/// Given a course and a date, prints a summary of all dimdim rooms
/// that currently have people in them.
/// This function is called from course/lib.php: print_recent_activity()
global $CFG;
$timeold = time() - $CFG->dimdim_old_ping;
$lastpingsearch = $CFG->dimdim_method == 'sockets' ? '' : 'AND cu.lastping > \'' . $timeold . '\'';
if (!($dimdimusers = get_records_sql("SELECT u.id, cu.dimdimid, u.firstname, u.lastname\n FROM {$CFG->prefix}dimdim_users as cu,\n {$CFG->prefix}dimdim as ch,\n {$CFG->prefix}user as u\n WHERE cu.userid = u.id\n AND cu.dimdimid = ch.id {$lastpingsearch}\n AND ch.course = '{$course->id}'\n ORDER BY cu.dimdimid ASC"))) {
return false;
}
$isteacher = isteacher($course->id);
$outputstarted = false;
$current = 0;
foreach ($dimdimusers as $dimdimuser) {
if ($current != $dimdimuser->dimdimid) {
if ($current) {
echo '</ul></div>';
// room
$current = 0;
}
if ($dimdim = get_record('dimdim', 'id', $dimdimuser->dimdimid)) {
if (!($isteacher or instance_is_visible('dimdim', $dimdim))) {
// dimdim hidden to students
continue;
}
if (!$outputstarted) {
print_headline(get_string('currentdimdims', 'dimdim') . ':');
$outputstarted = true;
}
echo '<div class="room"><p class="head"><a href="' . $CFG->wwwroot . '/mod/dimdim/view.php?c=' . $dimdim->id . '">' . format_string($dimdim->name, true) . '</a></p><ul>';
}
$current = $dimdimuser->dimdimid;
}
$fullname = fullname($dimdimuser, $isteacher);
echo '<li class="info name">' . $fullname . '</li>';
}
if ($current) {
echo '</ul></div>';
// room
}
return true;
}