source: extensions/PHP_Optimisateur/setup.php @ 8195

Last change on this file since 8195 was 8195, checked in by mistic100, 10 years ago
  • Nouveau plugin : CreateCustomThumbs permet de créer des miniatures de taille fixe
  • On peut maintenant désinstaller un plugin facilement
  • Ajout d’une option pour gérer le dossier de sortie non vide (effacer, continuer, bloquer)
File size: 11.3 KB
Line 
1<?php
2/***************************************\
3|                       PHP OPTIMISATEUR                        |
4|                          Version 1.2                          |
5\***************************************/
6
7include('files/functions.php');
8
9
10### NOUVELLE CONFIGURATION ###
11if (isset($_POST['DIRsource'])) {
12        // Quelques traitements
13        $_POST['copyCOLOR'] = implode(' ', $_POST['copyCOLOR']);
14        $_POST['copyPOS'] = implode('-', $_POST['copyPOS']);
15       
16        // Plugins : ensembles existants même si vides & supprime les plugins manquants
17        foreach (array('PluginsBefore','PluginsProcess','PluginsAfter') as $mode) {
18                if (!isset($_POST[$mode])) {
19                        $_POST[$mode] = null;
20                } else {
21                        foreach ($_POST[$mode] as $name => $config) {
22                                if (isset($config['delete'])) unset($_POST[$mode][$name]);
23                        }
24                }
25        }
26       
27        // Ajoute les / en fin d'URI
28        if (!preg_match('#(.*)/$#', $_POST['DIRsource'])) $_POST['DIRsource'] .= '/';
29        if (!preg_match('#(.*)/$#', $_POST['DIRsortie'])) $_POST['DIRsortie'] .= '/';
30       
31        // Contenu du fichier
32        $content = '<?xml version="1.0" encoding="UTF-8"?>'."\r\n".'<config>'."\r\n";
33        $content .= XMLcreate($_POST, 0);
34        $content .= '</config>';
35        file_put_contents('config.xml', $content);
36       
37        header('Location:index.php');
38}
39
40
41include('files/header.php');
42
43
44### CONFIGURATION ###
45if (!file_exists('config.xml')) {
46        $Errors['ErrorFile'] = true;
47} else {
48        extract(load_config());
49}
50
51
52
53### ERREURS ###
54if (isset($Errors)) {
55        foreach ($Errors as $key => $null) {
56                echo '<div class="error">'.l10n($key).'</div>';
57        }
58        echo '<div class="link"><a href="index.php">'.l10n('Back').'</a> <a href="setup.php">'.l10n('Config').'</a></div>';
59}
60
61
62
63### EXECUTION ###
64if (!isset($Errors)) {
65        ### Gestion des nouveaux plugins ###
66        // Ajoute la configuration des plugins non-installés aux tableaux, il faut valider le formulaire pour les installer
67        $Plugins = glob('plugins/*.xml');
68
69        foreach ($Plugins as $plugin) {
70                // nom du plugin
71                preg_match('#plugins/(.*).xml#', $plugin, $matches);
72                $plugin_name = $matches[1];
73                // configuration du plugin
74                $plugin = XMLparse(simplexml_load_file($plugin));
75                // mode du plugin (effacage pour pas l'inscrire dans la config)
76                $plugin_mode = $plugin['mode'];
77                unset($plugin['mode']);
78               
79                if (!array_key_exists($plugin_name, ${$plugin_mode})) {
80                        ${$plugin_mode}[$plugin_name] = $plugin;
81                        $NewPlugins[$plugin_name] = true;
82                } else if (!file_exists('plugins/'.$plugin_name.'.php')) {
83                        $MissingPlugins[$plugin_name] = true;
84                }
85        }
86       
87       
88        ### Gestion des plugins manquants ###
89        foreach (array('PluginsBefore','PluginsProcess','PluginsAfter') as $mode) {
90                foreach (${$mode} as $plugin_name => $config) {
91                        if (!file_exists('plugins/'.$plugin_name.'.php')) {
92                                $MissingPlugins[$plugin_name] = true;
93                        }
94                }
95        }
96
97
98        ### Formulaire ###
99        $copyCOLOR = explode(' ', $copyCOLOR);
100        $copyPOS = explode('-', $copyPOS);
101       
102        echo '
103        <script type="text/javascript">
104                function suivant(enCours, suivant, limite) {
105                        if (enCours.value.length == limite) {
106                                enCours.form.elements[suivant].select();
107                        }
108                }
109        </script>
110               
111        <form action="setup.php" method="post">
112                <div class="config">
113                        <h2>'.l10n('Configuration').'</h2>
114                        <ul>
115                                <li>
116                                        <span class="title">'.l10n('Folders').'</span>
117                                        <table>
118                                                <tr>
119                                                        <td><b>'.l10n('FolderIn').' :</b></td>
120                                                        <td><input type="text" name="DIRsource" value="'.$DIRsource.'"/></td>
121                                                </tr>
122                                                <tr>
123                                                        <td><b>'.l10n('FolderOut').' :</b></td>
124                                                        <td><input type="text" name="DIRsortie" value="'.$DIRsortie.'"/></td>
125                                                </tr>
126                                        </table>
127                                </li>
128                                <li>
129                                        <span class="title">'.l10n('Options').'</span>
130                                        <table>
131                                                <tr>
132                                                        <td><b>'.l10n('silentORNOT').' :</b></td>
133                                                        <td>
134                                                                <input type="radio" name="silentORNOT" value="erase" '.(($silentORNOT=='erase')?'checked':'').'/> '.l10n('erase').'
135                                                                <input type="radio" name="silentORNOT" value="block" '.(($silentORNOT=='block')?'checked':'').'/> '.l10n('block').'
136                                                                <input type="radio" name="silentORNOT" value="pass" '.(($silentORNOT=='pass')?'checked':'').'/> '.l10n('pass').'
137                                                        </td>
138                                                </tr>
139                                                <tr>
140                                                        <td><b>'.l10n('DIRhighORNOT').' :</b></td>
141                                                        <td>
142                                                                <input type="radio" name="DIRhighORNOT" value="true" '.(($DIRhighORNOT)?'checked':'').'/> '.l10n('yes').'
143                                                                <input type="radio" name="DIRhighORNOT" value="false" '.((!$DIRhighORNOT)?'checked':'').'/> '.l10n('no').'
144                                                        </td>
145                                                </tr>
146                                                <tr>
147                                                        <td><b>'.l10n('DIMhdORNOT').' :</b></td>
148                                                        <td>
149                                                                <input type="radio" name="DIMhdORNOT" value="true" '.(($DIMhdORNOT)?'checked':'').'/> '.l10n('yes').'
150                                                                <input type="radio" name="DIMhdORNOT" value="false" '.((!$DIMhdORNOT)?'checked':'').'/> '.l10n('no').'
151                                                        </td>
152                                                </tr>
153                                                <tr>
154                                                        <td><b>'.l10n('renameORNOT').' :</b></td>
155                                                        <td>
156                                                                <input type="radio" name="renameORNOT" value="true" '.(($renameORNOT)?'checked':'').'/> '.l10n('yes').'
157                                                                <input type="radio" name="renameORNOT" value="false" '.((!$renameORNOT)?'checked':'').'/> '.l10n('no').'
158                                                        </td>
159                                                </tr>
160                                                <tr>
161                                                        <td><b>'.l10n('indexORNOT').' :</b></td>
162                                                        <td>
163                                                                <input type="radio" name="indexORNOT" value="true" '.(($indexORNOT)?'checked':'').'/> '.l10n('yes').'
164                                                                <input type="radio" name="indexORNOT" value="false" '.((!$indexORNOT)?'checked':'').'/> '.l10n('no').'
165                                                        </td>
166                                                </tr>
167                                                <tr>
168                                                        <td><b>'.l10n('prefixe_mini').' :</b></td>
169                                                        <td><input type="text" name="prefixe_mini" value="'.$prefixe_mini.'" size="8"/></td>
170                                                </tr>
171                                        </table>
172                                </li>
173                                <li>
174                                        <span class="title">'.l10n('Sizes and quality').'</span>
175                                        <table>
176                                                <tr>
177                                                        <td><b>'.l10n('DIMhd').' :</b></td>
178                                                        <td><input type="text" name="DIMhd" value="'.$DIMhd.'" size="4"/></td>
179                                                </tr>
180                                                <tr>
181                                                        <td><b>'.l10n('DIMnormal').' :</b></td>
182                                                        <td><input type="text" name="DIMnormal" value="'.$DIMnormal.'" size="3"/></td>
183                                                </tr>
184                                                <tr>
185                                                        <td><b>'.l10n('DIMthumbnail').' :</b></td>
186                                                        <td><input type="text" name="DIMthumbnail" value="'.$DIMthumbnail.'" size="3"/></td>
187                                                </tr>
188                                                <tr>
189                                                        <td><b>'.l10n('Qhd').' :</b></td>
190                                                        <td><input type="text" name="Qhd" value="'.$Qhd.'" size="3"/></td>
191                                                </tr>
192                                                <tr>
193                                                        <td><b>'.l10n('Qnormal').' :</b></td>
194                                                        <td><input type="text" name="Qnormal" value="'.$Qnormal.'" size="3"/></td>
195                                                </tr>
196                                                <tr>
197                                                        <td><b>'.l10n('Qthumbnail').' :</b></td>
198                                                        <td><input type="text" name="Qthumbnail" value="'.$Qthumbnail.'" size="3"/></td>
199                                                </tr>
200                                                <tr>
201                                                        <td><b>'.l10n('DPI').' :</b></td>
202                                                        <td><input type="text" name="DPI" value="'.$DPI.'" size="3"/></td>
203                                                </tr>
204                                        </table>
205                                </li>
206                                <li>
207                                        <span class="title">'.l10n('Copyright').'</span>
208                                        <table>
209                                                <tr>
210                                                        <td><b>'.l10n('Content').' :</b></td>
211                                                        <td><input type="text" name="copyright" value="'.$copyright.'"/></td>
212                                                </tr>
213                                                <tr>
214                                                        <td><b>'.l10n('copyONhd').' :</b></td>
215                                                        <td>
216                                                                <input type="radio" name="copyONhd" value="true" '.(($copyONhd)?'checked':'').'/> '.l10n('yes').'
217                                                                <input type="radio" name="copyONhd" value="false" '.((!$copyONhd)?'checked':'').'/> '.l10n('no').'
218                                                        </td>
219                                                </tr>
220                                                <tr>
221                                                        <td><b>'.l10n('copyONnormal').' :</b></td>
222                                                        <td>
223                                                                <input type="radio" name="copyONnormal" value="true" '.(($copyONnormal)?'checked':'').'/> '.l10n('yes').'
224                                                                <input type="radio" name="copyONnormal" value="false" '.((!$copyONnormal)?'checked':'').'/> '.l10n('no').'
225                                                        </td>
226                                                </tr>
227                                                <tr>
228                                                        <td><b>'.l10n('copyPOS%s', l10n('copyPOSv')).' :</b></td>
229                                                        <td>
230                                                                <input type="radio" name="copyPOS[0]" value="top" '.(($copyPOS[0]=='top')?'checked':'').'/> '.l10n('top').'
231                                                                <input type="radio" name="copyPOS[0]" value="center" '.(($copyPOS[0]=='center')?'checked':'').'/> '.l10n('center').'
232                                                                <input type="radio" name="copyPOS[0]" value="bottom" '.(($copyPOS[0]=='bottom')?'checked':'').'/> '.l10n('bottom').'
233                                                        </td>
234                                                </tr>
235                                                <tr>
236                                                        <td><b>'.l10n('copyPOS%s', l10n('copyPOSh')).' :</b></td>
237                                                        <td>
238                                                                <input type="radio" name="copyPOS[1]" value="left" '.(($copyPOS[1]=='left')?'checked':'').'/> '.l10n('left').'
239                                                                <input type="radio" name="copyPOS[1]" value="center" '.(($copyPOS[1]=='center')?'checked':'').'/> '.l10n('center').'
240                                                                <input type="radio" name="copyPOS[1]" value="right" '.(($copyPOS[1]=='right')?'checked':'').'/> '.l10n('right').'
241                                                        </td>
242                                                </tr>
243                                                <tr>
244                                                        <td><b>'.l10n('copySIZE').' :</b></td>
245                                                        <td><input type="text" name="copySIZE" value="'.$copySIZE.'" size="5"/></td>
246                                                </tr>
247                                                <tr>
248                                                        <td><b>'.l10n('copyCOLOR').' :</b></td>
249                                                        <td>
250                                                                <input type="text" name="copyCOLOR[0]" value="'.$copyCOLOR[0].'" size="3" onFocus="this.select();" onKeyUp="suivant(this,\'copyCOLOR[1]\', 3)"/>
251                                                                <input type="text" name="copyCOLOR[1]" value="'.$copyCOLOR[1].'" size="3" onFocus="this.select();" onKeyUp="suivant(this,\'copyCOLOR[2]\', 3)"/>
252                                                                <input type="text" name="copyCOLOR[2]" value="'.$copyCOLOR[2].'" size="3" onFocus="this.select();" />
253                                                        </td>
254                                                </tr>
255                                                <tr>
256                                                        <td><b>'.l10n('copyFONT').' :</b></td>
257                                                        <td><input type="text" name="copyFONT" value="'.$copyFONT.'"/></td>
258                                                </tr>
259                                        </table>
260                                </li>
261                        </ul>
262                </div>
263
264                <div class="config">
265                        <h2>'.l10n('Plugins').'</h2>
266                        <ul>';
267                                // Affichage des plugins, un bloc par mode
268                                foreach (array('PluginsBefore','PluginsProcess','PluginsAfter') as $mode) {
269                                        echo '<li>
270                                                <span class="title">'.l10n($mode).'</span>
271                                                <ul>';
272                                                        // Un bloc par plugin
273                                                        foreach (${$mode} as $name => $config) {
274                                                                echo '<li>';
275                                                                        echo '<b>'.$name.' :</b>';
276                                                                       
277                                                                        // Cas spéciaux dans le titre(nouveau, manquant)
278                                                                        if (isset($NewPlugins[$name])) {
279                                                                                echo '<b class="new">'.l10n('New !').'</b>';
280                                                                        } else if (isset($MissingPlugins[$name])) {
281                                                                                echo '<b class="miss">'.l10n('Missing !').'</b>';
282                                                                        }
283                                                                       
284                                                                        echo '<table>';
285                                                                                // Si il est manquant on ne met que la checkbox de suppression
286                                                                                if (isset($MissingPlugins[$name])) {
287                                                                                        echo '<tr>
288                                                                                                <td>'.l10n('erase').' :</td>
289                                                                                                <td><input type="checkbox" name="'.$mode.'['.$name.'][delete]" value="true" checked="checked"/></td>
290                                                                                        </tr>';
291                                                                                // sinon on affiche sa configuration
292                                                                                } else {
293                                                                                        foreach ($config as $key => $value) {
294                                                                                                echo '<tr>
295                                                                                                        <td>'.$key.' :</td>
296                                                                                                        <td><input type="text" name="'.$mode.'['.$name.']['.$key.']" value="'.bool_to_string($value,1).'" size="'.strlen(bool_to_string($value,1)).'"/></td>
297                                                                                                </tr>';
298                                                                                        }
299                                                                                }
300                                                                        echo '</table>
301                                                                </li>';
302                                                        }
303                                                echo '</ul>
304                                        </li>';
305                                }
306                               
307                        echo '</ul>
308                </div>
309
310                <div class="finish"><input type="submit" value="'.l10n('Valid').'"/> <input type="reset" value="'.l10n('Reset').'"/></div>
311                <div class="link"><a href="index.php">&raquo; '.l10n('Back').'</a></div>
312        </form>';
313}
314
315
316
317### FIN ###
318echo '<div class="footer">
319        2010 - <a href="http://www.strangeplanet.fr">Damien Sorel</a> - <a href="http://fr.piwigo.org/forum/viewtopic.php?id=19117">Forum</a>
320</div>
321
322</body>
323</html>';
324?>
Note: See TracBrowser for help on using the repository browser.