source: spip-zone/_plugins_/spipr-dane-config/trunk/formulaires/navbar_inverse.php @ 114423

Last change on this file since 114423 was 114423, checked in by dominique.lepaisant@…, 6 months ago

Doit fonctionner aussi hors mutualisation + necessite saisies, yaml + correction coquilles

File size: 5.3 KB
Line 
1<?php
2/**
3  Plugin SPIPr-Dane-Config
4  * Fichier #FORMULAIRE_NAVBAR_INVERSE
5  * formulaire de configuration de la couleur de la barre de nav
6  (c) 2019 Dominique Lepaisant
7  Distribue sous licence GPL3
8
9*/
10include_spip('inc/config');
11
12function lire_variables_barnav_less ($fichier){
13    if(!is_file( $file_less =_DIR_SITE."squelettes/css/".$fichier.".less"))
14        $file_less = _DIR_PLUGIN_SPIPR_DANE."/css/".$fichier.".less";
15    if ($lines = file($file_less )) 
16        return $lines;
17    else
18        return false;
19}
20
21function formulaires_navbar_inverse_charger_dist() {
22// on charge les saisies et les champs qui nécessitent un accès par les fonctions
23  $valeurs = array(
24        'inverser_couleur' => lire_config('sdc/navbar/inverser_couleur')=='color1' ? 'on': '',
25        'couleur_liens' => lire_config('sdc/navbar/couleur_liens', 'white'),
26        'couleur_liens_hover' => lire_config('sdc/navbar/couleur_liens_hover')
27  );
28  return $valeurs;
29}
30
31
32function formulaires_navbar_inverse_verifier_dist() {
33        $erreurs = array();
34    //on verifie que le rep squelette/css existe
35    // sinon on le cree
36    if (!is_dir(_DIR_SITE."squelettes/css/")) {
37        if (!mkdir(_DIR_SITE."squelettes/css/", 0755, true)) {
38            $erreurs['inverser_couleur'] ='Echec lors de la création des répertoires '._DIR_SITE."squelettes/css/";
39        }
40    }
41        return $erreurs;
42}
43
44function formulaires_navbar_inverse_traiter_dist() {
45    // Traitement des données reçues du formulaire,
46    $couleur_lien_hover=_request('couleur_liens_hover') ? (_request('couleur_liens')=="white"?"black":"white"):_request('couleur_liens');
47    $inverser_couleur=_request("inverser_couleur");
48    is_array(_request("inverser_couleur")) ? set_request('inverser_couleur', 'color1') : set_request('inverser_couleur', 'color2');
49    $couleur_background_hover=_request('inverser_couleur')&&_request('inverser_couleur')=="color1"?"color2":"color1";
50    $errs ='';
51
52        if (!_request('_cfg_delete')){
53        if ( _request('couleur_liens') && _request('couleur_liens') !='' &&  _request('inverser_couleur') && _request('inverser_couleur') !=''){
54            // Ecriture de la couleur des liens dans colors.less
55            if ($lines = lire_variables_barnav_less("colors")) {
56                foreach ($lines as $line) {
57                    if (preg_match("#^(@navbarBackground:)#", $line, $matches))
58                        $data .= $matches[0]." \t@"._request('inverser_couleur').";\n";
59                    else if (preg_match("#^(@navbarLinkColor:)#", $line, $matches))
60                        $data .= $matches[0]." \t@"._request('couleur_liens').";\n";
61                    else if (preg_match("#^(@navbarLinkColorHover:)#", $line, $matches))
62                        $data .= $matches[0]." \t@".$couleur_lien_hover.";\n";
63                    else if (preg_match("#^(@navbarLinkBackgroundHover:)#", $line, $matches))
64                        $data .= $matches[0]." \t@".$couleur_background_hover.";\n";
65                    else 
66                        $data .= $line;
67                }
68
69                //enregistrement de colors.less dans le rep squelettes/css du site
70                if(!file_put_contents(_DIR_SITE."squelettes/css/colors.less", $data))
71                   $errs="Erreur d'enregistrement du fichier css";
72            }
73            // ecriture des metas
74            ecrire_config('sdc/navbar/couleur_liens', _request('couleur_liens'));
75            ecrire_config('sdc/navbar/couleur_liens_hover', _request('couleur_liens_hover'));
76            ecrire_config('sdc/navbar/inverser_couleur', _request('inverser_couleur'));
77        }
78        if($inverser_couleur)
79        set_request("inverser_couleur", $inverser_couleur);
80        }
81        else {
82        if ($lines = lire_variables_barnav_less("colors")) {
83            foreach ($lines as $line) {
84                if (preg_match("#^(@navbarBackground:)#", $line, $matches))
85                    $data .= $matches[0]." \t@color2;\n";
86                else if (preg_match("#^(@navbarLinkColor:)#", $line, $matches))
87                    $data .= $matches[0]." \t@white;\n";
88                else if (preg_match("#^(@navbarLinkColorHover:)#", $line, $matches))
89                    $data .= $matches[0]." \t@navbarLinkColor;\n";
90                else if (preg_match("#^(@navbarLinkBackgroundHover:)#", $line, $matches))
91                    $data .= $matches[0]." \t@color1;\n";
92                else 
93                    $data .= $line;
94            }
95            //enregistrement de colors.less dans le rep squelettes/css du site
96                        file_put_contents(_DIR_SITE."squelettes/css/colors.less", $data);
97        }
98        effacer_config('sdc/navbar/inverser_couleur');
99        effacer_config('sdc/navbar/couleur_liens');
100        effacer_config('sdc/navbar/couleur_liens_hover');
101        set_request('couleur_liens', 'white');
102        set_request('couleur_liens_hover', '');
103       
104        $oks = 'La configuration de la barre de navigation a été réinitialisée';
105       
106                return array('message_ok'=>$oks);
107        }
108   
109  // S'il y a des erreurs, elles sont retournées au formulaire
110  if( $errs !='' )
111    return array('message_erreur'=>'La configuration de la couleur d\'arrière plan de la barre de navigation n\'a pas été enregistrée.');
112 
113  // Sinon, le message de confirmation est envoyé
114  else 
115        return array('message_ok'=>'La configuration de la couleur d\'arrière plan de la barre de navigation a été enregistrée.');
116}
117?>
Note: See TracBrowser for help on using the repository browser.