在作业中插入额外文本的 Moodle 作业功能
Moodle Assignment functionality to insert extra text in assignments
许多大学都有蓝卡计划,允许有特殊学习困难 (SpLD) 的学生用蓝卡标记他们的作业,因此导师会给予适当的考虑。
我们需要一种方法让学生更容易地用蓝卡标记他们的工作,我想出了以下脚本,它进入 Moodle 站点管理中的附加 HTML 部分,并与 Moodle 分配功能一起使用(请参阅前面的 post 以获得 )。
首先,学生单击添加蓝卡的按钮,在提交评论字段中插入带有 "Blue Card" 字样的评论。提交表单时,JavaScript在评分table中查找评论,并在状态栏中添加标志,提醒导师审阅评论。然后导师可以显示评论并看到单词 "Blue Card"(这是阅读障碍评分指南的 link)。
/* MOODLE ASSIGNMENT BLUE CARD */
var MoodleAssignBlueCardButton = '<input type="button" id="mabluecard" value="Flag with Blue Card" class="bluecard"/> <a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" title="What is the Blue Card scheme?">What\'s this?</a><br/>';
if (!document.getElementsByClassName('submissionstatustable')[0]) {
/* do nothing */
} else {
var assignTable = document.getElementsByClassName('submissionstatustable')[0];
assignTable.insertAdjacentHTML('beforebegin', MoodleAssignBlueCardButton);
}
/* EVENT LISTENER FOR MOODLE ASSIGNMENT BLUE CARD BUTTON */
if (!document.getElementById('mabluecard')) {
/* do nothing */
} else {
document.getElementById("mabluecard").addEventListener('click', function () {
var commentbox = document.getElementsByClassName('comment-area')[0];
var textarea = commentbox.getElementsByTagName('textarea')[0];
if (!textarea.value) {
textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>');
} else if (textarea.value == 'Add a comment...') {
textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>');
} else {
textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>: ' + textarea.value);
}
/* save the comment */
document.getElementsByClassName("comment-link")[0].click();
var saveLink = document.getElementsByClassName("fd")[0].getElementsByTagName("a")[0];
saveLink.click();
});
}
/* flag the Blue Card submission in the Grading Table */
if (!document.getElementsByClassName('gradingtable')[0]) {
/* do nothing */
} else {
var table = document.getElementsByClassName('gradingtable')[0];
var tbody = table.getElementsByTagName('tbody')[0];
var comments = tbody.getElementsByClassName('c10');
for (var i=0, len=comments.length; i<len; i++){
if (comments[i].innerHTML.includes('Comments')){
thisRow = comments[i].parentNode;
thisRow.style.backgroundColor = '#ffffcc';
statusCell = thisRow.getElementsByClassName("c5")[0];
statusCell.innerHTML += ' <div style="background-color: #99bbff">Student has added comments, please review</div>';
}
}
}
注意:提供的代码 'as is' 没有任何关于它是否适合用途的承诺,也没有任何维护或支持的承诺。
(also posted on our team blog)
更新:为了让它在 Internet Explorer 11 中工作,我必须进行以下调整:
/* flag the Blue Card submission in the Grading Table */
if (!document.getElementsByClassName('gradingtable')[0]) {
/* do nothing */
} else {
var table = document.getElementsByClassName('gradingtable')[0];
var tbody = table.getElementsByTagName('tbody')[0];
var comments = tbody.getElementsByClassName('c10');
for (var i=0, len=comments.length; i<len; i++){
if (comments[i].innerText.search('Comments') > -1){
thisRow = comments[i].parentNode;
alert('thisRow ' + thisRow);
thisRow.style.backgroundColor = '#ffffcc';
nameLink = thisRow.getElementsByTagName("a")[1];
nameLink.insertAdjacentHTML('afterend', ' <div style="background-color: #99bbff">Student has added comments, please review</div>');
}
}
}
还需要以下 CSS 才能使 "Add Blue Card" 按钮变为蓝色:
.bluecard {
background-color: rgba(0, 0, 255, 1) !important;
color: #fff;
padding: 6px;
border-radius: 6px;
}
这是因为 includes()
method and the innerHTML()
method 在 IE 中不起作用。
许多大学都有蓝卡计划,允许有特殊学习困难 (SpLD) 的学生用蓝卡标记他们的作业,因此导师会给予适当的考虑。
我们需要一种方法让学生更容易地用蓝卡标记他们的工作,我想出了以下脚本,它进入 Moodle 站点管理中的附加 HTML 部分,并与 Moodle 分配功能一起使用(请参阅前面的 post 以获得
首先,学生单击添加蓝卡的按钮,在提交评论字段中插入带有 "Blue Card" 字样的评论。提交表单时,JavaScript在评分table中查找评论,并在状态栏中添加标志,提醒导师审阅评论。然后导师可以显示评论并看到单词 "Blue Card"(这是阅读障碍评分指南的 link)。
/* MOODLE ASSIGNMENT BLUE CARD */
var MoodleAssignBlueCardButton = '<input type="button" id="mabluecard" value="Flag with Blue Card" class="bluecard"/> <a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" title="What is the Blue Card scheme?">What\'s this?</a><br/>';
if (!document.getElementsByClassName('submissionstatustable')[0]) {
/* do nothing */
} else {
var assignTable = document.getElementsByClassName('submissionstatustable')[0];
assignTable.insertAdjacentHTML('beforebegin', MoodleAssignBlueCardButton);
}
/* EVENT LISTENER FOR MOODLE ASSIGNMENT BLUE CARD BUTTON */
if (!document.getElementById('mabluecard')) {
/* do nothing */
} else {
document.getElementById("mabluecard").addEventListener('click', function () {
var commentbox = document.getElementsByClassName('comment-area')[0];
var textarea = commentbox.getElementsByTagName('textarea')[0];
if (!textarea.value) {
textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>');
} else if (textarea.value == 'Add a comment...') {
textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>');
} else {
textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>: ' + textarea.value);
}
/* save the comment */
document.getElementsByClassName("comment-link")[0].click();
var saveLink = document.getElementsByClassName("fd")[0].getElementsByTagName("a")[0];
saveLink.click();
});
}
/* flag the Blue Card submission in the Grading Table */
if (!document.getElementsByClassName('gradingtable')[0]) {
/* do nothing */
} else {
var table = document.getElementsByClassName('gradingtable')[0];
var tbody = table.getElementsByTagName('tbody')[0];
var comments = tbody.getElementsByClassName('c10');
for (var i=0, len=comments.length; i<len; i++){
if (comments[i].innerHTML.includes('Comments')){
thisRow = comments[i].parentNode;
thisRow.style.backgroundColor = '#ffffcc';
statusCell = thisRow.getElementsByClassName("c5")[0];
statusCell.innerHTML += ' <div style="background-color: #99bbff">Student has added comments, please review</div>';
}
}
}
注意:提供的代码 'as is' 没有任何关于它是否适合用途的承诺,也没有任何维护或支持的承诺。
(also posted on our team blog)
更新:为了让它在 Internet Explorer 11 中工作,我必须进行以下调整:
/* flag the Blue Card submission in the Grading Table */
if (!document.getElementsByClassName('gradingtable')[0]) {
/* do nothing */
} else {
var table = document.getElementsByClassName('gradingtable')[0];
var tbody = table.getElementsByTagName('tbody')[0];
var comments = tbody.getElementsByClassName('c10');
for (var i=0, len=comments.length; i<len; i++){
if (comments[i].innerText.search('Comments') > -1){
thisRow = comments[i].parentNode;
alert('thisRow ' + thisRow);
thisRow.style.backgroundColor = '#ffffcc';
nameLink = thisRow.getElementsByTagName("a")[1];
nameLink.insertAdjacentHTML('afterend', ' <div style="background-color: #99bbff">Student has added comments, please review</div>');
}
}
}
还需要以下 CSS 才能使 "Add Blue Card" 按钮变为蓝色:
.bluecard {
background-color: rgba(0, 0, 255, 1) !important;
color: #fff;
padding: 6px;
border-radius: 6px;
}
这是因为 includes()
method and the innerHTML()
method 在 IE 中不起作用。