小テストナビゲーションの表示位置について

小テストナビゲーションの表示位置について

- Koji Yoshida の投稿
返信数: 2

お世話になります。

MicrosoftのクラウドサービスAzureのマーケットプレイスを利用して、Moodleを立ち上げました。

環境は、Moodle 3.4.0-0、OSは、Debian 8となっています。


小テストのナビゲーションですが、現在、小テストの採点結果のページにおいて、ページの最下部に表示されています。

当該表示を、ページの最上部に表示することは可能なのでしょうか?


ご教授いただければ幸いです。

Koji Yoshida への返信

Re: 小テストナビゲーションの表示位置について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> 当該表示を、ページの最上部に表示することは可能なのでしょうか?

可能です。バージョンアップ時に毎回プログラム修正作業が発生することになりますが、よろしければ下記プログラム修正をお試しください。

修正対象プログラム:
mod/quiz/report/attemptsreport_table.php

修正箇所:
590行目

[ 修正前 ]
    public function wrap_html_start() {
        if ($this->is_downloading() || !$this->includecheckboxes) {
            return;
        }

        $url = $this->options->get_url();
        $url->param('sesskey', sesskey());

        echo '<div id="tablecontainer">';
        echo '<form id="attemptsform" method="post" action="' . $url->out_omit_querystring() . '">';

        echo html_writer::input_hidden_params($url);
        echo '<div>';
    }

    public function wrap_html_finish() {
        global $PAGE;
        if ($this->is_downloading() || !$this->includecheckboxes) {
            return;
        }

        echo '<div id="commands">';
        echo '<a id="checkattempts" href="#">' .
                get_string('selectall', 'quiz') . '</a> / ';
        echo '<a id="uncheckattempts" href="#">' .
                get_string('selectnone', 'quiz') . '</a> ';
        $PAGE->requires->js_amd_inline("
        require(['jquery'], function($) {
            $('#checkattempts').click(function(e) {
                $('#attemptsform').find('input:checkbox').prop('checked', true);
                e.preventDefault();
            });
            $('#uncheckattempts').click(function(e) {
                $('#attemptsform').find('input:checkbox').prop('checked', false);
                e.preventDefault();
            });
        });");
        echo '&nbsp;&nbsp;';
        $this->submit_buttons();
        echo '</div>';

        // Close the form.
        echo '</div>';
        echo '</form></div>';
    }


[ 修正後 ]
    public function wrap_html_start() {
        global $PAGE;
        if ($this->is_downloading() || !$this->includecheckboxes) {
            return;
        }

        $url = $this->options->get_url();
        $url->param('sesskey', sesskey());

        echo '<div id="tablecontainer">';
        echo '<form id="attemptsform" method="post" action="' . $url->out_omit_querystring() . '">';

        echo html_writer::input_hidden_params($url);
        echo '<div>';

        echo '<div id="commands">';
        echo '<a id="checkattempts" href="#">' .
                get_string('selectall', 'quiz') . '</a> / ';
        echo '<a id="uncheckattempts" href="#">' .
                get_string('selectnone', 'quiz') . '</a> ';
        $PAGE->requires->js_amd_inline("
        require(['jquery'], function($) {
            $('#checkattempts').click(function(e) {
                $('#attemptsform').find('input:checkbox').prop('checked', true);
                e.preventDefault();
            });
            $('#uncheckattempts').click(function(e) {
                $('#attemptsform').find('input:checkbox').prop('checked', false);
                e.preventDefault();
            });
        });");
        echo '&nbsp;&nbsp;';
        $this->submit_buttons();
        echo '</div>';

    }

    public function wrap_html_finish() {
//        global $PAGE;
        if ($this->is_downloading() || !$this->includecheckboxes) {
            return;
        }

//        echo '<div id="commands">';
//        echo '<a id="checkattempts" href="#">' .
//                get_string('selectall', 'quiz') . '</a> / ';
//        echo '<a id="uncheckattempts" href="#">' .
//                get_string('selectnone', 'quiz') . '</a> ';
//        $PAGE->requires->js_amd_inline("
//        require(['jquery'], function($) {
//            $('#checkattempts').click(function(e) {
//                $('#attemptsform').find('input:checkbox').prop('checked', true);
//                e.preventDefault();
//            });
//            $('#uncheckattempts').click(function(e) {
//                $('#attemptsform').find('input:checkbox').prop('checked', false);
//                e.preventDefault();
//            });
//        });");
//        echo '&nbsp;&nbsp;';
//        $this->submit_buttons();
//        echo '</div>';

        // Close the form.
        echo '</div>';
        echo '</form></div>';
    }

評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: 小テストナビゲーションの表示位置について

- Koji Yoshida の投稿

毎度迅速なご回答、ありがとうございます。

今週中には試せると思うので、結果を追って、ご報告させていただきますね。