いつもお世話になっております。
件名のプラグインについて「Moodleリリース(4.0)」では正常に動作するのですが、「Moodleリリース(4.1)」では「HTTP ERROR 500」とエラーが発生します。
そもそも、正式に3.11までしか対応していないのは分かっておりますが、何か対応方法はありますでしょうか。
以上、よろしくお願いいたします。
以下のプログラム修正ではいかがでしょうか。ご参考までに修正済みのプログラムファイル (import_form.php) を本投稿に添付します。
修正対象プログラム:
local/userenrols/import_form.php
修正箇所:
145行目
[ 修正前 ]
// Into which role to put the imported users, has
// to be one valid for the current user.
$role_id = empty($data[local_userenrols_plugin::FORMID_ROLE_ID])
? 0 : intval($data[local_userenrols_plugin::FORMID_ROLE_ID]);
if ($role_id > 0 && !array_key_exists($role_id, get_assignable_roles($this->_customdata['data']->context, ROLENAME_BOTH))) {
$result[local_userenrols_plugin::FORMID_ROLE_ID] = get_string('invalidroleid', 'error');
}
[ 修正後 ]
// Into which role to put the imported users, has
// to be one valid for the current user.
$role_id = empty($data[local_userenrols_plugin::FORMID_ROLE_ID])
? 0 : (intval($data[local_userenrols_plugin::FORMID_ROLE_ID]));
if ($role_id > 0 && !array_key_exists($role_id, get_assignable_roles($this->_customdata['data']->context, ROLENAME_BOTH))) {
$result[local_userenrols_plugin::FORMID_ROLE_ID] = get_string('invalidroleid', 'error');
}
----------
修正箇所:
152行目
[ 修正前 ]
// For Yes/No select 1 and 0 only, anything else not valid
$group_assign = empty($data[local_userenrols_plugin::FORMID_GROUP])
? 0 : intval($data[local_userenrols_plugin::FORMID_GROUP]);
if ($group_assign < 0 or $group_assign > 1) {
$result[local_userenrols_plugin::FORMID_GROUP] = get_string('VAL_INVALID_SELECTION', local_userenrols_plugin::PLUGIN_NAME);
}
[ 修正後 ]
// For Yes/No select 1 and 0 only, anything else not valid
$group_assign = empty($data[local_userenrols_plugin::FORMID_GROUP])
? 0 : (intval($data[local_userenrols_plugin::FORMID_GROUP]));
if ($group_assign < 0 or $group_assign > 1) {
$result[local_userenrols_plugin::FORMID_GROUP] = get_string('VAL_INVALID_SELECTION', local_userenrols_plugin::PLUGIN_NAME);
}
----------
修正箇所:
159行目
[ 修正前 ]
if ($group_assign) {
$group_id = empty($data[local_userenrols_plugin::FORMID_GROUP_ID])
? 0 : $group_assign ? intval($data[local_userenrols_plugin::FORMID_GROUP_ID]) : 0;
} else {
$group_id = 0;
}
[ 修正後 ]
if ($group_assign) {
$group_id = empty($data[local_userenrols_plugin::FORMID_GROUP_ID])
? 0 : ($group_assign ? intval($data[local_userenrols_plugin::FORMID_GROUP_ID]) : 0);
} else {
$group_id = 0;
}
----------
修正箇所:
171行目
[ 修正前 ]
// For Yes/No select 1 and 0 only, anything else not valid
if (($group_assign && ($group_id == 0))) {
$group_create = empty($data[local_userenrols_plugin::FORMID_GROUP_CREATE])
? 0 : $data[local_userenrols_plugin::FORMID_GROUP_CREATE];
} else {
[ 修正後 ]
// For Yes/No select 1 and 0 only, anything else not valid
if (($group_assign && ($group_id == 0))) {
$group_create = empty($data[local_userenrols_plugin::FORMID_GROUP_CREATE])
? 0 : ($data[local_userenrols_plugin::FORMID_GROUP_CREATE]);
} else {
Mitsuhiro Yoshida 様
お世話になっております。
ご提示いただいた「プログラム修正」にて正常に動作することを確認いたしました。
この度は誠にありがとうございました。