source: extensions/PHP_Optimisateur/setup.php @ 7991

Revision 7991, 9.4 KB checked in by mistic100, 9 years ago (diff)

PHP Optimisateur :
configuration via formulaire
installation semi-automatique des plugins

Line 
1<?php
2/***************************************\
3|                       PHP OPTIMISATEUR                        |
4|                          Version 1.1                          |
5\***************************************/
6
7include('files/functions.php');
8
9### Création de nouveau fichier de configuration ###
10if (isset($_POST['DIRsource'])) {
11        // Quelques traitements avant d'enregistrer
12        $_POST['copyCOLOR'] = implode(' ', $_POST['copyCOLOR']);
13        $_POST['copyPOS'] = implode('-', $_POST['copyPOS']);
14        if(!isset($_POST['PluginsBefore'])) $_POST['PluginsBefore'] = null;
15        if(!isset($_POST['PluginsProcess'])) $_POST['PluginsProcess'] = null;
16        if(!isset($_POST['PluginsAfter'])) $_POST['PluginsAfter'] = null;
17       
18        // Contenu du fichier
19        $content = '<?xml version="1.0" encoding="UTF-8"?>'."\r\n".'<config>'."\r\n";
20        $content .= XMLcreate($_POST, 0);
21        $content .= '</config>';
22        file_put_contents('config.xml', $content);
23       
24        header('Location:index.php');
25}
26
27
28include('files/header.php');
29
30
31// Fichier de configuration
32if (!file_exists('config.xml')) {
33        die('<div class="error">Erreur fatale : Fichier de configuration introuvable. <a href="index.php">Retour</a></div>');
34}
35
36// Configuration
37$config = simplexml_load_file('config.xml');
38$config = XMLParse($config);
39$config = array_settype($config);
40extract($config);
41
42$copyCOLOR = explode(' ', $copyCOLOR);
43$copyPOS = explode('-', $copyPOS);
44
45
46### Gestion des nouveaux plugins ###
47// Ajoute la configuration des plugins non-installés aux tableaux, il faut valider le formulaire pour les installer
48$Plugins = glob('plugins/*.xml');
49$NewPlugins = array();
50
51foreach ($Plugins as $plugin) {
52        // nom du plugin
53        preg_match('#plugins/(.*).xml#', $plugin, $matches);
54        $plugin_name = $matches[1];
55        // configuration du plugin
56        $plugin = XMLparse(simplexml_load_file($plugin));
57        // mode du plugin (effacage pour pas l'inscrire dans la config)
58        $plugin_mode = $plugin['mode'];
59        unset($plugin['mode']);
60       
61        if (!array_key_exists($plugin_name, ${$plugin_mode})) {
62                ${$plugin_mode}[$plugin_name] = $plugin;
63                $NewPlugins[$plugin_name] = true;
64        }
65}
66
67
68### Formulaire ###
69echo '
70<script type="text/javascript">
71        function suivant(enCours, suivant, limite) {
72                if (enCours.value.length == limite) {
73                        enCours.form.elements[suivant].select();
74                }
75        }
76</script>
77       
78<form action="setup.php" method="post">
79<div class="config">
80        <h2>Configuration</h2>
81        <ul>
82                <li>
83                        <span class="title">Répertoires</span>
84                        <table>
85                                <tr>
86                                        <td><b>Répertoire source :</b></td>
87                                        <td><input type="text" name="DIRsource" value="'.$DIRsource.'"/></td>
88                                </tr>
89                                <tr>
90                                        <td><b>Répertoire de sortie :</b></td>
91                                        <td><input type="text" name="DIRsortie" value="'.$DIRsortie.'"/></td>
92                                </tr>
93                        </table>
94                </li>
95                <li>
96                        <span class="title">Options</span>
97                        <table>
98                                <tr>
99                                        <td><b>Mode silencieux :</b></td>
100                                        <td><input type="radio" name="silentORNOT" value="true" '.(($silentORNOT)?'checked':'').'/> oui <input type="radio" name="silentORNOT" value="false" '.((!$silentORNOT)?'checked':'').'/> non</td>
101                                </tr>
102                                <tr>
103                                        <td><b>Créer le dossier haute définition :</b></td>
104                                        <td><input type="radio" name="DIRhighORNOT" value="true" '.(($DIRhighORNOT)?'checked':'').'/> oui <input type="radio" name="DIRhighORNOT" value="false" '.((!$DIRhighORNOT)?'checked':'').'/> non</td>
105                                </tr>
106                                <tr>
107                                        <td><b>Redimensionner les images HD :</b></td>
108                                        <td><input type="radio" name="DIMhdORNOT" value="true" '.(($DIMhdORNOT)?'checked':'').'/> oui <input type="radio" name="DIMhdORNOT" value="false" '.((!$DIMhdORNOT)?'checked':'').'/> non</td>
109                                </tr>
110                                <tr>
111                                        <td><b>Renommer les fichiers :</b></td>
112                                        <td><input type="radio" name="renameORNOT" value="true" '.(($renameORNOT)?'checked':'').'/> oui <input type="radio" name="renameORNOT" value="false" '.((!$renameORNOT)?'checked':'').'/> non</td>
113                                </tr>
114                                <tr>
115                                        <td><b>Ajouter les fichiers index.php :</b></td>
116                                        <td><input type="radio" name="indexORNOT" value="true" '.(($indexORNOT)?'checked':'').'/> oui <input type="radio" name="indexORNOT" value="false" '.((!$indexORNOT)?'checked':'').'/> non</td>
117                                </tr>
118                                <tr>
119                                        <td><b>Préfixe des miniatures :</b></td>
120                                        <td><input type="text" name="prefixe_mini" value="'.$prefixe_mini.'" size="8"/></td>
121                                </tr>
122                        </table>
123                </li>
124                <li>
125                        <span class="title">Tailles et qualité</span>
126                        <table>
127                                <tr>
128                                        <td><b>Taille maximale des images HD :</b></td>
129                                        <td><input type="text" name="DIMhd" value="'.$DIMhd.'" size="4"/></td>
130                                </tr>
131                                <tr>
132                                        <td><b>Taille des images normales :</b></td>
133                                        <td><input type="text" name="DIMnormal" value="'.$DIMnormal.'" size="3"/></td>
134                                </tr>
135                                <tr>
136                                        <td><b>Taille des miniatures :</b></td>
137                                        <td><input type="text" name="DIMthumbnail" value="'.$DIMthumbnail.'" size="3"/></td>
138                                </tr>
139                                <tr>
140                                        <td><b>Qualité des images HD :</b></td>
141                                        <td><input type="text" name="Qhd" value="'.$Qhd.'" size="3"/></td>
142                                </tr>
143                                <tr>
144                                        <td><b>Qualité des images normales :</b></td>
145                                        <td><input type="text" name="Qnormal" value="'.$Qnormal.'" size="3"/></td>
146                                </tr>
147                                <tr>
148                                        <td><b>Qualité des miniatures :</b></td>
149                                        <td><input type="text" name="Qthumbnail" value="'.$Qthumbnail.'" size="3"/></td>
150                                </tr>
151                                <tr>
152                                        <td><b>Résolution des images HD :</b></td>
153                                        <td><input type="text" name="DPI" value="'.$DPI.'" size="3"/></td>
154                                </tr>
155                        </table>
156                </li>
157                <li>
158                        <span class="title">Copyright</span>
159                        <table>
160                                <tr>
161                                        <td><b>Texte :</b></td>
162                                        <td><input type="text" name="copyright" value="'.$copyright.'"/></td>
163                                </tr>
164                                <tr>
165                                        <td><b>Sur les images HD :</b></td>
166                                        <td><input type="radio" name="copyONhd" value="true" '.(($copyONhd)?'checked':'').'/> oui <input type="radio" name="copyONhd" value="false" '.((!$copyONhd)?'checked':'').'/> non</td>
167                                </tr>
168                                <tr>
169                                        <td><b>Sur les images normales :</b></td>
170                                        <td><input type="radio" name="copyONnormal" value="true" '.(($copyONnormal)?'checked':'').'/> oui <input type="radio" name="copyONnormal" value="false" '.((!$copyONnormal)?'checked':'').'/> non</td>
171                                </tr>
172                                <tr>
173                                        <td><b>Position verticale :</b></td>
174                                        <td><input type="radio" name="copyPOS[0]" value="top" '.(($copyPOS[0]=='top')?'checked':'').'/> haut <input type="radio" name="copyPOS[0]" value="center" '.(($copyPOS[0]=='center')?'checked':'').'/> milieu <input type="radio" name="copyPOS[0]" value="bottom" '.(($copyPOS[0]=='bottom')?'checked':'').'/> bas</td>
175                                </tr>
176                                <tr>
177                                        <td><b>Position horizontale :</b></td>
178                                        <td><input type="radio" name="copyPOS[1]" value="left" '.(($copyPOS[1]=='left')?'checked':'').'/> gauche <input type="radio" name="copyPOS[1]" value="center" '.(($copyPOS[1]=='center')?'checked':'').'/> milieu <input type="radio" name="copyPOS[1]" value="right" '.(($copyPOS[1]=='right')?'checked':'').'/> droite</td>
179                                </tr>
180                                <tr>
181                                        <td><b>Taille (ratio image/texte) :</b></td>
182                                        <td><input type="text" name="copySIZE" value="'.$copySIZE.'" size="5"/></td>
183                                </tr>
184                                <tr>
185                                        <td><b>Couleur :</b></td>
186                                        <td>
187                                                <input type="text" name="copyCOLOR[0]" value="'.$copyCOLOR[0].'" size="3" onFocus="this.select();" onKeyUp="suivant(this,\'copyCOLOR[1]\', 3)"/>
188                                                <input type="text" name="copyCOLOR[1]" value="'.$copyCOLOR[1].'" size="3" onFocus="this.select();" onKeyUp="suivant(this,\'copyCOLOR[2]\', 3)"/>
189                                                <input type="text" name="copyCOLOR[2]" value="'.$copyCOLOR[2].'" size="3" onFocus="this.select();" />
190                                        </td>
191                                </tr>
192                                <tr>
193                                        <td><b>Police :</b></td>
194                                        <td><input type="text" name="copyFONT" value="'.$copyFONT.'"/></td>
195                                </tr>
196                        </table>
197                </li>
198                </ul>
199</div>
200
201<div class="config">
202        <h2>Plugins</h2>
203        <ul>
204                <li>
205                        <span class="title">Plugins pré-processing</span>
206                        <ul>';
207                                foreach ($PluginsBefore as $name => $config) {
208                                        echo '<li>
209                                                <b class="'.((isset($NewPlugins[$name]))?'new':'').'">'.$name.' :</b>
210                                                <table>';
211                                                        foreach ($config as $key => $value) {
212                                                                echo '<tr>
213                                                                        <td>'.$key.' :</td>
214                                                                        <td><input type="text" name="PluginsBefore['.$name.']['.$key.']" value="'.bool_to_string($value,1).'" size="7"/></td>
215                                                                </tr>';
216                                                        }
217                                                echo '</table>
218                                        </li>';
219                                }
220                        echo '</ul>
221                </li>
222                <li>
223                        <span class="title">Plugins processing</span>
224                        <ul>';
225                                foreach ($PluginsProcess as $name => $config) {
226                                        echo '<li>
227                                                <b class="'.((isset($NewPlugins[$name]))?'new':'').'">'.$name.' :</b>
228                                                <table>';
229                                                        foreach ($config as $key => $value) {
230                                                                echo '<tr>
231                                                                        <td>'.$key.' :</td>
232                                                                        <td><input type="text" name="PluginsProcess['.$name.']['.$key.']" value="'.bool_to_string($value,1).'" size="7"/></td>
233                                                                </tr>';
234                                                        }
235                                                echo '</table>
236                                        </li>';
237                                }
238                        echo '</ul>
239                </li>
240                <li>
241                        <span class="title">Plugins post-processing</span>
242                        <ul>';
243                                foreach ($PluginsAfter as $name => $config) {
244                                        echo '<li>
245                                                <b class="'.((isset($NewPlugins[$name]))?'new':'').'">'.$name.' :</b>
246                                                <table>';
247                                                        foreach ($config as $key => $value) {
248                                                                echo '<tr>
249                                                                        <td>'.$key.' :</td>
250                                                                        <td><input type="text" name="PluginsAfter['.$name.']['.$key.']" value="'.bool_to_string($value,1).'" size="7"/></td>
251                                                                </tr>';
252                                                        }
253                                                echo '</table>
254                                        </li>';
255                                }
256                        echo '</ul>
257                </li>
258        </ul>
259</div>
260
261<div class="finish">    
262        <input type="submit"/> <input type="reset"/> <a href="index.php">Retour</a>
263</div>
264</form>';
265?>
Note: See TracBrowser for help on using the repository browser.