source: spip-zone/_plugins_/spipr-dane-config/trunk/formulaires/couleurs.php @ 114389

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

Plugin de configuration du squelette spipr-dane

File size: 3.9 KB
Line 
1<?php
2/**
3  Plugin SPIPr-Dane-Config
4  Fichier #FORMULAIRE_COULEURS
5  * formulaire de configuration des 3 couleurs de base
6  (c) 2019 Dominique Lepaisant
7  Distribue sous licence GPL3
8
9*/
10include_spip('inc/config');
11
12 function lire_variables_couleur_less(){
13    // on regarde si le fichier colors.less est dans le rep squelettes/css du site
14    // sinon, on va chercher celui de SPIPr-Dane
15    if( !is_file( $file_less =_DIR_SITE."squelettes/css/colors.less") )
16         $file_less = _DIR_PLUGIN_SPIPR_DANE."/css/colors.less";
17     if( file( $file_less ) ) 
18        $lines = file( $file_less );
19
20        return $lines;
21 }
22
23 function variables_couleurs(){
24        return "/^(@color1:|@color2:|@color3:)/";
25 }
26
27function formulaires_couleurs_charger_dist( $bloc ) {
28        //
29        $meta='sdc/';
30        // on charge les saisies et les champs qui nécessitent un accès par les fonctions
31        $valeurs = array(
32                'bloc' => $bloc,
33                'color1' => lire_config($meta.$bloc.'/color1', "#DF0D46"), 
34                'color2' => lire_config($meta.$bloc.'/color2', "#455C98"), 
35                'color3' => lire_config($meta.$bloc.'/color3', "#DFDFDF") 
36        );
37
38        return $valeurs;
39}
40
41function formulaires_couleurs_verifier_dist( $bloc ) {
42        $erreurs = array();
43/*
44        Placer ici les controles sur les champs
45*/
46    if( !$lines = lire_variables_couleur_less() ) 
47        $erreurs['message_erreur']="lire_variables_couleur_less absent";
48   
49    if (!is_dir(_DIR_SITE."squelettes/css/")) 
50        if (!mkdir(_DIR_SITE."squelettes/css/", 0755, true)) 
51            $erreurs['message_erreur'] ='Echec lors de la création des répertoires '._DIR_SITE.'squelettes/css/';
52
53    return $erreurs;
54}
55
56function formulaires_couleurs_traiter_dist( $bloc ) {
57        // Traitement des données reçues du formulaire,
58        $meta='sdc/';
59        $vals=array('color1'=>'#DF0D46', 'color2'=>'#455C98', 'color3'=>'#DFDFDF');
60
61        if( !_request('_cfg_delete' )){
62                // Ecriture des valeurs dans colors.less
63                if( $lines = lire_variables_couleur_less() ) {
64                        foreach( $lines as $line_num => $line ) {
65                                if( preg_match(variables_couleurs(), $line, $matches) ){
66                                        $name = preg_replace("/@|:/", '', $matches[0]);
67                                        $data .= $matches[0]." \t".strtoupper(_request($name)).";\n";
68                                }
69                                else {
70                                        $data .= $line;
71                                }
72                        }
73            //enregistrement de colors.less dans le rep squelettes/css du site
74                        file_put_contents(_DIR_SITE."squelettes/css/colors.less", $data);
75                }
76
77        // enregistrement des valeurs dans spip_meta
78                foreach($vals as $nom => $valeur) {
79                        if(  _request($val)!='' ){
80                                ecrire_config($meta.$bloc.'/'.$nom, _request($nom));
81                                if( is_null(lire_config($meta.$bloc.'/'.$nom)) )
82                                        $errs.= $nom;
83                        }
84                        else {
85                        effacer_config($meta.$bloc.'/'.$val);
86                        }
87                }
88        }
89        else {
90        foreach($vals as $nom => $valeur) {
91                  effacer_config($meta.$bloc.'/'.$nom);
92        }
93                if( $lines = lire_variables_couleur_less() ) {
94                        foreach( $lines as $line_num => $line ) {
95                                if( preg_match(variables_couleurs(), $line, $matches) ){
96                                        $name = preg_replace("/@|:/", '', $matches[0]);
97                                        $data .= $matches[0]." \t".strtoupper($vals[$name]).";\n";
98                                }
99                                else 
100                                        $data .= $line;
101            }
102            //enregistrement de colors.less dans le rep squelettes/css du site
103                        file_put_contents(_DIR_SITE."squelettes/css/colors.less", $data);
104        }
105        else
106                return array('message_erreur'=>"lire_variables_couleur_less absent");
107           
108        set_request('color1', "#DF0D46");
109        set_request('color2', "#455C98");
110        set_request('color3', "#DFDFDF");
111        //unlink(_DIR_SITE."squelettes/css/colors.less"); // On supprime le fichier squelettes/css/colors.less.
112
113        return array('message_ok'=>_T('sdc:params_couleurs_supprimes') );
114        }
115        // S'il y a des erreurs, elles sont retournées au formulaire
116        if( $errs != $errDefaut )
117                return array('message_erreur'=>_T('sdc:params_couleurs_non_enregistres'));
118         
119        // Sinon, le message de confirmation est envoyé
120        else 
121                return array('message_ok'=>_T('sdc:params_couleurs_enregistres'));
122}
123?>
Note: See TracBrowser for help on using the repository browser.