Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
 * A column with a checkbox for each question with name q{questionid}.
 *
 * @package   core_question
 * @copyright 2009 Tim Hunt
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

namespace core_question\local\bank;

use core\output\checkbox_toggleall;

/**
 * A column with a checkbox for each question with name q{questionid}.
 *
 * @copyright 2009 Tim Hunt
 * @author    2021 Safat Shahin <safatshahin@catalyst-au.net>
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
class checkbox_column extends column_base {

    public function get_name(): string {
        return 'checkbox';
    }

    public function get_title() {
        global $OUTPUT;

        $mastercheckbox = new checkbox_toggleall('qbank', true, [
            'id' => 'qbheadercheckbox',
            'name' => 'qbheadercheckbox',
            'value' => '1',
            'label' => get_string('selectall'),
            'labelclasses' => 'accesshide',
        ]);

        return $OUTPUT->render($mastercheckbox);
    }

    public function get_title_tip() {
        return get_string('selectquestionsforbulk', 'question');
    }

> public function display_header(array $columnactions = [], string $width = ''): void { protected function display_content($question, $rowclasses): void { > global $PAGE; global $OUTPUT; > $renderer = $PAGE->get_renderer('core_question', 'bank'); > $checkbox = new checkbox_toggleall('qbank', false, [ > $data = []; 'id' => "checkq{$question->id}", > $data['sortable'] = false; 'name' => "q{$question->id}", > $data['extraclasses'] = $this->get_classes(); 'value' => '1', > $name = get_class($this); 'label' => get_string('select'), > $data['sorttip'] = true; 'labelclasses' => 'accesshide', > $data['tiptitle'] = $this->get_title(); ]); > $data['tip'] = $this->get_title_tip(); > echo $OUTPUT->render($checkbox); > $data['colname'] = $this->get_column_name(); } > $data['columnid'] = $this->get_column_id(); > $data['name'] = get_string('selectall'); public function get_required_fields(): array { > $data['class'] = $name; return ['q.id']; > $data['width'] = $width; } > > echo $renderer->render_column_header($data); } > } >
> public function get_default_width(): int { > return 30; > }