87f8c52589bad54edf9ca6bebaf61410bf62cca8
[moodle.git] / admin / settings / privacy.php
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/>.
17 /**
18  * Adds privacy and policies links to admin tree.
19  *
20  * @package   core_privacy
21  * @copyright 2018 Marina Glancy
22  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 defined('MOODLE_INTERNAL') || die();
27 if ($hassiteconfig) {
28     // Privacy settings.
29     $temp = new admin_settingpage('privacysettings', new lang_string('privacysettings', 'admin'));
31     $options = array(
32         0 => get_string('no'),
33         1 => get_string('yes')
34     );
35     $url = new moodle_url('/admin/settings.php?section=supportcontact');
36     $url = $url->out();
37     $setting = new admin_setting_configselect('agedigitalconsentverification',
38         new lang_string('agedigitalconsentverification', 'admin'),
39         new lang_string('agedigitalconsentverification_desc', 'admin', $url), 0, $options);
40     $setting->set_force_ltr(true);
41     $temp->add($setting);
43     $setting = new admin_setting_agedigitalconsentmap('agedigitalconsentmap',
44         new lang_string('ageofdigitalconsentmap', 'admin'),
45         new lang_string('ageofdigitalconsentmap_desc', 'admin'),
46         // See {@link https://gdpr-info.eu/art-8-gdpr/}.
47         implode(PHP_EOL, [
48             '*, 16',
49             'AT, 14',
50             'CZ, 13',
51             'DE, 14',
52             'DK, 13',
53             'ES, 13',
54             'FI, 15',
55             'GB, 13',
56             'HU, 14',
57             'IE, 13',
58             'LT, 16',
59             'LU, 16',
60             'NL, 16',
61             'PL, 13',
62             'SE, 13',
63         ]),
64         PARAM_RAW
65     );
66     $temp->add($setting);
68     $ADMIN->add('privacy', $temp);
70     // Policy settings.
71     $temp = new admin_settingpage('policysettings', new lang_string('policysettings', 'admin'));
72     $temp->add(new admin_settings_sitepolicy_handler_select('sitepolicyhandler', new lang_string('sitepolicyhandler', 'core_admin'),
73         new lang_string('sitepolicyhandler_desc', 'core_admin')));
74     $temp->add(new admin_setting_configtext('sitepolicy', new lang_string('sitepolicy', 'core_admin'),
75         new lang_string('sitepolicy_help', 'core_admin'), '', PARAM_RAW));
76     $temp->add(new admin_setting_configtext('sitepolicyguest', new lang_string('sitepolicyguest', 'core_admin'),
77         new lang_string('sitepolicyguest_help', 'core_admin'), (isset($CFG->sitepolicy) ? $CFG->sitepolicy : ''), PARAM_RAW));
79     $ADMIN->add('privacy', $temp);
80 }