1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * action to delete (or hide) a question, or restore a previously hidden question. 19 * 20 * @package core_question 21 * @copyright 2009 Tim Hunt 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 namespace core_question\bank; 26 defined('MOODLE_INTERNAL') || die(); 27 28 29 /** 30 * action to delete (or hide) a question, or restore a previously hidden question. 31 * 32 * @copyright 2009 Tim Hunt 33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 34 */ 35 class delete_action_column extends menu_action_column_base { 36 protected $strdelete; 37 protected $strrestore; 38 39 public function init() { 40 parent::init(); 41 $this->strdelete = get_string('delete'); 42 $this->strrestore = get_string('restore'); 43 } 44 45 public function get_name() { 46 return 'deleteaction'; 47 } 48 49 /** 50 * Work out the info required to display this action, if appropriate. 51 * 52 * If the action is not appropriate to this question, return [null, null, null]. 53 * 54 * Otherwise return an array with three elements: 55 * moodel_url $url the URL to perform the action. 56 * string $icon the icon name. E.g. 't/delete'. 57 * string $label the label to display. 58 * 59 * @param object $question the row from the $question table, augmented with extra information. 60 * @return array [$url, $label, $icon] as above. 61 */ 62 protected function get_url_icon_and_label(\stdClass $question): array { 63 if (!question_has_capability_on($question, 'edit')) { 64 return [null, null, null]; 65 } 66 if ($question->hidden) { 67 $url = new \moodle_url($this->qbank->base_url(), array('unhide' => $question->id, 'sesskey' => sesskey())); 68 return [$url, 't/restore', $this->strrestore]; 69 } else { 70 $url = new \moodle_url($this->qbank->base_url(), array('deleteselected' => $question->id, 'q' . $question->id => 1, 71 'sesskey' => sesskey())); 72 return [$url, 't/delete', $this->strdelete]; 73 } 74 } 75 76 public function get_required_fields() { 77 $required = parent::get_required_fields(); 78 $required[] = 'q.hidden'; 79 return $required; 80 } 81 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body