mirror of
https://github.com/PlagiarismCheck/moodle-plagiarism_pchkorg.git
synced 2024-12-22 12:10:08 +00:00
Add new filters for assignment
This commit is contained in:
parent
3917e133c4
commit
17bcf5747f
59
.phpcs
59
.phpcs
@ -1,59 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of the Moodle Plugin CI package.
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*
|
|
||||||
* Copyright (c) 2017 Blackboard Inc. (http://www.blackboard.com)
|
|
||||||
* License http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$header = <<<'EOF'
|
|
||||||
This file is part of the Moodle Plugin CI package.
|
|
||||||
|
|
||||||
For the full copyright and license information, please view the LICENSE
|
|
||||||
file that was distributed with this source code.
|
|
||||||
|
|
||||||
Copyright (c) 2018 Blackboard Inc. (http://www.blackboard.com)
|
|
||||||
License http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
||||||
EOF;
|
|
||||||
|
|
||||||
return PhpCsFixer\Config::create()
|
|
||||||
->setRiskyAllowed(true)
|
|
||||||
->setRules([
|
|
||||||
'@Symfony' => true,
|
|
||||||
'@Symfony:risky' => true,
|
|
||||||
'array_syntax' => ['syntax' => 'short'],
|
|
||||||
'combine_consecutive_unsets' => true,
|
|
||||||
'combine_consecutive_issets' => true,
|
|
||||||
'general_phpdoc_annotation_remove' => ['expectedException', 'expectedExceptionMessage', 'expectedExceptionMessageRegExp'],
|
|
||||||
'header_comment' => ['header' => $header],
|
|
||||||
'heredoc_to_nowdoc' => true,
|
|
||||||
'no_extra_consecutive_blank_lines' => ['break', 'continue', 'extra', 'return', 'throw', 'use', 'parenthesis_brace_block', 'square_brace_block', 'curly_brace_block'],
|
|
||||||
'no_short_echo_tag' => true,
|
|
||||||
'no_unreachable_default_argument_value' => true,
|
|
||||||
'no_useless_else' => true,
|
|
||||||
'no_useless_return' => true,
|
|
||||||
'ordered_imports' => true,
|
|
||||||
'php_unit_strict' => true,
|
|
||||||
'phpdoc_add_missing_param_annotation' => true,
|
|
||||||
'phpdoc_order' => true,
|
|
||||||
'semicolon_after_instruction' => true,
|
|
||||||
'strict_comparison' => true,
|
|
||||||
'strict_param' => true,
|
|
||||||
'binary_operator_spaces' => ['align_equals' => true, 'align_double_arrow' => true],
|
|
||||||
'align_multiline_comment' => true,
|
|
||||||
'yoda_style' => false,
|
|
||||||
'compact_nullable_typehint' => true,
|
|
||||||
'native_function_invocation' => false,
|
|
||||||
])
|
|
||||||
->setFinder(
|
|
||||||
PhpCsFixer\Finder::create()
|
|
||||||
->exclude('tests/Fixture')
|
|
||||||
->exclude('moodle')
|
|
||||||
->exclude('moodledata')
|
|
||||||
->name('moodle-plugin-ci')
|
|
||||||
->in(__DIR__)
|
|
||||||
);
|
|
@ -84,6 +84,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
* @param $authorhash
|
* @param $authorhash
|
||||||
* @param $cousereid
|
* @param $cousereid
|
||||||
* @param $assignmentid
|
* @param $assignmentid
|
||||||
|
* @param $assignmentname
|
||||||
* @param $submissionid
|
* @param $submissionid
|
||||||
* @param $attachmentid
|
* @param $attachmentid
|
||||||
* @param $content
|
* @param $content
|
||||||
@ -96,6 +97,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
$authorhash,
|
$authorhash,
|
||||||
$cousereid,
|
$cousereid,
|
||||||
$assignmentid,
|
$assignmentid,
|
||||||
|
$assignmentname,
|
||||||
$submissionid,
|
$submissionid,
|
||||||
$attachmentid,
|
$attachmentid,
|
||||||
$content,
|
$content,
|
||||||
@ -114,6 +116,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
$authorhash,
|
$authorhash,
|
||||||
$cousereid,
|
$cousereid,
|
||||||
$assignmentid,
|
$assignmentid,
|
||||||
|
$assignmentname,
|
||||||
$submissionid,
|
$submissionid,
|
||||||
$attachmentid,
|
$attachmentid,
|
||||||
$content,
|
$content,
|
||||||
@ -153,6 +156,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
* @param $authorhash
|
* @param $authorhash
|
||||||
* @param $cousereid
|
* @param $cousereid
|
||||||
* @param $assignmentid
|
* @param $assignmentid
|
||||||
|
* @param $assignmentname
|
||||||
* @param $submissionid
|
* @param $submissionid
|
||||||
* @param $attachmentid
|
* @param $attachmentid
|
||||||
* @param $content
|
* @param $content
|
||||||
@ -165,6 +169,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
$authorhash,
|
$authorhash,
|
||||||
$cousereid,
|
$cousereid,
|
||||||
$assignmentid,
|
$assignmentid,
|
||||||
|
$assignmentname,
|
||||||
$submissionid,
|
$submissionid,
|
||||||
$attachmentid,
|
$attachmentid,
|
||||||
$content,
|
$content,
|
||||||
@ -179,6 +184,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
$body .= $this->get_part('hash', $authorhash, $boundary);
|
$body .= $this->get_part('hash', $authorhash, $boundary);
|
||||||
$body .= $this->get_part('course_id', $cousereid, $boundary);
|
$body .= $this->get_part('course_id', $cousereid, $boundary);
|
||||||
$body .= $this->get_part('assignment_id', $assignmentid, $boundary);
|
$body .= $this->get_part('assignment_id', $assignmentid, $boundary);
|
||||||
|
$body .= $this->get_part('assignment_name', $assignmentname, $boundary);
|
||||||
$body .= $this->get_part('submission_id', $submissionid, $boundary);
|
$body .= $this->get_part('submission_id', $submissionid, $boundary);
|
||||||
$body .= $this->get_part('attachment_id', $attachmentid, $boundary);
|
$body .= $this->get_part('attachment_id', $attachmentid, $boundary);
|
||||||
$body .= $this->get_part('filename', $filename, $boundary);
|
$body .= $this->get_part('filename', $filename, $boundary);
|
||||||
@ -196,16 +202,24 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send text to the service for check.
|
* Send text for originality check.
|
||||||
*
|
*
|
||||||
|
* @param $authorhash
|
||||||
|
* @param $cousereid
|
||||||
|
* @param $assignmentid
|
||||||
|
* @param $assignmentname
|
||||||
|
* @param $submissionid
|
||||||
|
* @param $attachmentid
|
||||||
* @param $content
|
* @param $content
|
||||||
* @param $mime
|
* @param $mime
|
||||||
* @param $filename
|
* @param $filename
|
||||||
|
*
|
||||||
* @return |null
|
* @return |null
|
||||||
*/
|
*/
|
||||||
public function send_text(
|
public function send_text(
|
||||||
$cousereid,
|
$cousereid,
|
||||||
$assignmentid,
|
$assignmentid,
|
||||||
|
$assignmentname,
|
||||||
$submissionid,
|
$submissionid,
|
||||||
$attachmentid,
|
$attachmentid,
|
||||||
$content,
|
$content,
|
||||||
@ -222,6 +236,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
$boundary,
|
$boundary,
|
||||||
$cousereid,
|
$cousereid,
|
||||||
$assignmentid,
|
$assignmentid,
|
||||||
|
$assignmentname,
|
||||||
$submissionid,
|
$submissionid,
|
||||||
$attachmentid,
|
$attachmentid,
|
||||||
$content,
|
$content,
|
||||||
@ -327,9 +342,14 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build body for http-request.
|
* Build HTTP body of request.
|
||||||
*
|
*
|
||||||
* @param $boundary
|
* @param $boundary
|
||||||
|
* @param $cousereid
|
||||||
|
* @param $assignmentid
|
||||||
|
* @param $assignmentname
|
||||||
|
* @param $submissionid
|
||||||
|
* @param $attachmentid
|
||||||
* @param $content
|
* @param $content
|
||||||
* @param $mime
|
* @param $mime
|
||||||
* @param $filename
|
* @param $filename
|
||||||
@ -339,6 +359,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
$boundary,
|
$boundary,
|
||||||
$cousereid,
|
$cousereid,
|
||||||
$assignmentid,
|
$assignmentid,
|
||||||
|
$assignmentname,
|
||||||
$submissionid,
|
$submissionid,
|
||||||
$attachmentid,
|
$attachmentid,
|
||||||
$content,
|
$content,
|
||||||
@ -354,6 +375,7 @@ class plagiarism_pchkorg_api_provider {
|
|||||||
$body .= $this->get_part('skip_percentage_words_validation', '1', $boundary);
|
$body .= $this->get_part('skip_percentage_words_validation', '1', $boundary);
|
||||||
$body .= $this->get_part('course_id', $cousereid, $boundary);
|
$body .= $this->get_part('course_id', $cousereid, $boundary);
|
||||||
$body .= $this->get_part('assignment_id', $assignmentid, $boundary);
|
$body .= $this->get_part('assignment_id', $assignmentid, $boundary);
|
||||||
|
$body .= $this->get_part('assignment_name', $assignmentname, $boundary);
|
||||||
$body .= $this->get_part('submission_id', $submissionid, $boundary);
|
$body .= $this->get_part('submission_id', $submissionid, $boundary);
|
||||||
$body .= $this->get_part('attachment_id', $attachmentid, $boundary);
|
$body .= $this->get_part('attachment_id', $attachmentid, $boundary);
|
||||||
$body .= $this->get_part('lms', 'moodle', $boundary);
|
$body .= $this->get_part('lms', 'moodle', $boundary);
|
||||||
|
@ -66,13 +66,13 @@ class plagiarism_pchkorg_config_model {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Check if plugin is enable for some specific module.
|
* Get value for search setting
|
||||||
* Result is static.
|
|
||||||
*
|
*
|
||||||
* @param $module
|
* @param $module
|
||||||
|
* @param $name
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function get_min_percent_for_module($module) {
|
public function get_filter_for_module($module, $name) {
|
||||||
global $DB;
|
global $DB;
|
||||||
|
|
||||||
static $resultmap = array();
|
static $resultmap = array();
|
||||||
@ -80,21 +80,17 @@ class plagiarism_pchkorg_config_model {
|
|||||||
if (!array_key_exists($module, $resultmap)) {
|
if (!array_key_exists($module, $resultmap)) {
|
||||||
$configs = $DB->get_records('plagiarism_pchkorg_config', array(
|
$configs = $DB->get_records('plagiarism_pchkorg_config', array(
|
||||||
'cm' => $module,
|
'cm' => $module,
|
||||||
'name' => 'pchkorg_min_percent'
|
'name' => $name
|
||||||
));
|
));
|
||||||
|
|
||||||
$minpercent = null;
|
$value = null;
|
||||||
foreach ($configs as $record) {
|
foreach ($configs as $record) {
|
||||||
switch ($record->name) {
|
if ($record->name === $name) {
|
||||||
case 'pchkorg_min_percent':
|
$value = $record->value;
|
||||||
$minpercent = $record->value;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$resultmap[$module] = $minpercent;
|
$resultmap[$module] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $resultmap[$module];
|
return $resultmap[$module];
|
||||||
|
@ -49,18 +49,6 @@ class plagiarism_pchkorg_setup_form extends moodleform {
|
|||||||
if (!isset($mform->exportValues()['pchkorg_use']) || is_null($mform->exportValues()['pchkorg_use'])) {
|
if (!isset($mform->exportValues()['pchkorg_use']) || is_null($mform->exportValues()['pchkorg_use'])) {
|
||||||
$mform->setDefault('pchkorg_use', false);
|
$mform->setDefault('pchkorg_use', false);
|
||||||
}
|
}
|
||||||
if (!isset($mform->exportValues()['pchkorg_exclude_self_plagiarism'])
|
|
||||||
|| is_null($mform->exportValues()['pchkorg_exclude_self_plagiarism'])) {
|
|
||||||
$mform->setDefault('pchkorg_exclude_self_plagiarism', 1);
|
|
||||||
}
|
|
||||||
if (!isset($mform->exportValues()['pchkorg_include_referenced'])
|
|
||||||
|| is_null($mform->exportValues()['pchkorg_include_referenced'])) {
|
|
||||||
$mform->setDefault('pchkorg_include_referenced', 0);
|
|
||||||
}
|
|
||||||
if (!isset($mform->exportValues()['pchkorg_include_citation'])
|
|
||||||
|| is_null($mform->exportValues()['pchkorg_include_citation'])) {
|
|
||||||
$mform->setDefault('pchkorg_include_citation', 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
$mform->addElement('password', 'pchkorg_token', get_string('pchkorg_token', 'plagiarism_pchkorg'));
|
$mform->addElement('password', 'pchkorg_token', get_string('pchkorg_token', 'plagiarism_pchkorg'));
|
||||||
$mform->addHelpButton('pchkorg_token', 'pchkorg_token', 'plagiarism_pchkorg');
|
$mform->addHelpButton('pchkorg_token', 'pchkorg_token', 'plagiarism_pchkorg');
|
||||||
@ -80,27 +68,6 @@ class plagiarism_pchkorg_setup_form extends moodleform {
|
|||||||
$mform->addRule('pchkorg_min_percent', get_string('pchkorg_min_percent_range', 'plagiarism_pchkorg'), 'check_pchkorg_min_percent');
|
$mform->addRule('pchkorg_min_percent', get_string('pchkorg_min_percent_range', 'plagiarism_pchkorg'), 'check_pchkorg_min_percent');
|
||||||
$mform->setType('pchkorg_min_percent', PARAM_INT);
|
$mform->setType('pchkorg_min_percent', PARAM_INT);
|
||||||
|
|
||||||
$mform->addElement(
|
|
||||||
'select',
|
|
||||||
'pchkorg_exclude_self_plagiarism',
|
|
||||||
get_string('pchkorg_exclude_self_plagiarism', 'plagiarism_pchkorg'),
|
|
||||||
array(get_string('no'), get_string('yes'))
|
|
||||||
);
|
|
||||||
|
|
||||||
$mform->addElement(
|
|
||||||
'select',
|
|
||||||
'pchkorg_include_referenced',
|
|
||||||
get_string('pchkorg_include_referenced', 'plagiarism_pchkorg'),
|
|
||||||
array(get_string('no'), get_string('yes'))
|
|
||||||
);
|
|
||||||
|
|
||||||
$mform->addElement(
|
|
||||||
'select',
|
|
||||||
'pchkorg_include_citation',
|
|
||||||
get_string('pchkorg_include_citation', 'plagiarism_pchkorg'),
|
|
||||||
array(get_string('no'), get_string('yes'))
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->add_action_buttons(true);
|
$this->add_action_buttons(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
59
lib.php
59
lib.php
@ -285,15 +285,24 @@ display: inline-block;"
|
|||||||
$cm = optional_param('update', $defaultcmid, PARAM_INT);
|
$cm = optional_param('update', $defaultcmid, PARAM_INT);
|
||||||
$minpercent = $pchkorgconfigmodel->get_system_config('pchkorg_min_percent');
|
$minpercent = $pchkorgconfigmodel->get_system_config('pchkorg_min_percent');
|
||||||
|
|
||||||
|
if (!isset($mform->exportValues()['pchkorg_exclude_self_plagiarism'])
|
||||||
|
|| is_null($mform->exportValues()['pchkorg_exclude_self_plagiarism'])) {
|
||||||
|
$mform->setDefault('pchkorg_exclude_self_plagiarism', 1);
|
||||||
|
}
|
||||||
|
if (!isset($mform->exportValues()['pchkorg_include_referenced'])
|
||||||
|
|| is_null($mform->exportValues()['pchkorg_include_referenced'])) {
|
||||||
|
$mform->setDefault('pchkorg_include_referenced', 0);
|
||||||
|
}
|
||||||
|
if (!isset($mform->exportValues()['pchkorg_include_citation'])
|
||||||
|
|| is_null($mform->exportValues()['pchkorg_include_citation'])) {
|
||||||
|
$mform->setDefault('pchkorg_include_citation', 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (null === $cm) {
|
if (null === $cm) {
|
||||||
if (!isset($mform->exportValues()['pchkorg_module_use'])
|
if (!isset($mform->exportValues()['pchkorg_module_use'])
|
||||||
|| is_null($mform->exportValues()['pchkorg_module_use'])) {
|
|| is_null($mform->exportValues()['pchkorg_module_use'])) {
|
||||||
$mform->setDefault('pchkorg_module_use', '1');
|
$mform->setDefault('pchkorg_module_use', '1');
|
||||||
}
|
}
|
||||||
// if (!isset($mform->exportValues()['pchkorg_min_percent'])
|
|
||||||
// || is_null($mform->exportValues()['pchkorg_min_percent'])) {
|
|
||||||
// $mform->setDefault('pchkorg_min_percent', $minpercent);
|
|
||||||
// }
|
|
||||||
} else {
|
} else {
|
||||||
$records = $DB->get_records('plagiarism_pchkorg_config', array(
|
$records = $DB->get_records('plagiarism_pchkorg_config', array(
|
||||||
'cm' => $cm,
|
'cm' => $cm,
|
||||||
@ -348,6 +357,27 @@ display: inline-block;"
|
|||||||
'check_pchkorg_min_percent'
|
'check_pchkorg_min_percent'
|
||||||
);
|
);
|
||||||
$mform->setType('pchkorg_min_percent', PARAM_INT);
|
$mform->setType('pchkorg_min_percent', PARAM_INT);
|
||||||
|
|
||||||
|
$mform->addElement(
|
||||||
|
'select',
|
||||||
|
'pchkorg_exclude_self_plagiarism',
|
||||||
|
get_string('pchkorg_exclude_self_plagiarism', 'plagiarism_pchkorg'),
|
||||||
|
array(get_string('no'), get_string('yes'))
|
||||||
|
);
|
||||||
|
|
||||||
|
$mform->addElement(
|
||||||
|
'select',
|
||||||
|
'pchkorg_include_referenced',
|
||||||
|
get_string('pchkorg_include_referenced', 'plagiarism_pchkorg'),
|
||||||
|
array(get_string('no'), get_string('yes'))
|
||||||
|
);
|
||||||
|
|
||||||
|
$mform->addElement(
|
||||||
|
'select',
|
||||||
|
'pchkorg_include_citation',
|
||||||
|
get_string('pchkorg_include_citation', 'plagiarism_pchkorg'),
|
||||||
|
array(get_string('no'), get_string('yes'))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -617,13 +647,26 @@ display: inline-block;"
|
|||||||
// Filter for future search.
|
// Filter for future search.
|
||||||
$systemminpercent = $pchkorgconfigmodel->get_system_config('pchkorg_min_percent');
|
$systemminpercent = $pchkorgconfigmodel->get_system_config('pchkorg_min_percent');
|
||||||
// Module filter value has a bigger priority then system config value.
|
// Module filter value has a bigger priority then system config value.
|
||||||
$moduleminpercent = $pchkorgconfigmodel->get_min_percent_for_module($cm->id);
|
$moduleminpercent = $pchkorgconfigmodel->get_filter_for_module($cm->id, 'source_min_percent');
|
||||||
if ($moduleminpercent) {
|
if ($moduleminpercent) {
|
||||||
$minpercent = $moduleminpercent;
|
$minpercent = $moduleminpercent;
|
||||||
} else {
|
} else {
|
||||||
$minpercent = $systemminpercent;
|
$minpercent = $systemminpercent;
|
||||||
}
|
}
|
||||||
$filters = [];
|
$filters = [
|
||||||
|
'include_references' => $pchkorgconfigmodel->get_filter_for_module(
|
||||||
|
$cm->id,
|
||||||
|
'include_references'
|
||||||
|
),
|
||||||
|
'include_quotes' => $pchkorgconfigmodel->get_filter_for_module(
|
||||||
|
$cm->id,
|
||||||
|
'include_quotes'
|
||||||
|
),
|
||||||
|
'exclude_self_plagiarism' => $pchkorgconfigmodel->get_filter_for_module(
|
||||||
|
$cm->id,
|
||||||
|
'exclude_self_plagiarism'
|
||||||
|
),
|
||||||
|
];
|
||||||
if ($minpercent) {
|
if ($minpercent) {
|
||||||
$filters['source_min_percent'] = $minpercent;
|
$filters['source_min_percent'] = $minpercent;
|
||||||
}
|
}
|
||||||
@ -637,6 +680,7 @@ display: inline-block;"
|
|||||||
$apiprovider->user_email_to_hash($user->email),
|
$apiprovider->user_email_to_hash($user->email),
|
||||||
$cm->course,
|
$cm->course,
|
||||||
$cm->id,
|
$cm->id,
|
||||||
|
$cm->name,
|
||||||
$moodletextsubmission->id,
|
$moodletextsubmission->id,
|
||||||
$moodletextsubmission->id,
|
$moodletextsubmission->id,
|
||||||
html_to_text($content, 75, false),
|
html_to_text($content, 75, false),
|
||||||
@ -648,6 +692,7 @@ display: inline-block;"
|
|||||||
$textid = $apiprovider->send_text(
|
$textid = $apiprovider->send_text(
|
||||||
$cm->course,
|
$cm->course,
|
||||||
$cm->id,
|
$cm->id,
|
||||||
|
$cm->name,
|
||||||
$moodletextsubmission->id,
|
$moodletextsubmission->id,
|
||||||
$moodletextsubmission->id,
|
$moodletextsubmission->id,
|
||||||
html_to_text($content, 75, false),
|
html_to_text($content, 75, false),
|
||||||
@ -681,6 +726,7 @@ display: inline-block;"
|
|||||||
$apiprovider->user_email_to_hash($user->email),
|
$apiprovider->user_email_to_hash($user->email),
|
||||||
$cm->course,
|
$cm->course,
|
||||||
$cm->id,
|
$cm->id,
|
||||||
|
$cm->name,
|
||||||
$moodlesubmission->id,
|
$moodlesubmission->id,
|
||||||
$file->get_id(),
|
$file->get_id(),
|
||||||
$file->get_content(),
|
$file->get_content(),
|
||||||
@ -703,6 +749,7 @@ display: inline-block;"
|
|||||||
$textid = $apiprovider->send_text(
|
$textid = $apiprovider->send_text(
|
||||||
$cm->course,
|
$cm->course,
|
||||||
$cm->id,
|
$cm->id,
|
||||||
|
$cm->name,
|
||||||
$moodlesubmission->id,
|
$moodlesubmission->id,
|
||||||
$file->get_id(),
|
$file->get_id(),
|
||||||
$file->get_content(),
|
$file->get_content(),
|
||||||
|
@ -26,9 +26,9 @@ defined('MOODLE_INTERNAL') || die();
|
|||||||
if (!isset($plugin)) {
|
if (!isset($plugin)) {
|
||||||
$plugin = new stdClass();
|
$plugin = new stdClass();
|
||||||
}
|
}
|
||||||
$plugin->version = 2022050313;
|
$plugin->version = 2022050420;
|
||||||
$plugin->requires = 2017051500; // Requires Moodle 3.3 .
|
$plugin->requires = 2017051500; // Requires Moodle 3.3 .
|
||||||
$plugin->release = 'v3.8.2';
|
$plugin->release = 'v3.8.3';
|
||||||
$plugin->maturity = MATURITY_STABLE;
|
$plugin->maturity = MATURITY_STABLE;
|
||||||
$plugin->component = 'plagiarism_pchkorg';
|
$plugin->component = 'plagiarism_pchkorg';
|
||||||
$plugin->dependencies = array(
|
$plugin->dependencies = array(
|
||||||
|
Loading…
Reference in New Issue
Block a user