017b89922820f2873b1f29db4c8bb0add15c8276
[lhc/web/www.git] / www / prive / formulaires / configurer_preferences.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2017 *
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 if (!defined('_ECRIRE_INC_VERSION')) {
24 return;
25 }
26
27 /**
28 * Chargement du formulaire de préférences d'un auteur dans l'espace privé
29 *
30 * @return array
31 * Environnement du formulaire
32 **/
33 function formulaires_configurer_preferences_charger_dist() {
34 // travailler sur des meta fraiches
35 include_spip('inc/meta');
36 lire_metas();
37
38 $valeurs = array();
39 $valeurs['display_navigation'] = isset($GLOBALS['visiteur_session']['prefs']['display_navigation']) ? $GLOBALS['visiteur_session']['prefs']['display_navigation'] : 'navigation_avec_icones';
40 $valeurs['display_outils'] = isset($GLOBALS['visiteur_session']['prefs']['display_outils']) ? $GLOBALS['visiteur_session']['prefs']['display_outils'] : 'oui';
41 $valeurs['display'] = (isset($GLOBALS['visiteur_session']['prefs']['display']) and $GLOBALS['visiteur_session']['prefs']['display'] > 0) ? $GLOBALS['visiteur_session']['prefs']['display'] : 2;
42 $valeurs['couleur'] = (isset($GLOBALS['visiteur_session']['prefs']['couleur']) and $GLOBALS['visiteur_session']['prefs']['couleur'] > 0) ? $GLOBALS['visiteur_session']['prefs']['couleur'] : 1;
43 $valeurs['spip_ecran'] = $GLOBALS['spip_ecran'];
44
45 $couleurs = charger_fonction('couleurs', 'inc');
46 $les_couleurs = $couleurs(array(), true);
47 foreach ($les_couleurs as $k => $c) {
48 $valeurs['_couleurs_url'][$k] = generer_url_public('style_prive.css', 'ltr='
49 . $GLOBALS['spip_lang_left'] . '&'
50 . $couleurs($k));
51 $valeurs['couleurs'][$k] = $c;
52 }
53
54 $valeurs['imessage'] = $GLOBALS['visiteur_session']['imessage'];
55
56 return $valeurs;
57 }
58
59 /**
60 * Traitements du formulaire de préférences d'un auteur dans l'espace privé
61 *
62 * @return array
63 * Retours des traitements
64 **/
65 function formulaires_configurer_preferences_traiter_dist() {
66
67 if ($couleur = _request('couleur')) {
68 $GLOBALS['visiteur_session']['prefs']['couleur'] = $couleur;
69 }
70 if ($display = _request('display')) {
71 $GLOBALS['visiteur_session']['prefs']['display'] = $display;
72 }
73 if ($display_navigation = _request('display_navigation')) {
74 $GLOBALS['visiteur_session']['prefs']['display_navigation'] = $display_navigation;
75 }
76 if (!is_null($display_outils = _request('display_outils'))) {
77 $GLOBALS['visiteur_session']['prefs']['display_outils'] = $display_outils;
78 }
79
80 if (intval($GLOBALS['visiteur_session']['id_auteur'])) {
81 include_spip('action/editer_auteur');
82 $c = array('prefs' => serialize($GLOBALS['visiteur_session']['prefs']));
83
84 if (_request('imessage')) {
85 $c['imessage'] = _request('imessage');
86 }
87
88 auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], $c);
89 }
90
91 if ($spip_ecran = _request('spip_ecran')) {
92 // Poser un cookie,
93 // car ce reglage depend plus du navigateur que de l'utilisateur
94 $GLOBALS['spip_ecran'] = $spip_ecran;
95 include_spip('inc/cookie');
96 spip_setcookie('spip_ecran', $_COOKIE['spip_ecran'] = $spip_ecran, time() + 365 * 24 * 3600);
97 }
98
99 return array('message_ok' => _T('config_info_enregistree'), 'editable' => true);
100 }