[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / prive / formulaires / configurer_preferences_menus.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 /**
14 * Formulaire de configuration des préférences auteurs dans l'espace privé
15 *
16 * Ces préférences sont stockées dans la clé `prefs` dans la session de l'auteur
17 * en tant que tableau, ainsi que dans la colonne SQL `prefs` de spip_auteurs
18 * sous forme sérialisée.
19 *
20 * @package SPIP\Core\Formulaires
21 **/
22
23 include_spip('inc/bandeau');
24 include_spip('inc/filtres');
25
26 /**
27 * Chargement du formulaire de préférence des menus d'un auteur dans l'espace privé
28 *
29 * @return array
30 * Environnement du formulaire
31 **/
32 function formulaires_configurer_preferences_menus_charger_dist() {
33 // travailler sur des meta fraîches
34 include_spip('inc/meta');
35 lire_metas();
36 $valeurs = array();
37 $valeurs['activer_menudev'] = table_valeur($GLOBALS['visiteur_session'], 'prefs/activer_menudev', 'non');
38 $valeurs['menus_favoris'] = obtenir_menus_favoris();
39 return $valeurs;
40 }
41
42 /**
43 * Traitements du formulaire de préférence des menus d'un auteur dans l'espace privé
44 *
45 * @return array
46 * Retours des traitements
47 **/
48 function formulaires_configurer_preferences_menus_traiter_dist() {
49
50 $activer_menudev = _request('activer_menudev');
51 $menus_favoris = _request('menus_favoris');
52 $menus_favoris = array_filter($menus_favoris);
53 $menus_favoris = array_map('intval', $menus_favoris);
54
55 if (_request('reset')) {
56 $menus_favoris = array();
57 set_request('menus_favoris', null);
58 }
59
60 // si le menu dev change, ou les menus favoris, on recharge toute la page.
61 if (
62 table_valeur($GLOBALS['visiteur_session'], 'prefs/activer_menudev') != $activer_menudev
63 OR $menus_favoris != obtenir_menus_favoris()
64 ) {
65 refuser_traiter_formulaire_ajax();
66
67 $GLOBALS['visiteur_session']['prefs']['activer_menudev'] = $activer_menudev;
68 $GLOBALS['visiteur_session']['prefs']['menus_favoris'] = $menus_favoris;
69
70 if (intval($GLOBALS['visiteur_session']['id_auteur'])) {
71 include_spip('action/editer_auteur');
72 $c = array('prefs' => serialize($GLOBALS['visiteur_session']['prefs']));
73 auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], $c);
74 }
75 }
76
77 return array('message_ok' => _T('config_info_enregistree'), 'editable' => true);
78 }