CSV Enrolls & Groups pluginについて

CSV Enrolls & Groups pluginについて

by Katsumasa Wakinaka -
Number of replies: 3

いつもお世話になっております。

件名のプラグインについて「Moodleリリース(4.0)」では正常に動作するのですが、「Moodleリリース(4.1)」では「HTTP ERROR 500」とエラーが発生します。

そもそも、正式に3.11までしか対応していないのは分かっておりますが、何か対応方法はありますでしょうか。

以上、よろしくお願いいたします。

Average of ratings: 有益(Useful) (1)
In reply to Katsumasa Wakinaka

Re: CSV Enrolls & Groups pluginについて

by Mitsuhiro Yoshida -
Picture of Developers Picture of Translators

以下のプログラム修正ではいかがでしょうか。ご参考までに修正済みのプログラムファイル (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 {
Average of ratings: 有益(Useful) (1)
In reply to Mitsuhiro Yoshida

Re: CSV Enrolls & Groups pluginについて

by Katsumasa Wakinaka -

Mitsuhiro Yoshida 様

お世話になっております。

ご提示いただいた「プログラム修正」にて正常に動作することを確認いたしました。

この度は誠にありがとうございました。