Sesostris Vieira
10 years ago
11 changed files with 565 additions and 0 deletions
@ -0,0 +1,43 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* Capabilities |
||||
|
* |
||||
|
* @package report_outline |
||||
|
* @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
defined('MOODLE_INTERNAL') || die(); |
||||
|
|
||||
|
$capabilities = array( |
||||
|
|
||||
|
'report/messages:view' => array( |
||||
|
'riskbitmask' => RISK_PERSONAL, |
||||
|
'captype' => 'read', |
||||
|
'contextlevel' => CONTEXT_COURSE, |
||||
|
'archetypes' => array( |
||||
|
'teacher' => CAP_ALLOW, |
||||
|
'editingteacher' => CAP_ALLOW, |
||||
|
'manager' => CAP_ALLOW |
||||
|
), |
||||
|
|
||||
|
'clonepermissionsfrom' => 'coursereport/messages:view', |
||||
|
) |
||||
|
); |
||||
|
|
||||
|
|
@ -0,0 +1,32 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* Post installation and migration code. |
||||
|
* |
||||
|
* @package report |
||||
|
* @subpackage messages |
||||
|
* @copyright 2011 Petr Skoda {@link http://skodak.org} |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
defined('MOODLE_INTERNAL') || die; |
||||
|
|
||||
|
function xmldb_report_messages_install() { |
||||
|
global $DB; |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,87 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* Display user messages reports for a course (totals) |
||||
|
* |
||||
|
* @package report |
||||
|
* @subpackage messages |
||||
|
* @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
require('../../config.php'); |
||||
|
require_once($CFG->dirroot.'/report/messages/locallib.php'); |
||||
|
|
||||
|
$id = required_param('id',PARAM_INT); // course id |
||||
|
|
||||
|
$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST); |
||||
|
|
||||
|
$PAGE->set_url('/report/messages/index.php', array('id'=>$id)); |
||||
|
$PAGE->set_pagelayout('report'); |
||||
|
|
||||
|
require_login($course); |
||||
|
$context = context_course::instance($course->id); |
||||
|
require_capability('report/messages:view', $context); |
||||
|
|
||||
|
add_to_log($course->id, 'course', 'report messages', "report/messages/index.php?id=$course->id", $course->id); |
||||
|
|
||||
|
$strviewdetail = get_string('viewdetail', 'report_messages'); |
||||
|
$stractivityreport = get_string('pluginname', 'report_messages'); |
||||
|
$stractivity = get_string('activity'); |
||||
|
$strlast = get_string('lastaccess'); |
||||
|
$strreports = get_string('reports'); |
||||
|
$strviews = get_string('views'); |
||||
|
$strrelatedblogentries = get_string('relatedblogentries', 'blog'); |
||||
|
|
||||
|
$PAGE->set_title($course->shortname .': '. $stractivityreport); |
||||
|
$PAGE->set_heading($course->fullname); |
||||
|
|
||||
|
echo $OUTPUT->header(); |
||||
|
echo $OUTPUT->heading(format_string($course->fullname)); |
||||
|
|
||||
|
$messagestable = new html_table(); |
||||
|
$messagestable->attributes['class'] = 'generaltable boxaligncenter'; |
||||
|
$messagestable->cellpadding = 5; |
||||
|
$messagestable->id = 'messagestable'; |
||||
|
$messagestable->head = array(get_string('fullname'), get_string('totalsended', 'report_messages'), |
||||
|
get_string('totalreceived','report_messages'), $strviewdetail); |
||||
|
$messagestable->align = array('left', 'right', 'right', 'center'); |
||||
|
$messagestable->data = array(); |
||||
|
|
||||
|
$userlist = get_enrolled_users($context, '', 0, 'u.id'); |
||||
|
list($in_user, $param_users) = $DB->get_in_or_equal(array_keys($userlist), SQL_PARAMS_QM); |
||||
|
$fullname = $DB->sql_fullname('u.firstname', 'u.lastname'); |
||||
|
|
||||
|
$sql = " |
||||
|
select u.id, $fullname as fullname, u.picture, u.firstname, u.lastname, u.imagealt, u.email, |
||||
|
(select count(*) from mdl_message where useridfrom=u.id and useridto<>u.id and useridto $in_user) as totalsend, |
||||
|
(select count(*) from mdl_message where useridto=u.id and useridfrom<>u.id and useridfrom $in_user) as totalreceive |
||||
|
from mdl_user u |
||||
|
where u.id $in_user |
||||
|
"; |
||||
|
|
||||
|
$data = $DB->get_records_sql($sql, array_merge($param_users,$param_users,$param_users)); |
||||
|
|
||||
|
foreach ($data as $user) { |
||||
|
$upic = $OUTPUT->user_picture($user); |
||||
|
$ulink = "<a href=\"{$CFG->wwwroot}/user/view.php?id={$user->id}&course={$course->id}\">{$upic}</a>"; |
||||
|
$link = "<a href=\"$CFG->wwwroot/report/messages/user.php?id=$user->id&course=$course->id\">$strviewdetail</a>"; |
||||
|
$messagestable->data[] = array($ulink.' '.$user->fullname, $user->totalsend, $user->totalreceive, $link); |
||||
|
} |
||||
|
|
||||
|
echo html_writer::table($messagestable); |
||||
|
echo $OUTPUT->footer(); |
@ -0,0 +1,36 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* Strings |
||||
|
* |
||||
|
* @package report |
||||
|
* @subpackage messages |
||||
|
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com} |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
$string['messages:view'] = 'View activity report'; |
||||
|
$string['page-report-messages-x'] = 'Any messages report'; |
||||
|
$string['page-report-messages-index'] = 'Course messages report'; |
||||
|
$string['page-report-messages-user'] = 'User course messages report'; |
||||
|
$string['pluginname'] = 'Messages report'; |
||||
|
$string['reporttitle'] = 'Message report to user {$a->fullname}'; |
||||
|
$string['exchangedmessages'] = '{$a->userlink} {$a->total_messages} messages exchanged with {$a->fullname}'; |
||||
|
$string['message'] = 'Message body'; |
||||
|
$string['viewdetail'] = 'View details'; |
||||
|
$string['totalsended'] = 'Total sended messages'; |
||||
|
$string['totalreceived'] = 'Total received messages'; |
@ -0,0 +1,34 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* Strings |
||||
|
* |
||||
|
* @package report |
||||
|
* @subpackage messages |
||||
|
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com} |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
$string['messages:view'] = 'Ver relatório de mensagens'; |
||||
|
$string['page-report-messages-x'] = 'Um relatório de mensagens'; |
||||
|
$string['page-report-messages-index'] = 'Relatório de mensagens do curso'; |
||||
|
$string['page-report-messages-user'] = 'Relatório de mensagens do usuário no curso'; |
||||
|
$string['pluginname'] = 'Relatório de Mensagens'; |
||||
|
$string['reporttitle'] = 'Relatório de mensagens do usuário {$a->fullname}'; |
||||
|
$string['exchangedmessages'] = '{$a->userlink} {$a->total_messages} mensagens trocadas com {$a->fullname}'; |
||||
|
$string['message'] = 'Texto da mensagem'; |
||||
|
$string['viewdetail'] = 'Ver detalhes'; |
@ -0,0 +1,105 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* This file contains public API of messages report |
||||
|
* |
||||
|
* @package report |
||||
|
* @subpackage messages |
||||
|
* @copyright 2009 Sam Hemelryk |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
defined('MOODLE_INTERNAL') || die; |
||||
|
|
||||
|
/** |
||||
|
* This function extends the course navigation with the report items |
||||
|
* |
||||
|
* @param navigation_node $navigation The navigation node to extend |
||||
|
* @param stdClass $course The course to object for the report |
||||
|
* @param stdClass $context The context of the course |
||||
|
*/ |
||||
|
function report_messages_extend_navigation_course($navigation, $course, $context) { |
||||
|
if (has_capability('report/messages:view', $context)) { |
||||
|
$url = new moodle_url('/report/messages/index.php', array('id'=>$course->id)); |
||||
|
$navigation->add(get_string('pluginname', 'report_messages'), $url, navigation_node::TYPE_SETTING, null, null, new pix_icon('i/report', '')); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* This function extends the course navigation with the report items |
||||
|
* |
||||
|
* @param navigation_node $navigation The navigation node to extend |
||||
|
* @param stdClass $user |
||||
|
* @param stdClass $course The course to object for the report |
||||
|
*/ |
||||
|
function report_messages_extend_navigation_user($navigation, $user, $course) { |
||||
|
if (report_messages_can_access_user_report($user, $course)) { |
||||
|
$url = new moodle_url('/report/messages/user.php', array('id'=>$user->id, 'course'=>$course->id)); |
||||
|
$navigation->add(get_string('pluginname', 'report_messages'), $url); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Is current user allowed to access this report |
||||
|
* |
||||
|
* @private defined in lib.php for performance reasons |
||||
|
* |
||||
|
* @param stdClass $user |
||||
|
* @param stdClass $course |
||||
|
* @return bool |
||||
|
*/ |
||||
|
function report_messages_can_access_user_report($user, $course) { |
||||
|
global $USER; |
||||
|
|
||||
|
$coursecontext = context_course::instance($course->id); |
||||
|
$personalcontext = context_user::instance($user->id); |
||||
|
|
||||
|
if (has_capability('report/messages:view', $coursecontext)) { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext)) { |
||||
|
if ($course->showreports and (is_viewing($coursecontext, $user) or is_enrolled($coursecontext, $user))) { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
} else if ($user->id == $USER->id) { |
||||
|
if ($course->showreports and (is_viewing($coursecontext, $USER) or is_enrolled($coursecontext, $USER))) { |
||||
|
return true; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Return a list of page types |
||||
|
* @param string $pagetype current page type |
||||
|
* @param stdClass $parentcontext Block's parent context |
||||
|
* @param stdClass $currentcontext Current context of block |
||||
|
* @return array |
||||
|
*/ |
||||
|
function report_messages_page_type_list($pagetype, $parentcontext, $currentcontext) { |
||||
|
$array = array( |
||||
|
'*' => get_string('page-x', 'pagetype'), |
||||
|
'report-*' => get_string('page-report-x', 'pagetype'), |
||||
|
'report-messages-*' => get_string('page-report-messages-x', 'report_messages'), |
||||
|
'report-messages-index' => get_string('page-report-messages-index', 'report_messages'), |
||||
|
'report-messages-user' => get_string('page-report-messages-user', 'report_messages') |
||||
|
); |
||||
|
return $array; |
||||
|
} |
@ -0,0 +1,55 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* This file contains functions used by the outline reports |
||||
|
* |
||||
|
* @package report |
||||
|
* @subpackage outline |
||||
|
* @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
defined('MOODLE_INTERNAL') || die; |
||||
|
|
||||
|
require_once(dirname(__FILE__).'/lib.php'); |
||||
|
require_once($CFG->dirroot.'/course/lib.php'); |
||||
|
|
||||
|
function report_outline_print_row($mod, $instance, $result) { |
||||
|
global $OUTPUT, $CFG; |
||||
|
|
||||
|
$image = "<img src=\"" . $OUTPUT->pix_url('icon', $mod->modname) . "\" class=\"icon\" alt=\"$mod->modfullname\" />"; |
||||
|
|
||||
|
echo "<tr>"; |
||||
|
echo "<td valign=\"top\">$image</td>"; |
||||
|
echo "<td valign=\"top\" style=\"width:300\">"; |
||||
|
echo " <a title=\"$mod->modfullname\""; |
||||
|
echo " href=\"$CFG->wwwroot/mod/$mod->modname/view.php?id=$mod->id\">".format_string($instance->name,true)."</a></td>"; |
||||
|
echo "<td> </td>"; |
||||
|
echo "<td valign=\"top\">"; |
||||
|
if (isset($result->info)) { |
||||
|
echo "$result->info"; |
||||
|
} else { |
||||
|
echo "<p style=\"text-align:center\">-</p>"; |
||||
|
} |
||||
|
echo "</td>"; |
||||
|
echo "<td> </td>"; |
||||
|
if (!empty($result->time)) { |
||||
|
$timeago = format_time(time() - $result->time); |
||||
|
echo "<td valign=\"top\" style=\"white-space: nowrap\">".userdate($result->time)." ($timeago)</td>"; |
||||
|
} |
||||
|
echo "</tr>"; |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
#page-report-outline-index td.numviews {text-align:right;} |
||||
|
#page-report-outline-index tr.section {text-align: center;} |
||||
|
#page-report-outline-index td.lastaccess {font-size: 0.8em;} |
||||
|
|
||||
|
#page-report-outline-user .section .content {margin-left: 30px;margin-right: 30px;} |
||||
|
#page-report-outline-user .section h2 {margin-top: 0;} |
||||
|
#page-report-outline-user .section {margin-left: 30px;margin-right: 30px;margin-bottom: 20px;} |
||||
|
#page-report-outline-user .section {border-width:1px;border-style:solid;padding:10px;} |
@ -0,0 +1,124 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* Display user activity reports for a course (totals) |
||||
|
* |
||||
|
* @package report |
||||
|
* @subpackage outline |
||||
|
* @copyright 1999 onwards Martin Dougiamas http://dougiamas.com |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
require('../../config.php'); |
||||
|
require_once('locallib.php'); |
||||
|
|
||||
|
$userid = required_param('id', PARAM_INT); |
||||
|
$courseid = required_param('course', PARAM_INT); |
||||
|
|
||||
|
$user = $DB->get_record('user', array('id'=>$userid, 'deleted'=>0), '*', MUST_EXIST); |
||||
|
$course = $DB->get_record('course', array('id'=>$courseid), '*', MUST_EXIST); |
||||
|
|
||||
|
$coursecontext = context_course::instance($course->id); |
||||
|
$personalcontext = context_user::instance($user->id); |
||||
|
|
||||
|
if ($USER->id != $user->id and has_capability('moodle/user:viewuseractivitiesreport', $personalcontext) |
||||
|
and !is_enrolled($coursecontext, $USER) and is_enrolled($coursecontext, $user)) { |
||||
|
//TODO: do not require parents to be enrolled in courses - this is a hack! |
||||
|
require_login(); |
||||
|
$PAGE->set_course($course); |
||||
|
} else { |
||||
|
require_login($course); |
||||
|
} |
||||
|
|
||||
|
if (!report_messages_can_access_user_report($user, $course, true)) { |
||||
|
require_capability('report/messages:view', $coursecontext); |
||||
|
} |
||||
|
|
||||
|
add_to_log($course->id, 'course', 'report messages', "report/messages/user.php?id=$user->id&course=$course->id", $course->id); |
||||
|
|
||||
|
$PAGE->set_pagelayout('admin'); |
||||
|
$PAGE->set_url('/report/messages/user.php', array('id'=>$user->id, 'course'=>$course->id)); |
||||
|
$PAGE->navigation->extend_for_user($user); |
||||
|
$PAGE->navigation->set_userid_for_parent_checks($user->id); // see MDL-25805 for reasons and for full commit reference for reversal when fixed. |
||||
|
$PAGE->set_title($course->shortname.': '.get_string('pluginname', 'report_messages')); |
||||
|
$PAGE->set_heading($course->fullname); |
||||
|
echo $OUTPUT->header(); |
||||
|
echo '<h2>'.get_string('reporttitle','report_messages',array('fullname'=>fullname($user))).'</h2>'; |
||||
|
|
||||
|
$from = $DB->get_records_sql('select distinct m.useridfrom as id from {message} m where m.useridto = ? and m.useridfrom <> ?', array($user->id, $user->id)); |
||||
|
$to = $DB->get_records_sql('select distinct m.useridto as id from {message} m where m.useridfrom = ? and m.useridto <> ?', array($user->id, $user->id)); |
||||
|
$contacts = array(); |
||||
|
$sqlfullname = $DB->sql_fullname('u.firstname','u.lastname'); |
||||
|
$sql = " |
||||
|
select u.id, $sqlfullname as fullname, count(*) as total_messages, u.picture, u.firstname, u.lastname, u.imagealt, u.email |
||||
|
from {user} u, {message} m |
||||
|
where u.id = ? and |
||||
|
((m.useridfrom = ? and m.useridto = ?) or |
||||
|
(m.useridfrom = ? and m.useridto = ?)) |
||||
|
group by u.id, u.username, u.firstname, u.lastname, u.email |
||||
|
"; |
||||
|
|
||||
|
foreach ($from as $u) { |
||||
|
if (is_enrolled($coursecontext, $u)) { |
||||
|
$contacts[$u->id] = $DB->get_record_sql($sql, array($u->id, $u->id, $user->id, $user->id, $u->id)); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
foreach ($to as $u) { |
||||
|
if (is_enrolled($coursecontext, $u)) { |
||||
|
$contacts[$u->id] = $DB->get_record_sql($sql, array($u->id, $u->id, $user->id, $user->id, $u->id)); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if (empty($contacts)) { |
||||
|
echo $OUTPUT->notification(get_string('nothingtodisplay')); |
||||
|
} else { |
||||
|
$sqlfromname = $DB->sql_fullname('fu.firstname','fu.lastname'); |
||||
|
$sqltoname = $DB->sql_fullname('tu.firstname','tu.lastname'); |
||||
|
$sql = " |
||||
|
select m.timecreated, $sqlfromname as fromuser, $sqltoname as touser, m.fullmessage, m.fullmessageformat |
||||
|
from {message} m |
||||
|
inner join {user} fu on fu.id = m.useridfrom |
||||
|
inner join {user} tu on tu.id = m.useridto |
||||
|
where (m.useridfrom = ? and m.useridto = ?) or |
||||
|
(m.useridfrom = ? and m.useridto = ?) |
||||
|
order by m.timecreated desc |
||||
|
"; |
||||
|
|
||||
|
foreach ($contacts as $contact) { |
||||
|
echo $OUTPUT->box_start(); |
||||
|
$upic = $OUTPUT->user_picture($contact); |
||||
|
$ulink = "<a href=\"{$CFG->wwwroot}/user/view.php?id={$contact->id}&course={$course->id}\">{$upic}</a>"; |
||||
|
$a = array('userlink'=>$ulink, 'total_messages'=>$contact->total_messages, 'fullname'=>$contact->fullname); |
||||
|
$head = get_string('exchangedmessages', 'report_messages', $a); |
||||
|
echo "<h3>$head</h3>"; |
||||
|
|
||||
|
$table = new html_table(); |
||||
|
$tabl->attributes['class'] = 'generaltable boxaligncenter'; |
||||
|
$table->head = array(get_string('date'), get_string('from'), get_string('to'), get_string('message', 'report_messages')); |
||||
|
$messages = $DB->get_records_sql($sql, array($user->id, $contact->id, $contact->id, $user->id)); |
||||
|
$table->data = array(); |
||||
|
foreach ($messages as $message) { |
||||
|
$table->data[] = array(userdate($message->timecreated), $message->fromuser, $message->touser, format_text($message->fullmessage, $message->fullmessageformat)); |
||||
|
} |
||||
|
echo html_writer::table($table); |
||||
|
echo $OUTPUT->box_end(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
echo $OUTPUT->footer(); |
@ -0,0 +1,30 @@ |
|||||
|
<?php |
||||
|
// This file is part of Moodle - http://moodle.org/ |
||||
|
// |
||||
|
// Moodle is free software: you can redistribute it and/or modify |
||||
|
// it under the terms of the GNU General Public License as published by |
||||
|
// the Free Software Foundation, either version 3 of the License, or |
||||
|
// (at your option) any later version. |
||||
|
// |
||||
|
// Moodle is distributed in the hope that it will be useful, |
||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
// GNU General Public License for more details. |
||||
|
// |
||||
|
// You should have received a copy of the GNU General Public License |
||||
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
/** |
||||
|
* Version info |
||||
|
* |
||||
|
* @package report |
||||
|
* @subpackage messages |
||||
|
* @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) |
||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
||||
|
*/ |
||||
|
|
||||
|
defined('MOODLE_INTERNAL') || die; |
||||
|
|
||||
|
$plugin->version = 2013050100; // The current plugin version (Date: YYYYMMDDXX) |
||||
|
$plugin->requires = 2013050100; // Requires this Moodle version |
||||
|
$plugin->component = 'report_messages'; // Full name of the plugin (used for diagnostics) |
Loading…
Reference in new issue