Fix bug with landing_url plugin setting
[lorea:landing.git] / actions / landing / settings / save.php
1 <?php
2 /**
3  * Validate and save site settings
4  *
5  * @package        Lorea
6  * @subpackage     Landing
7  *
8  * Copyright 2012,2013 Lorea Faeries <federation@lorea.org>
9  *
10  * This file is part of the Landing plugin for Elgg.
11  *
12  * Landing is free software: you can redistribute it and/or modify it
13  * under the terms of the GNU Affero General Public License as
14  * published by the Free Software Foundation, either version 3 of the
15  * License, or (at your option) any later version.
16  *
17  * Landing is distributed in the hope that it will be useful, but
18  * WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20  * Affero General Public License for more details.
21  *
22  * You should have received a copy of the GNU Affero General Public
23  * License along with this program. If not, see
24  * <http://www.gnu.org/licenses/>.
25  */
26
27 $default_params = array(
28         'landing_mode' => 'default',
29         'landing_url'  => '',
30         'override'     => FALSE,);
31 $params         = get_input('params', $default_params, TRUE);
32
33 // Yuck
34 global $landing_mode, $landing_url, $override;
35
36 $landing_mode   = $params['landing_mode'];
37 $landing_url    = landing_filter_user_landing_url($params['landing_url']);
38
39 if (landing_validate_landing_mode($landing_mode)) {
40
41         $plugin       = elgg_get_plugin_from_id('landing');
42
43         $plugin->setSetting('landing_mode', $landing_mode);
44
45         if ('custom' == $landing_mode) {
46
47                 $plugin->setSetting('landing_url', $landing_url);
48
49         }
50
51         // Update users
52         $override = ($params['override']) ? TRUE : FALSE;
53         $updates  = landing_update_user_settings($override);
54
55         // Do not keep the value for 'override'
56         $params['override'] = FALSE;
57
58         system_message(elgg_echo('landing:settings:save:success', array(elgg_echo('landing'), $updates)));
59         return TRUE;
60
61 } else {
62
63         register_error(elgg_echo('landing:settings:save:failure'));
64         return FALSE;
65
66 }