. /** * Form to edit a users preferred language * * @copyright 1999 Martin Dougiamas http://dougiamas.com * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @package core_user */ if (!defined('MOODLE_INTERNAL')) { die('Direct access to this script is forbidden.'); // It must be included from a Moodle page. } require_once($CFG->dirroot.'/lib/formslib.php'); /** * Class user_edit_form. * * @copyright 1999 Martin Dougiamas http://dougiamas.com * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class user_edit_language_form extends moodleform { /** * Define the form. */ public function definition () { global $CFG, $COURSE, $USER; $mform = $this->_form; $userid = $USER->id; if (is_array($this->_customdata)) { if (array_key_exists('userid', $this->_customdata)) { $userid = $this->_customdata['userid']; } } // Add some extra hidden fields. $mform->addElement('hidden', 'id'); $mform->setType('id', PARAM_INT); $mform->addElement('hidden', 'course', $COURSE->id); $mform->setType('course', PARAM_INT); $mform->addElement('select', 'lang', get_string('preferredlanguage'), get_string_manager()->get_list_of_translations()); $mform->setDefault('lang', $CFG->lang); $this->add_action_buttons(true, get_string('savechanges')); } /** * Extend the form definition after the data has been parsed. */ public function definition_after_data() { global $CFG, $DB, $OUTPUT; $mform = $this->_form; // If language does not exist, use site default lang. if ($langsel = $mform->getElementValue('lang')) { $lang = reset($langsel); // Check lang exists. if (!get_string_manager()->translation_exists($lang, false)) { $langel =& $mform->getElement('lang'); $langel->setValue($CFG->lang); } } } }