はじめまして那須と申します
moodleの初心者です。
既知の問題かもわかりませんが報告します
このたびscorm準拠教材を作ることになりmoodleで色々と動かしているのですが、
バージョンを2.7に上げたところ
ScormProcessSetValue("adl.nav.request", "exitAll");
とすると、Target Activity does not exist というエラーメッセージが表示されるようになりました。
moodleのソースを追跡していくと、mod/scorm/datamodel.phpにおいて、73行目あたりに
$search = array('@continue@', '@previous@', '@\{target=(\S+)\}choice@', '@exit@', '@exitAll@', '@abandon@', '@abandonAll@');
$replace = array('continue_', 'previous_', '\1', 'exit_', 'exitall_', 'abandon_', 'abandonall');
$action = preg_replace($search, $replace, $value);
if ($action != $value) {
// Evaluating navigation request
$valid = scorm_seq_overall ($scoid, $USER->id, $action, $attempt);
となっており、意図としては"exitAll"を"exitall_"に置き換えているつもりだと思うのですが、これだと"exit"の置き換えによって"exitAll"が"exit_All"となってしまうため挙動がおかしくなります。
対策としては、かっこ悪いですが、
$search = array('@continue@', '@previous@', '@\{target=(\S+)\}choice@', '@exit@', '@exit_All@', '@abandon@', '@abandon_All@');
とし、"exit_All"をもう一度"exitall_"と置換すればOKです。
取り急ぎご報告まで。
係り