source: spip-zone/_plugins_/_amelioration_admin_/icones_admin/exec/config_habillage_prive.php @ 5192

Last change on this file since 5192 was 5192, checked in by franck.ducas@…, 15 years ago

Oups... Manque la restauration du define d'origine.

File size: 6.3 KB
Line 
1<?php
2
3$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(dirname(__FILE__)))));
4define('_DIR_PLUGIN_HABILLAGE_PRIVE',(_DIR_PLUGINS.end($p)));
5
6// Fonction qui gere les habillages. Tentative de faire la fonction sans appel a la
7// base de donnees, et donc sans manipulation sql.
8function exec_config_habillage_prive() {
9  global $connect_statut, $connect_toutes_rubriques;
10
11  include_spip("inc/presentation");
12  include_spip ("base/abstract_sql");
13
14  debut_page('&laquo; '._T('habillageprive:titre_page').' &raquo;', 'configurations', 'habillage_prive','',_DIR_PLUGIN_HABILLAGE_PRIVE.'/img_pack/habillage_prive.css');
15
16  if ($connect_statut != '0minirezo' OR !$connect_toutes_rubriques) {
17        echo _T('avis_non_acces_page');
18        exit;
19  }
20
21  if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques ) {
22
23        echo '<br><br>';
24        echo '<img src="' . _DIR_PLUGIN_HABILLAGE_PRIVE. '/img_pack/habillage_prive-48.png">';
25        gros_titre(_T('habillageprive:gros_titre'));
26
27        barre_onglets("configuration", "config_habillage_prive");
28
29        /*Affichage*/
30        debut_gauche(); 
31       
32        debut_boite_info();
33        echo propre(_T('habillageprive:help'));
34        fin_boite_info();
35
36        debut_droite();
37
38        echo '<form action="'.generer_url_ecrire('config_habillage_prive').'" method="post">';
39       
40        // Debut des manipulations de mes_options.php. Le fichier mes_options sert de
41        // reference pour savoir quel habillage a choisi l'utilisateur.
42       
43        $options_file = "mes_options.php";
44        $theme = $_REQUEST['theme'];
45        $plugin_directory = _DIR_PLUGIN_HABILLAGE_PRIVE;
46
47       
48        // Si le fichier inc/mes_options.php existe deja
49        if (file_exists($options_file)) {
50                $backup_file = "$options_file.backup";
51                rename($options_file, $backup_file);
52                $open_backup_file = fopen($backup_file, 'r');
53                $backup_file_size = filesize ($backup_file);
54                $read_backup_file = fread ($open_backup_file, $backup_file_size);
55                $search_comment = eregi("//start_define_img_pack(.*)//end_define_img_pack", $read_backup_file, $comment);
56                $search_content = eregi("define\(\'_DIR_IMG_PACK\', \(\'(.*)\'\)\)\;(.*)//end_define_img_pack", $read_backup_file, $content);
57                $search_all_content = eregi("<\?(.*)define\(\'_DIR_IMG_PACK\', \(\'(.*)\'\)\)\;(.*)\?>", $read_backup_file, $all_content);
58               
59                # Si l'utilisateur ou l'utilisatrice ne demande pas a revenir a la situation
60                # initiale (= a son chemin vers img_pack d'origine).
61                if ($theme != "initial") {
62
63                        # Si le fichier ecrire/mes_options.php contient le commentaire ajoute par
64                        # le plugin, cela signifie que le plugin a deja ete active pour un habillage.
65                        # Il faut donc modifier la ligne existante personnalisee du chemin vers
66                        # img_pack. :
67                        if ($search_comment) {
68                                $open_options_file = fopen($options_file, 'w+');
69                                $new_content = $plugin_directory."/themes/".$theme."/img_pack/";
70                                $insert_new_content = ereg_replace($content[1], $new_content, $read_backup_file);
71                                $write = fwrite($open_options_file, $insert_new_content);
72                                fclose($open_options_file);
73                        }
74                       
75                        # Si le fichier mes_options sauvegarde redefinissait le chemin d'img_pack
76                        # par la ligne define('_DIR_IMG_PACK', [...]) avant le choix d'un autre
77                        # habillage :
78                        else if ($search_content) {
79                                $search_comment_backup = eregi("//backup(.*)", $read_backup_file);
80                               
81                                if ($search_comment_backup) {
82                                        $open_options_file = fopen($options_file, 'w+');
83                                        $new_content = "//start_define_img_pack\ndefine('_DIR_IMG_PACK', ('".$plugin_directory."/themes/".$theme."/img_pack/'));\n//end_define_img_pack\n?>";
84                                        $insert_new_content = ereg_replace( '\?>', $new_content, $read_backup_file);
85                                        $write = fwrite($open_options_file, $insert_new_content);
86                                        fclose($open_options_file);
87                                }
88                                else {
89                                        $open_options_file = fopen($options_file, 'w+');
90                                        $replaced_content = "define\(\'_DIR_IMG_PACK\', \(\'";
91                                        $new_content = "//start_define_img_pack\ndefine('_DIR_IMG_PACK', ('".$plugin_directory."/themes/".$theme."/img_pack/'));\n//end_define_img_pack\n//backup_define('_DIR_IMG_PACK', ('";
92                                        $insert_new_content = ereg_replace( $replaced_content, $new_content, $read_backup_file);
93                                        $write = fwrite($open_options_file, $insert_new_content);
94                                        fclose($open_options_file);
95                                }
96                        }
97                       
98                        # Si le fichier ecrire/mes_options.php existe deja mais qu'il ne redefinie
99                        # pas le chemin vers img_pack.
100                        else {
101                                $open_options_file = fopen($options_file, 'w+');
102                                $new_content = "//start_define_img_pack\ndefine('_DIR_IMG_PACK', ('".$plugin_directory."/themes/".$theme."/img_pack/'));\n//end_define_img_pack\n?>";
103                                $insert_new_content = ereg_replace( '\?>', $new_content, $read_backup_file);
104                                $write = fwrite($open_options_file, $insert_new_content);
105                                fclose($open_options_file);
106                        }
107                       
108                }
109               
110                # Si l'utilisateur ou l'utilisatrice veut revenir a la situation initiale.
111                # ! Manque la restauration du define d'origine !
112                else if ($theme == "initial") {
113                        if ($search_comment) {
114                                $open_options_file = fopen($options_file, 'w+');
115                                $erased_content = "//start_define_img_pack(.*)//end_define_img_pack";
116                                $insert_new_content = ereg_replace($erased_content, '', $read_backup_file);
117                                $write = fwrite($open_options_file, $insert_new_content);
118                                fclose($open_options_file);
119                        }
120                        else {
121                                rename($backup_file, $options_file);
122                        }
123                }
124        }
125       
126        else {
127                $open_options_file = fopen($options_file, 'w+');
128                $new_content = "<?\ndefine('_DIR_IMG_PACK', ('".$plugin_directory."/themes/".$theme."/img_pack/'));\n?>";
129                $write = fwrite($open_options_file, $new_content);
130                fclose($open_options_file);
131        }
132       
133        echo '<INPUT type=radio name="theme" value="initial"';
134                if ($_REQUEST['theme'] == "initial") {
135                        echo "checked";
136                }
137        echo ">";
138        echo "Revenir &agrave; l'habillage d'origine";
139        echo "<br />";
140       
141        $dossier = opendir (_DIR_PLUGIN_HABILLAGE_PRIVE.'/themes/');
142        while ($fichier = readdir ($dossier)) {
143        if ($fichier != "." && $fichier != "..") {
144                echo '<INPUT type=radio name="theme" value="'.$fichier.'"';
145                if ($_REQUEST['theme'] == $fichier) {
146                        echo " checked";
147                }
148                echo ">";
149                echo $fichier.'<br />';
150        }
151        }
152        closedir ($dossier);
153       
154        echo '<input type="submit" value="'._T('valider').'"/>';
155        echo '</form>';
156  } 
157 
158  fin_page();
159 
160}
161
162?>
Note: See TracBrowser for help on using the repository browser.