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