mirror of
https://github.com/moodle/moodle.git
synced 2025-08-07 09:56:38 +02:00
"MDL-20346, comments api for data module"
This commit is contained in:
parent
3e5769b5fe
commit
e998effa3d
8 changed files with 119 additions and 154 deletions
|
@ -85,6 +85,7 @@ $string['cannotmanualctrack'] = 'Activity does not provide manual completion tra
|
||||||
$string['cannotmapfield'] = 'Mapping collision detected - two fields maps to the same grade item $a';
|
$string['cannotmapfield'] = 'Mapping collision detected - two fields maps to the same grade item $a';
|
||||||
$string['cannotmarktopic'] = 'Could not mark that topic for this course';
|
$string['cannotmarktopic'] = 'Could not mark that topic for this course';
|
||||||
$string['cannotmetacourse'] = 'Cannot not add the selected course to this meta course!';
|
$string['cannotmetacourse'] = 'Cannot not add the selected course to this meta course!';
|
||||||
|
$string['cannotmigratedatacomments'] = 'Cannot migrate data module comments';
|
||||||
$string['cannotmoverolewithid'] = 'Cannot move role with ID $a';
|
$string['cannotmoverolewithid'] = 'Cannot move role with ID $a';
|
||||||
$string['cannotmodulename'] = 'Cannot get the module name in build navigation';
|
$string['cannotmodulename'] = 'Cannot get the module name in build navigation';
|
||||||
$string['cannotmoduletype'] = 'Cannot get the module type in build navigation';
|
$string['cannotmoduletype'] = 'Cannot get the module type in build navigation';
|
||||||
|
|
|
@ -229,7 +229,22 @@ function backup_data_comments($bf,$preferences,$recordid){
|
||||||
global $CFG, $DB;
|
global $CFG, $DB;
|
||||||
|
|
||||||
$status = true;
|
$status = true;
|
||||||
$data_comments = $DB->get_records("data_comments", array("recordid"=>$recordid));
|
|
||||||
|
$lastrecord = $DB->get_record_sql('SELECT d.id AS dataid, d.course AS course FROM {data} d, {data_records} r
|
||||||
|
WHERE r.dataid = d.id AND r.id = ?', array($recordid));
|
||||||
|
|
||||||
|
$params = array();
|
||||||
|
$params[] = $recordid;
|
||||||
|
$sql = 'SELECT d.id, d.course FROM {data_records} r, {data} d WHERE r.dataid = d.id AND r.id=?';
|
||||||
|
$result = $DB->get_record_sql($sql, $params);
|
||||||
|
if ($cm = get_coursemodule_from_instance('data', $result->id, $result->course)) {
|
||||||
|
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
||||||
|
}
|
||||||
|
$data_comments = $DB->get_records('comments', array(
|
||||||
|
'itemid'=>$recordid,
|
||||||
|
'commentarea'=>'database_entry',
|
||||||
|
'contextid'=>$context->id)
|
||||||
|
);
|
||||||
|
|
||||||
//If there is submissions
|
//If there is submissions
|
||||||
if ($data_comments) {
|
if ($data_comments) {
|
||||||
|
@ -239,14 +254,16 @@ function backup_data_comments($bf,$preferences,$recordid){
|
||||||
foreach ($data_comments as $com_sub) {
|
foreach ($data_comments as $com_sub) {
|
||||||
//Start submission
|
//Start submission
|
||||||
$status =fwrite ($bf,start_tag("COMMENT",7,true));
|
$status =fwrite ($bf,start_tag("COMMENT",7,true));
|
||||||
|
|
||||||
//Print submission contents
|
//Print submission contents
|
||||||
fwrite ($bf,full_tag("ID",8,false,$com_sub->id));
|
fwrite ($bf,full_tag("ID",8,false,$com_sub->id));
|
||||||
fwrite ($bf,full_tag("RECORDID",8,false,$com_sub->recordid));
|
|
||||||
fwrite ($bf,full_tag("USERID",8,false,$com_sub->userid));
|
fwrite ($bf,full_tag("USERID",8,false,$com_sub->userid));
|
||||||
fwrite ($bf,full_tag("CONTENT",8,false,$com_sub->content));
|
fwrite ($bf,full_tag("CONTENT",8,false,$com_sub->content));
|
||||||
fwrite ($bf,full_tag("CREATED",8,false,$com_sub->created));
|
fwrite ($bf,full_tag("COMMENTAREA",8,false,'database_entry'));
|
||||||
fwrite ($bf,full_tag("MODIFIED",8,false,$com_sub->modified));
|
fwrite ($bf,full_tag("FORMAT",8,false,$com_sub->format));
|
||||||
|
fwrite ($bf,full_tag("TIMECREATED",8,false,$com_sub->timecreated));
|
||||||
//End submission
|
//End submission
|
||||||
|
|
||||||
$status =fwrite ($bf,end_tag("COMMENT",7,true));
|
$status =fwrite ($bf,end_tag("COMMENT",7,true));
|
||||||
}
|
}
|
||||||
//Write end tag
|
//Write end tag
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<XMLDB PATH="mod/data/db" VERSION="20090420" COMMENT="XMLDB file for Moodle mod/data"
|
<XMLDB PATH="mod/data/db" VERSION="20091006" COMMENT="XMLDB file for Moodle mod/data"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
|
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
|
||||||
>
|
>
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
<KEY NAME="dataid" TYPE="foreign" FIELDS="dataid" REFTABLE="data" REFFIELDS="id" PREVIOUS="primary"/>
|
<KEY NAME="dataid" TYPE="foreign" FIELDS="dataid" REFTABLE="data" REFFIELDS="id" PREVIOUS="primary"/>
|
||||||
</KEYS>
|
</KEYS>
|
||||||
</TABLE>
|
</TABLE>
|
||||||
<TABLE NAME="data_content" COMMENT="the content introduced in each record/fields" PREVIOUS="data_records" NEXT="data_comments">
|
<TABLE NAME="data_content" COMMENT="the content introduced in each record/fields" PREVIOUS="data_records" NEXT="data_ratings">
|
||||||
<FIELDS>
|
<FIELDS>
|
||||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="fieldid"/>
|
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="fieldid"/>
|
||||||
<FIELD NAME="fieldid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="recordid"/>
|
<FIELD NAME="fieldid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="recordid"/>
|
||||||
|
@ -103,22 +103,7 @@
|
||||||
<KEY NAME="fieldid" TYPE="foreign" FIELDS="fieldid" REFTABLE="data_fields" REFFIELDS="id" PREVIOUS="recordid"/>
|
<KEY NAME="fieldid" TYPE="foreign" FIELDS="fieldid" REFTABLE="data_fields" REFFIELDS="id" PREVIOUS="recordid"/>
|
||||||
</KEYS>
|
</KEYS>
|
||||||
</TABLE>
|
</TABLE>
|
||||||
<TABLE NAME="data_comments" COMMENT="to comment data records" PREVIOUS="data_content" NEXT="data_ratings">
|
<TABLE NAME="data_ratings" COMMENT="to rate data records" PREVIOUS="data_content">
|
||||||
<FIELDS>
|
|
||||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="userid"/>
|
|
||||||
<FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="recordid"/>
|
|
||||||
<FIELD NAME="recordid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="userid" NEXT="content"/>
|
|
||||||
<FIELD NAME="content" TYPE="text" LENGTH="small" NOTNULL="true" SEQUENCE="false" PREVIOUS="recordid" NEXT="format"/>
|
|
||||||
<FIELD NAME="format" TYPE="int" LENGTH="2" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="content" NEXT="created"/>
|
|
||||||
<FIELD NAME="created" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="format" NEXT="modified"/>
|
|
||||||
<FIELD NAME="modified" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="created"/>
|
|
||||||
</FIELDS>
|
|
||||||
<KEYS>
|
|
||||||
<KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="recordid"/>
|
|
||||||
<KEY NAME="recordid" TYPE="foreign" FIELDS="recordid" REFTABLE="data_records" REFFIELDS="id" PREVIOUS="primary"/>
|
|
||||||
</KEYS>
|
|
||||||
</TABLE>
|
|
||||||
<TABLE NAME="data_ratings" COMMENT="to rate data records" PREVIOUS="data_comments">
|
|
||||||
<FIELDS>
|
<FIELDS>
|
||||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="userid"/>
|
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="userid"/>
|
||||||
<FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="recordid"/>
|
<FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="recordid"/>
|
||||||
|
|
|
@ -180,6 +180,53 @@ function xmldb_data_upgrade($oldversion) {
|
||||||
upgrade_mod_savepoint($result, 2009042000, 'data');
|
upgrade_mod_savepoint($result, 2009042000, 'data');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($result && $oldversion < 2009111700) {
|
||||||
|
require_once($CFG->libdir . '/commentlib.php');
|
||||||
|
|
||||||
|
/// Define table data_comments to be dropped
|
||||||
|
$table = new xmldb_table('data_comments');
|
||||||
|
|
||||||
|
/// Conditionally launch drop table for data_comments
|
||||||
|
if ($dbman->table_exists($table)) {
|
||||||
|
$sql = 'SELECT d.id AS dataid,
|
||||||
|
d.course AS courseid,
|
||||||
|
r.id AS itemid,
|
||||||
|
c.content AS comment,
|
||||||
|
c.format AS format,
|
||||||
|
c.created AS timemodified
|
||||||
|
FROM {data_comments} c, {data_records} r, {data} d
|
||||||
|
WHERE c.recordid=r.id AND r.dataid=d.id';
|
||||||
|
/// move data comments to new comments table
|
||||||
|
if ($rs = $DB->get_recordset_sql($sql)) {
|
||||||
|
$error = false;
|
||||||
|
foreach($rs as $res) {
|
||||||
|
if ($cm = get_coursemodule_from_instance('data', $res->dataid, $res->courseid)) {
|
||||||
|
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
||||||
|
$cmt = new stdclass;
|
||||||
|
$cmt->contextid = $context->id;
|
||||||
|
$cmt->courseid = $res->courseid;
|
||||||
|
$cmt->area = 'database_entry';
|
||||||
|
$cmt->itemid = $res->itemid;
|
||||||
|
$comment = new comment($cmt);
|
||||||
|
try {
|
||||||
|
$cmt = $comment->add($res->comment, $res->format);
|
||||||
|
} catch (comment_exception $e) {
|
||||||
|
add_to_log($res->courseid, 'comments', 'add', '', 'Cannot migrate data module comment with ID# '.$res->old_id);
|
||||||
|
$error = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (empty($error)) {
|
||||||
|
$dbman->drop_table($table);
|
||||||
|
} else {
|
||||||
|
print_error('cannotmigratedatacomments');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// data savepoint reached
|
||||||
|
upgrade_mod_savepoint($result, 2009111700, 'data');
|
||||||
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
151
mod/data/lib.php
151
mod/data/lib.php
|
@ -1139,8 +1139,8 @@ function data_get_participants($dataid) {
|
||||||
WHERE r.dataid = ? AND u.id = r.userid", array($dataid));
|
WHERE r.dataid = ? AND u.id = r.userid", array($dataid));
|
||||||
|
|
||||||
$comments = $DB->get_records_sql("SELECT DISTINCT u.id, u.id
|
$comments = $DB->get_records_sql("SELECT DISTINCT u.id, u.id
|
||||||
FROM {user} u, {data_records} r, {data_comments} c
|
FROM {user} u, {data_records} r, {comments} c
|
||||||
WHERE r.dataid = ? AND u.id = r.userid AND r.id = c.recordid", array($dataid));
|
WHERE r.dataid = ? AND u.id = r.userid AND r.id = c.itemid AND c.commentarea='database_entry'", array($dataid));
|
||||||
|
|
||||||
$ratings = $DB->get_records_sql("SELECT DISTINCT u.id, u.id
|
$ratings = $DB->get_records_sql("SELECT DISTINCT u.id, u.id
|
||||||
FROM {user} u, {data_records} r, {data_ratings} a
|
FROM {user} u, {data_records} r, {data_ratings} a
|
||||||
|
@ -1277,8 +1277,18 @@ function data_print_template($template, $records, $data, $search='', $page=0, $r
|
||||||
|
|
||||||
$patterns[]='##comments##';
|
$patterns[]='##comments##';
|
||||||
if (($template == 'listtemplate') && ($data->comments)) {
|
if (($template == 'listtemplate') && ($data->comments)) {
|
||||||
$comments = $DB->count_records('data_comments', array('recordid'=>$record->id));
|
|
||||||
$replacement[] = '<a href="view.php?rid='.$record->id.'#comments">'.get_string('commentsn','data', $comments).'</a>';
|
if (!empty($CFG->usecomments)) {
|
||||||
|
require_once($CFG->libdir . '/commentlib.php');
|
||||||
|
$cmt = new stdclass;
|
||||||
|
$modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
|
||||||
|
$cmt->area = 'database_entry';
|
||||||
|
$cmt->context = $context;
|
||||||
|
$cmt->itemid = $record->id;
|
||||||
|
$cmt->showcount = true;
|
||||||
|
$comment = new comment($cmt);
|
||||||
|
$replacement[] = $comment->init(true);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$replacement[] = '';
|
$replacement[] = '';
|
||||||
}
|
}
|
||||||
|
@ -1304,8 +1314,17 @@ function data_print_template($template, $records, $data, $search='', $page=0, $r
|
||||||
* Printing Ratings Form *
|
* Printing Ratings Form *
|
||||||
*********************************/
|
*********************************/
|
||||||
if (($template == 'singletemplate') && ($data->comments)) { //prints ratings options
|
if (($template == 'singletemplate') && ($data->comments)) { //prints ratings options
|
||||||
|
if (!empty($CFG->usecomments)) {
|
||||||
data_print_comments($data, $record, $page);
|
require_once($CFG->libdir . '/commentlib.php');
|
||||||
|
$cmt = new stdclass;
|
||||||
|
$modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
|
||||||
|
$cmt->area = 'database_entry';
|
||||||
|
$cmt->context = $context;
|
||||||
|
$cmt->itemid = $record->id;
|
||||||
|
$cmt->showcount = true;
|
||||||
|
$comment = new comment($cmt);
|
||||||
|
$comment->init(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1668,120 +1687,6 @@ function data_get_ratings($recordid, $sort="u.firstname ASC") {
|
||||||
ORDER BY $sort", array($recordid));
|
ORDER BY $sort", array($recordid));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Prints all comments + a text box for adding additional comment
|
|
||||||
*
|
|
||||||
* @global object
|
|
||||||
* @global object
|
|
||||||
* @param object $data
|
|
||||||
* @param object $record
|
|
||||||
* @param int $page
|
|
||||||
* @param bool $mform
|
|
||||||
* @return void Output is echo'd
|
|
||||||
*/
|
|
||||||
function data_print_comments($data, $record, $page=0, $mform=false) {
|
|
||||||
global $CFG, $DB;
|
|
||||||
|
|
||||||
$cm = get_coursemodule_from_instance('data', $data->id);
|
|
||||||
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
|
||||||
$cancomment = has_capability('mod/data:comment', $context);
|
|
||||||
echo '<a name="comments"></a>';
|
|
||||||
|
|
||||||
if ($comments = $DB->get_records('data_comments', array('recordid'=>$record->id))) {
|
|
||||||
foreach ($comments as $comment) {
|
|
||||||
data_print_comment($data, $comment, $page);
|
|
||||||
}
|
|
||||||
echo '<br />';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isloggedin() or has_capability('moodle/legacy:guest', get_context_instance(CONTEXT_SYSTEM), 0, false) or !$cancomment) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$editor = optional_param('addcomment', 0, PARAM_BOOL);
|
|
||||||
|
|
||||||
if (!$mform and !$editor) {
|
|
||||||
echo '<div class="newcomment" style="text-align:center">';
|
|
||||||
echo '<a href="view.php?d='.$data->id.'&rid='.$record->id.'&mode=single&addcomment=1">'.get_string('addcomment', 'data').'</a>';
|
|
||||||
echo '</div>';
|
|
||||||
} else {
|
|
||||||
if (!$mform) {
|
|
||||||
require_once('comment_form.php');
|
|
||||||
$mform = new mod_data_comment_form('comment.php');
|
|
||||||
$mform->set_data(array('mode'=>'add', 'page'=>$page, 'rid'=>$record->id));
|
|
||||||
}
|
|
||||||
echo '<div class="newcomment" style="text-align:center">';
|
|
||||||
$mform->display();
|
|
||||||
echo '</div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* prints a single comment entry
|
|
||||||
*
|
|
||||||
* @global object
|
|
||||||
* @global object
|
|
||||||
* @global object
|
|
||||||
* @uses CONTEXT_MODULE
|
|
||||||
* @param object $data
|
|
||||||
* @param string $comment
|
|
||||||
* @param int $page
|
|
||||||
* @return void Output is echo'd
|
|
||||||
*/
|
|
||||||
function data_print_comment($data, $comment, $page=0) {
|
|
||||||
global $USER, $CFG, $DB, $OUTPUT;
|
|
||||||
|
|
||||||
$cm = get_coursemodule_from_instance('data', $data->id);
|
|
||||||
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
|
||||||
|
|
||||||
$stredit = get_string('edit');
|
|
||||||
$strdelete = get_string('delete');
|
|
||||||
|
|
||||||
$user = $DB->get_record('user', array('id'=>$comment->userid));
|
|
||||||
|
|
||||||
echo '<table cellspacing="0" align="center" width="50%" class="datacomment forumpost">';
|
|
||||||
|
|
||||||
echo '<tr class="header"><td class="picture left">';
|
|
||||||
echo $OUTPUT->user_picture(moodle_user_picture::make($user, $data->course));
|
|
||||||
echo '</td>';
|
|
||||||
|
|
||||||
echo '<td class="topic starter" align="left"><div class="author">';
|
|
||||||
$fullname = fullname($user, has_capability('moodle/site:viewfullnames', $context));
|
|
||||||
$by = new object();
|
|
||||||
$by->name = '<a href="'.$CFG->wwwroot.'/user/view.php?id='.
|
|
||||||
$user->id.'&course='.$data->course.'">'.$fullname.'</a>';
|
|
||||||
$by->date = userdate($comment->modified);
|
|
||||||
print_string('bynameondate', 'data', $by);
|
|
||||||
echo '</div></td></tr>';
|
|
||||||
|
|
||||||
echo '<tr><td class="left side">';
|
|
||||||
if ($groups = groups_get_all_groups($data->course, $comment->userid, $cm->groupingid)) {
|
|
||||||
print_group_picture($groups, $data->course, false, false, true);
|
|
||||||
} else {
|
|
||||||
echo ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Actual content
|
|
||||||
|
|
||||||
echo '</td><td class="content" align="left">'."\n";
|
|
||||||
|
|
||||||
// Print whole message
|
|
||||||
echo format_text($comment->content, $comment->format);
|
|
||||||
|
|
||||||
// Commands
|
|
||||||
|
|
||||||
echo '<div class="commands">';
|
|
||||||
if (data_isowner($comment->recordid) or has_capability('mod/data:managecomments', $context)) {
|
|
||||||
echo '<a href="'.$CFG->wwwroot.'/mod/data/comment.php?rid='.$comment->recordid.'&mode=edit&commentid='.$comment->id.'&page='.$page.'">'.$stredit.'</a>';
|
|
||||||
echo '| <a href="'.$CFG->wwwroot.'/mod/data/comment.php?rid='.$comment->recordid.'&mode=delete&commentid='.$comment->id.'&page='.$page.'">'.$strdelete.'</a>';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '</div>';
|
|
||||||
|
|
||||||
echo '</td></tr></table>'."\n\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For Participantion Reports
|
* For Participantion Reports
|
||||||
*
|
*
|
||||||
|
@ -2576,7 +2481,7 @@ function data_reset_userdata($data) {
|
||||||
// delete entries if requested
|
// delete entries if requested
|
||||||
if (!empty($data->reset_data)) {
|
if (!empty($data->reset_data)) {
|
||||||
$DB->delete_records_select('data_ratings', "recordid IN ($allrecordssql)", array($data->courseid));
|
$DB->delete_records_select('data_ratings', "recordid IN ($allrecordssql)", array($data->courseid));
|
||||||
$DB->delete_records_select('data_comments', "recordid IN ($allrecordssql)", array($data->courseid));
|
$DB->delete_records_select('comments', "itemid IN ($allrecordssql) AND commentarea='database_entry'", array($data->courseid));
|
||||||
$DB->delete_records_select('data_content', "recordid IN ($allrecordssql)", array($data->courseid));
|
$DB->delete_records_select('data_content', "recordid IN ($allrecordssql)", array($data->courseid));
|
||||||
$DB->delete_records_select('data_records', "dataid IN ($alldatassql)", array($data->courseid));
|
$DB->delete_records_select('data_records', "dataid IN ($alldatassql)", array($data->courseid));
|
||||||
|
|
||||||
|
@ -2609,7 +2514,7 @@ function data_reset_userdata($data) {
|
||||||
if (array_key_exists($record->userid, $notenrolled) or !$record->userexists or $record->userdeleted
|
if (array_key_exists($record->userid, $notenrolled) or !$record->userexists or $record->userdeleted
|
||||||
or !has_capability('moodle/course:view', $course_context , $record->userid)) {
|
or !has_capability('moodle/course:view', $course_context , $record->userid)) {
|
||||||
$DB->delete_records('data_ratings', array('recordid'=>$record->id));
|
$DB->delete_records('data_ratings', array('recordid'=>$record->id));
|
||||||
$DB->delete_records('data_comments', array('recordid'=>$record->id));
|
$DB->delete_records('comments', array('itemid'=>$record->id, 'commentarea'=>'database_entry'));
|
||||||
$DB->delete_records('data_content', array('recordid'=>$record->id));
|
$DB->delete_records('data_content', array('recordid'=>$record->id));
|
||||||
$DB->delete_records('data_records', array('id'=>$record->id));
|
$DB->delete_records('data_records', array('id'=>$record->id));
|
||||||
// HACK: this is ugly - the recordid should be before the fieldid!
|
// HACK: this is ugly - the recordid should be before the fieldid!
|
||||||
|
@ -2645,7 +2550,7 @@ function data_reset_userdata($data) {
|
||||||
|
|
||||||
// remove all comments
|
// remove all comments
|
||||||
if (!empty($data->reset_data_comments)) {
|
if (!empty($data->reset_data_comments)) {
|
||||||
$DB->delete_records_select('data_comments', "recordid IN ($allrecordssql)", array($data->courseid));
|
$DB->delete_records_select('comments', "itemid IN ($allrecordssql) AND commentarea='database_entry'", array($data->courseid));
|
||||||
$status[] = array('component'=>$componentstr, 'item'=>get_string('deleteallcomments'), 'error'=>false);
|
$status[] = array('component'=>$componentstr, 'item'=>get_string('deleteallcomments'), 'error'=>false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -265,7 +265,7 @@ function data_records_restore_mods ($old_data_id, $new_data_id, $info, $restore)
|
||||||
|
|
||||||
$status = $status and data_content_restore_mods ($oldid, $newid, $old_data_id, $new_data_id, $rec_info, $restore);
|
$status = $status and data_content_restore_mods ($oldid, $newid, $old_data_id, $new_data_id, $rec_info, $restore);
|
||||||
$status = $status and data_ratings_restore_mods ($oldid, $newid, $info, $rec_info);
|
$status = $status and data_ratings_restore_mods ($oldid, $newid, $info, $rec_info);
|
||||||
$status = $status and data_comments_restore_mods ($oldid, $newid, $info, $rec_info);
|
$status = $status and data_comments_restore_mods ($oldid, $newid, $old_data_id, $new_data_id, $info, $rec_info);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$status = false;
|
$status = false;
|
||||||
|
@ -397,11 +397,13 @@ function data_ratings_restore_mods ($oldid, $newid, $info, $rec_info) {
|
||||||
return $status;
|
return $status;
|
||||||
}
|
}
|
||||||
|
|
||||||
function data_comments_restore_mods ($oldid, $newid, $info, $rec_info) {
|
function data_comments_restore_mods ($oldid, $newid, $old_data_id, $new_data_id, $info, $rec_info) {
|
||||||
global $CFG, $DB;
|
global $CFG, $DB;
|
||||||
|
|
||||||
$status = true;
|
$status = true;
|
||||||
|
|
||||||
|
$newmodcontext = restore_get_new_context($restore, 'course_modules', CONTEXT_MODULE, $old_gid);
|
||||||
|
|
||||||
$comments= $rec_info['#']['COMMENTS']['0']['#']['COMMENT'];
|
$comments= $rec_info['#']['COMMENTS']['0']['#']['COMMENT'];
|
||||||
|
|
||||||
if (empty($comments)) { // no comments to restore
|
if (empty($comments)) { // no comments to restore
|
||||||
|
@ -412,12 +414,17 @@ function data_comments_restore_mods ($oldid, $newid, $info, $rec_info) {
|
||||||
|
|
||||||
$com_info = $comments[$i];
|
$com_info = $comments[$i];
|
||||||
|
|
||||||
$comment -> recordid = $newid;
|
$comment->itemid = $newid;
|
||||||
$comment -> userid = backup_todb($com_info['#']['USERID']['0']['#']);
|
$comment->contextid = $newmodcontext->id;
|
||||||
$comment -> content = backup_todb($com_info['#']['CONTENT']['0']['#']);
|
$comment->userid = backup_todb($com_info['#']['USERID']['0']['#']);
|
||||||
$comment -> created = backup_todb($com_info['#']['CREATED']['0']['#']);
|
$comment->content = backup_todb($com_info['#']['CONTENT']['0']['#']);
|
||||||
$comment -> modified = backup_todb($com_info['#']['MODIFIED']['0']['#']);
|
$comment->commentarea = backup_todb($com_info['#']['COMMENTAREA']['0']['#']);
|
||||||
$DB->insert_record("data_comments", $comment);
|
$comment->timecreated = backup_todb($com_info['#']['TIMECREATED']['0']['#']);
|
||||||
|
$user = backup_getid($restore->backup_unique_code,"user",$comment->userid);
|
||||||
|
if ($user) {
|
||||||
|
$comment->userid = $user->new_id;
|
||||||
|
}
|
||||||
|
$DB->insert_record("comments", $comment);
|
||||||
}
|
}
|
||||||
return $status;
|
return $status;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
// This fragment is called by /admin/index.php
|
// This fragment is called by /admin/index.php
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
$module->version = 2009042000;
|
$module->version = 2009111700;
|
||||||
$module->requires = 2009041700; // Requires this Moodle version
|
$module->requires = 2009041700; // Requires this Moodle version
|
||||||
$module->cron = 60;
|
$module->cron = 60;
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,9 @@
|
||||||
|
|
||||||
require_course_login($course, true, $cm);
|
require_course_login($course, true, $cm);
|
||||||
|
|
||||||
|
require_once($CFG->libdir . '/commentlib.php');
|
||||||
|
comment::js();
|
||||||
|
|
||||||
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
||||||
require_capability('mod/data:viewentry', $context);
|
require_capability('mod/data:viewentry', $context);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue