Differences Between: [Versions 400 and 401] [Versions 400 and 402] [Versions 400 and 403]
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 namespace core_adminpresets\local\setting; 18 19 /** 20 * Extends the base class and lists the selected values separated by comma. 21 * 22 * @package core_adminpresets 23 * @copyright 2021 Pimenko <support@pimenko.com><pimenko.com> 24 * @author Jordan Kesraoui | Sylvain Revenu | Pimenko based on David MonllaĆ³ <david.monllao@urv.cat> code 25 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 26 */ 27 class adminpresets_admin_setting_configmultiselect extends adminpresets_setting { 28 29 /** 30 * Ensure that the $value values are setting choices. 31 * 32 * @param mixed $value Setting value 33 * @return mixed Returns false if wrong param value 34 */ 35 protected function set_value($value) { 36 if ($value) { 37 $options = explode(',', $value); 38 foreach ($options as $option) { 39 40 foreach ($this->settingdata->choices as $key => $choice) { 41 42 if ($key == $option) { 43 $this->value = $option; 44 $this->set_visiblevalue(); 45 return true; 46 } 47 } 48 } 49 50 $value = implode(',', $options); 51 } 52 $this->value = $value; 53 $this->set_visiblevalue(); 54 55 return true; 56 } 57 58 protected function set_visiblevalue() { 59 $values = explode(',', $this->value); 60 $visiblevalues = []; 61 62 foreach ($values as $value) { 63 64 if (!empty($this->settingdata->choices[$value])) { 65 $visiblevalues[] = $this->settingdata->choices[$value]; 66 } 67 } 68 69 if (empty($visiblevalues)) { 70 $this->visiblevalue = ''; 71 return false; 72 } 73 74 $this->visiblevalue = implode(', ', $visiblevalues); 75 } 76 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body