Changeset 7993
- Timestamp:
- Dec 4, 2010, 3:43:02 PM (13 years ago)
- Location:
- extensions/PHP_Optimisateur
- Files:
-
- 7 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/PHP_Optimisateur/files/display_config.php
r7991 r7993 6 6 7 7 echo '<div class="config"> 8 <h2>Configuration</h2> 9 <ul> 10 <li> 11 <span class="title">Répertoires</span> 12 <ul> 13 <li><b>Répertoire source :</b> '.$DIRsource.'</li> 14 <li><b>Répertoire de sortie :</b> '.$DIRsortie.'</li> 15 </ul> 16 </li> 17 <li> 18 <span class="title">Options</span> 19 <ul> 20 <li><b>Créer le dossier haute définition :</b> '.bool_to_string($DIRhighORNOT).'</li> 21 <li><b>Redimensionner les images HD :</b> '.bool_to_string($DIMhdORNOT).'</li> 22 <li><b>Renommer les fichiers :</b> '.bool_to_string($renameORNOT).'</li> 23 <li><b>Ajouter les fichiers index.php :</b> '.bool_to_string($indexORNOT).'</li> 24 <li><b>Préfixe des miniatures :</b> '.$prefixe_mini.'</li> 25 </ul> 26 </li> 27 <li> 28 <span class="title">Tailles et qualité</span> 29 <ul> 30 <li><b>Taille maximale des images HD :</b> '.$DIMhd.'</li> 31 <li><b>Taille des images normales :</b> '.$DIMnormal.'</li> 32 <li><b>Taille des miniatures :</b> '.$DIMthumbnail.'</li> 33 <li><b>Qualité des images HD :</b> '.$Qhd.'</li> 34 <li><b>Qualité des images normales :</b> '.$Qnormal.'</li> 35 <li><b>Qualité des miniatures :</b> '.$Qthumbnail.'</li> 36 <li><b>Résolution des images HD :</b> '.$DPI.'</li> 37 </ul> 38 </li> 39 <li> 40 <span class="title">Copyright</span> 41 <ul> 42 <li><b>Texte :</b> '.$copyright.'</li> 43 <li><b>Sur les images HD :</b> '.bool_to_string($copyONhd).'</li> 44 <li><b>Sur les images normales :</b> '.bool_to_string($copyONnormal).'</li> 45 <li><b>Position :</b> '.$copyPOS.'</li> 46 <li><b>Taille (ratio image/texte) :</b> '.$copySIZE.'</li> 47 <li><b>Couleur :</b> rgb('.$copyCOLOR.') <span style="vertical-align:middle;border:1px solid #7f7f7f;width:1.5em;height:0.8em;display:inline-block;background:rgb('.str_replace(' ',',',$copyCOLOR).');"> </span></li> 48 <li><b>Police :</b> '.$copyFONT.'</li> 49 </ul> 50 </li> 51 <li> 52 <span class="title">Plugins pré-processing</span> 53 <ul>'; 54 foreach ($PluginsBefore as $name => $config) { 55 echo '<li> 56 <b>'.$name.' :</b> 57 <ul>'; 58 foreach ($config as $key => $value) { 59 echo '<li>'.$key.' » '.bool_to_string($value).'</li>'; 60 } 61 echo '</ul> 62 </li>'; 63 } 64 echo '</ul> 65 </li> 66 <li> 67 <span class="title">Plugins processing</span> 68 <ul>'; 69 foreach ($PluginsProcess as $name => $config) { 70 echo '<li> 71 <b>'.$name.' :</b> 72 <ul>'; 73 foreach ($config as $key => $value) { 74 echo '<li>'.$key.' » '.bool_to_string($value).'</li>'; 75 } 76 echo '</ul> 77 </li>'; 78 } 79 echo '</ul> 80 </li> 81 <li> 82 <span class="title">Plugins post-processing</span> 83 <ul>'; 84 foreach ($PluginsAfter as $name => $config) { 85 echo '<li> 86 <b>'.$name.' :</b> 87 <ul>'; 88 foreach ($config as $key => $value) { 89 echo '<li>'.$key.' » '.bool_to_string($value).'</li>'; 90 } 91 echo '</ul> 92 </li>'; 93 } 94 echo '</ul> 95 </li> 96 </ul> 97 </div>'; 8 <h2>'.l10n('Configuration').'</h2> 9 <ul> 10 <li> 11 <span class="title">'.l10n('Folders').'</span> 12 <table> 13 <tr> 14 <td><b>'.l10n('FolderIn').' :</b></td> 15 <td>'.$DIRsource.'</td> 16 </tr> 17 <tr> 18 <td><b>'.l10n('FolderOut').' :</b></td> 19 <td>'.$DIRsortie.'</td> 20 </tr> 21 </table> 22 </li> 23 <li> 24 <span class="title">'.l10n('Options').'</span> 25 <table> 26 <tr> 27 <td><b>'.l10n('DIRhighORNOT').' :</b></td> 28 <td>'.bool_to_string($DIRhighORNOT).'</td> 29 </tr> 30 <tr> 31 <td><b>'.l10n('DIMhdORNOT').' :</b></td> 32 <td>'.bool_to_string($DIMhdORNOT).'</td> 33 </tr> 34 <tr> 35 <td><b>'.l10n('renameORNOT').' :</b></td> 36 <td>'.bool_to_string($renameORNOT).'</td> 37 </tr> 38 <tr> 39 <td><b>'.l10n('indexORNOT').' :</b></td> 40 <td>'.bool_to_string($indexORNOT).'</td> 41 </tr> 42 <tr> 43 <td><b>'.l10n('prefixe_mini').' :</b></td> 44 <td>'.$prefixe_mini.'</td> 45 </tr> 46 </table> 47 </li> 48 <li> 49 <span class="title">'.l10n('Sizes and quality').'</span> 50 <table> 51 <tr> 52 <td><b>'.l10n('DIMhd').' :</b></td> 53 <td>'.$DIMhd.'</td> 54 </tr> 55 <tr> 56 <td><b>'.l10n('DIMnormal').' :</b></td> 57 <td>'.$DIMnormal.'</td> 58 </tr> 59 <tr> 60 <td><b>'.l10n('DIMthumbnail').' :</b></td> 61 <td>'.$DIMthumbnail.'</td> 62 </tr> 63 <tr> 64 <td><b>'.l10n('Qhd').' :</b></td> 65 <td>'.$Qhd.'</td> 66 </tr> 67 <tr> 68 <td><b>'.l10n('Qnormal').' :</b></td> 69 <td>'.$Qnormal.'</td> 70 </tr> 71 <tr> 72 <td><b>'.l10n('Qthumbnail').' :</b></td> 73 <td>'.$Qthumbnail.'</td> 74 </tr> 75 <tr> 76 <td><b>'.l10n('DPI').' :</b></td> 77 <td>'.$DPI.'</td> 78 </tr> 79 </table> 80 </li> 81 <li> 82 <span class="title">'.l10n('Copyright').'</span> 83 <table> 84 <tr> 85 <td><b>'.l10n('Content').' :</b></td> 86 <td>'.$copyright.'</td> 87 </tr> 88 <tr> 89 <td><b>'.l10n('copyONhd').' :</b></td> 90 <td>'.bool_to_string($copyONhd).'</td> 91 </tr> 92 <tr> 93 <td><b>'.l10n('copyONnormal').' :</b></td> 94 <td>'.bool_to_string($copyONnormal).'</td> 95 </tr> 96 <tr> 97 <td><b>'.l10n('copyPOS%s', '').' :</b></td> 98 <td>'.$copyPOS.'</td> 99 </tr> 100 <tr> 101 <td><b>'.l10n('copySIZE').' :</b></td> 102 <td>'.$copySIZE.'</td> 103 </tr> 104 <tr> 105 <td><b>'.l10n('copyCOLOR').' :</b></td> 106 <td>rgb('.$copyCOLOR.') <span style="vertical-align:middle;border:1px solid #7f7f7f;width:1.5em;height:0.8em;display:inline-block;background:rgb('.str_replace(' ',',',$copyCOLOR).');"> </span></td> 107 </tr> 108 <tr> 109 <td><b>'.l10n('copyFONT').' :</b></td> 110 <td>'.$copyFONT.'</td> 111 </tr> 112 </table> 113 </li> 114 <li> 115 <span class="title">'.l10n('PluginsBefore').'</span> 116 <ul>'; 117 foreach ($PluginsBefore as $name => $config) { 118 echo '<li> 119 <b>'.$name.' :</b> 120 <table>'; 121 foreach ($config as $key => $value) { 122 echo '<tr> 123 <td>'.$key.' :</td> 124 <td>'.bool_to_string($value).'</td> 125 </tr>'; 126 } 127 echo '</table> 128 </li>'; 129 } 130 echo '</ul> 131 </li> 132 <li> 133 <span class="title">'.l10n('PluginsProcess').'</span> 134 <ul>'; 135 foreach ($PluginsProcess as $name => $config) { 136 echo '<li> 137 <b>'.$name.' :</b> 138 <table>'; 139 foreach ($config as $key => $value) { 140 echo '<tr> 141 <td>'.$key.' :</td> 142 <td>'.bool_to_string($value).'</td> 143 </tr>'; 144 } 145 echo '</table> 146 </li>'; 147 } 148 echo '</ul> 149 </li> 150 <li> 151 <span class="title">'.l10n('PluginsAfter').'</span> 152 <ul>'; 153 foreach ($PluginsAfter as $name => $config) { 154 echo '<li> 155 <b>'.$name.' :</b> 156 <table>'; 157 foreach ($config as $key => $value) { 158 echo '<tr> 159 <td>'.$key.' :</td> 160 <td>'.bool_to_string($value).'</td> 161 </tr>'; 162 } 163 echo '</table> 164 </li>'; 165 } 166 echo '</ul> 167 </li> 168 </ul> 169 </div>'; 98 170 ?> -
extensions/PHP_Optimisateur/files/functions.php
r7991 r7993 5 5 \***************************************/ 6 6 7 // Affiche les textes 8 function l10n($code){ 9 global $Lang; 10 if (isset($Lang[$code])) { 11 $args = func_get_args(); 12 if (count($args) > 1) { 13 array_shift($args); 14 return vsprintf($Lang[$code], $args); 15 } else { 16 return $Lang[$code]; 17 } 18 } else { 19 return $code; 20 } 21 } 22 23 // Trouve la langue 24 function GetLanguage(){ 25 // tableau avec les langues installées 26 $dh = opendir('language'); 27 while ($file = readdir($dh)) { 28 if ($file !== '.' && $file !== '..' && is_dir('language/'.$file)) 29 $languages[] = $file; 30 } 31 closedir($dh); 32 33 // recherche du paramètre get ou session, ou langue du navigateur 34 if(isset($_GET['Lang'])) 35 $_SESSION['Lang'] = $_GET['Lang']; 36 else if(!isset($_SESSION['Lang']) OR $_SESSION['Lang'] == NULL) 37 $_SESSION['Lang'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); 38 if(!in_array($_SESSION['Lang'], $languages)) 39 $_SESSION['Lang'] = 'en'; 40 41 return array('Lang' => $_SESSION['Lang'], 'languages' => $languages); 42 } 43 7 44 // Supprime les accents et tous caractères non conforme 8 45 function delete_special_car($string) { 9 46 global $renameORNOT; 10 $search = array ('#[éèêë]#','#[ÊËÈÉ]#','#[àâäã]#','#[ÂÄÁÀ]#','#[îïíì]#','#[ÎÏÍÌ]#','#[ûùüú]#','#[ÛÙÚÜ]#','#[ôóòõö]#','#[ÓÒÖÔÕ]#', 11 '#[ç]#','#[Ç]#','#[ñ]#','#[Ñ]#','#[ýÿ]#','#[Ý]#','#[ \&\!\#\"\(\)\{\}\'\=\+\~]#','#[^a-zA-Z0-9_\.\-]#'); 47 48 $search = array ('#[éèêë]#','#[ÊËÈÉ]#','#[àâäã]#','#[ÂÄÁÀ]#','#[îïíì]#','#[ÎÏÍÌ]#','#[ûùüúµ]#','#[ÛÙÚÜ]#','#[ôóòõö]#','#[ÓÒÖÔÕ]#', 49 '#[ç]#','#[Ç]#','#[ñ]#','#[Ñ]#','#[ýÿ]#','#[Ý]#','#[ \&\!\?\#\"\(\)\{\}\[\]\=\+\~\%]#','#[^a-zA-Z0-9_\.\-]#'); 12 50 $replace = array ('e','E','a','A','i','I','u','U','o','O','c','C',',n','N','y','Y','_',''); 13 51 14 return preg_replace($search, $replace, $string); 52 if ($renameORNOT) { 53 return preg_replace($search, $replace, $string); 54 } else { 55 return str_replace(array('%','$'), '_', $string); 56 } 15 57 } 16 58 … … 50 92 $dh = opendir($dir); 51 93 } else { 52 exit ;94 exit('Dossier inexistant'); 53 95 } 54 96 while (($file = readdir($dh)) !== false ) { … … 97 139 } 98 140 141 // Charge la configuration 142 function load_config() { 143 $config = simplexml_load_file('config.xml'); 144 $config = XMLParse($config); 145 $config = array_settype($config); 146 return $config; 147 } 148 99 149 // Convertit les booléens, entiers et flotants d'un tableau de 'string' 100 150 function array_settype($array) { … … 120 170 // Booléen vers français ou texte 121 171 function bool_to_string($bool, $just_echo=0) { 172 global $Lang; 122 173 # $just_echo pour pouvoir afficher un booléen tel quel 123 174 if (is_bool($bool)) { 124 175 if ($bool) { 125 176 if ($just_echo) return 'true'; 126 else return 'oui';177 else return l10n('yes'); 127 178 } else { 128 179 if ($just_echo) return 'false'; 129 else return 'non';180 else return l10n('no'); 130 181 } 131 182 } else { -
extensions/PHP_Optimisateur/files/header.php
r7991 r7993 5 5 \***************************************/ 6 6 7 session_start(); 7 8 $APPversion = '1.1'; 9 $user_lang = GetLanguage(); 10 include('language/'.$user_lang['Lang'].'/'.$user_lang['Lang'].'.php'); 11 8 12 echo '<?xml version="1.0" encoding="utf-8"?> 9 13 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 10 14 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml" lang=" fr" xml:lang="fr">15 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 12 16 <head> 13 17 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> … … 16 20 </head> 17 21 <body> 18 <div class="title">PHP Optimisateur '.$APPversion.'</div>'; 22 <div class="title"> 23 PHP Optimisateur '.$APPversion; 24 25 foreach ($user_lang['languages'] as $key) { 26 echo '<a class="lang" href="index.php?Lang='.$key.'"><img src="language/'.$key.'/'.$key.'.png"/></a>'; 27 } 28 29 echo '</div>'; 19 30 ?> -
extensions/PHP_Optimisateur/files/style.css
r7991 r7993 21 21 float:left; 22 22 } 23 div.title { 24 float:none; 25 width:942px; 26 font-weight:bold; 27 text-align:center; 28 font-size:1.5em; 29 background:#333; 30 color:#eee; 31 border-color:#eee; 32 } 33 div.files li { 34 margin-top:0; 35 } 36 37 div.finish { 38 background:#DAFFBF; 39 font-weight:bold; 40 font-size:1.2em; 41 } 42 43 div.error { 44 background:#FFD0BF; 45 font-weight:bold; 46 font-size:1.2em; 47 } 23 48 24 49 a { … … 29 54 margin-bottom:1px; 30 55 } 31 a:hover {32 color:#555;33 border-bottom:1px dotted #555;34 margin-bottom:0;35 }56 a:hover { 57 color:#555; 58 border-bottom:1px dotted #555; 59 margin-bottom:0; 60 } 36 61 37 62 h2 { … … 42 67 margin:0 0 0 20px; 43 68 } 44 li {45 margin-top:5px;46 }47 li ul li {48 margin-top:0;49 }69 li { 70 margin-top:5px; 71 } 72 li ul li { 73 margin-top:0; 74 } 50 75 51 div.title {52 float:none;53 width:902px;54 padding:10px 30px;55 font-weight:bold;56 text-align:center;57 font-size:1.5em;58 background:#333;59 color:#eee;60 border-color:#eee;61 }62 .files li {63 margin-top:0;64 }65 76 66 .finish {67 background:#DAFFBF;68 font-weight:bold;69 font-size:1.2em;70 }71 72 .error {73 background:#FFD0BF;74 font-weight:bold;75 font-size:1.2em;76 }77 77 78 78 input { … … 96 96 width:50%; 97 97 } 98 tr td:first-child {99 text-align:right;100 padding-right:5px;101 }98 tr td:first-child { 99 text-align:right; 100 padding-right:5px; 101 } -
extensions/PHP_Optimisateur/index.php
r7991 r7993 8 8 $TIME_START = microtime(true); 9 9 10 include('files/functions.php'); 10 11 include('files/header.php'); 11 include('files/functions.php');12 12 13 13 … … 16 16 // Fichier de configuration 17 17 if (!file_exists('config.xml')) { 18 die('<div class="error">Erreur fatale : Fichier de configuration introuvable. <a href="index.php">Retour</a></div>'); 18 $Errors['ErrorFile'] = true; 19 20 } else { 21 // Configuration 22 extract(load_config()); 23 24 // Afficher la configuration 25 if (!$silentORNOT) { 26 include('files/display_config.php'); 27 } 28 29 // Dossiers 30 if (!file_exists($DIRsource)) { 31 mkdir($DIRsource); 32 } 33 if (!file_exists($DIRsortie)) { 34 mkdir($DIRsortie); 35 } 36 if (is_dir_empty($DIRsource)) { 37 $Errors['ErrorFolderIn'] = true; 38 } 39 if ($silentORNOT) { 40 rrmdir($DIRsortie); // Si mode silencieux 41 mkdir($DIRsortie); // vidage automatique du dossier de sortie 42 } else if (!is_dir_empty($DIRsortie)) { 43 $Errors['ErrorFolderOut'] = true; 44 } 19 45 } 20 46 21 // Configuration 22 $config = simplexml_load_file('config.xml'); 23 $config = XMLParse($config); 24 $config = array_settype($config);25 extract($config); 26 27 // Afficher la configuration 28 if (!$silentORNOT) { 29 include('files/display_config.php');47 48 ### ERREURS ### 49 if (isset($Errors)) { 50 $i=0; 51 foreach ($Errors as $key => $null) { 52 // Dégueulasse les ternaires à la suite ! mais j'aime ça 53 echo '<div class="error">'.l10n($key).' '.(($i==0)?'<a href="index.php">'.l10n('Back').'</a> '.(($key!='ErrorFile')?'<a href="setup.php">'.l10n('Config').'</a></div>':'</div>'):'</div>'); 54 $i++; 55 } 30 56 } 31 57 32 // Dossiers33 if (!file_exists($DIRsource)) {34 mkdir($DIRsource);35 }36 if (!file_exists($DIRsortie)) {37 mkdir($DIRsortie);38 }39 if (is_dir_empty($DIRsource)) {40 die('<div class="error">Erreur fatale : Dossier source vide. <a href="index.php">Retour</a> <a href="setup.php">Configurer</a></div>');41 }42 if ($silentORNOT) {43 rrmdir($DIRsortie); // Si mode silencieux44 mkdir($DIRsortie); // vidage automatique du dossier de sortie45 } else if (!is_dir_empty($DIRsortie)) {46 die('<div class="error">Erreur fatale : Dossier de sortie non vide. <a href="index.php">Retour</a> <a href="setup.php">Configurer</a></div>');47 }48 49 58 50 59 51 60 ### EXECUTION ### 52 if (isset($_GET['Process']) ) {61 if (isset($_GET['Process']) AND !isset($Errors)) { 53 62 54 63 ### Supprimer les caractères spéciaux - dossiers & fichiers ### 55 if ($renameORNOT) { 56 function recursive_delete_special_car($dir) { 57 $dir = rtrim($dir, '/'); 58 $dh = opendir($dir); 59 60 while (($file = readdir($dh)) !== false ) { 61 if ($file !== '.' && $file !== '..') { 62 $path = $dir.'/'.$file; 63 $new_path = $dir.'/'.delete_special_car($file); 64 rename($path, $new_path); 65 66 if (is_dir($new_path)) { 67 recursive_delete_special_car($new_path); 68 } 64 // Les caractères '%' et '$' sont systématiquement échappés, ca génère des bugs dans les noms de fichiers 65 function recursive_delete_special_car($dir) { 66 $dir = rtrim($dir, '/'); 67 $dh = opendir($dir); 68 69 while (($file = readdir($dh)) !== false ) { 70 if ($file !== '.' && $file !== '..') { 71 $path = $dir.'/'.$file; 72 $new_path = $dir.'/'.delete_special_car($file); 73 rename($path, $new_path); 74 75 if (is_dir($new_path)) { 76 recursive_delete_special_car($new_path); 69 77 } 70 78 } 71 closedir($dh);72 }73 74 recursive_delete_special_car($DIRsource); 75 }79 } 80 closedir($dh); 81 } 82 83 recursive_delete_special_car($DIRsource); 76 84 77 85 … … 150 158 if (!$silentORNOT) { 151 159 echo '<div class="files"> 152 <h2> Fichiers source</h2>160 <h2>'.l10n('Source files').'</h2> 153 161 <ul>'; 154 162 foreach ($FilesSource as $value) { … … 156 164 } 157 165 echo '</ul> 158 <i>'. count($FilesSource).' fichiers</i>166 <i>'.l10n('%d files', count($FilesSource)).'</i> 159 167 </div>'; 160 168 } … … 188 196 189 197 190 echo '<div class="finish"> Opération terminée : '.intval((microtime(true)-$TIME_START)) .' secondes. <a href="index.php">Retour</a> <a href="setup.php">Configurer</a></div>';198 echo '<div class="finish">'.l10n('Finish %d seconds', intval((microtime(true)-$TIME_START))).' <a href="index.php">'.l10n('Back').'</a> <a href="setup.php">'.l10n('Config').'</a></div>'; 191 199 192 200 193 201 194 } else {195 echo '<div class="finish"> Prêt à commencer. <a href="index.php?Process=true">Exécuter</a> <a href="setup.php">Configurer</a></div>';202 } else if (!isset($Errors)) { 203 echo '<div class="finish">'.l10n('Ready').' <a href="index.php?Process=true">'.l10n('Launch').'</a> <a href="setup.php">'.l10n('Config').'</a></div>'; 196 204 } 197 205 -
extensions/PHP_Optimisateur/setup.php
r7991 r7993 15 15 if(!isset($_POST['PluginsProcess'])) $_POST['PluginsProcess'] = null; 16 16 if(!isset($_POST['PluginsAfter'])) $_POST['PluginsAfter'] = null; 17 if (!preg_match('#(.*)/$#', $_POST['DIRsource'])) $_POST['DIRsource'] .= '/'; 18 if (!preg_match('#(.*)/$#', $_POST['DIRsortie'])) $_POST['DIRsortie'] .= '/'; 17 19 18 20 // Contenu du fichier … … 28 30 include('files/header.php'); 29 31 30 31 32 // Fichier de configuration 32 33 if (!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); 40 extract($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 51 foreach ($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; 34 $Errors['ErrorFile'] = true; 35 } 36 37 38 39 ### ERREURS ### 40 if (isset($Errors)) { 41 $i=0; 42 foreach ($Errors as $key => $null) { 43 // Dégueulasse les ternaires à la suite ! mais j'aime ça 44 echo '<div class="error">'.l10n($key).' '.(($i==0)?'<a href="setup.php">'.l10n('Back').'</a></div>':'</div>'); 45 $i++; 64 46 } 65 47 } 66 48 67 49 68 ### Formulaire ### 69 echo ' 70 <script type="text/javascript"> 71 function suivant(enCours, suivant, limite) { 72 if (enCours.value.length == limite) { 73 enCours.form.elements[suivant].select(); 50 51 ### EXECUTION ### 52 if (!isset($Errors)) { 53 // Configuration 54 extract(load_config()); 55 56 $copyCOLOR = explode(' ', $copyCOLOR); 57 $copyPOS = explode('-', $copyPOS); 58 59 60 ### Gestion des nouveaux plugins ### 61 // Ajoute la configuration des plugins non-installés aux tableaux, il faut valider le formulaire pour les installer 62 $Plugins = glob('plugins/*.xml'); 63 $NewPlugins = array(); 64 65 foreach ($Plugins as $plugin) { 66 // nom du plugin 67 preg_match('#plugins/(.*).xml#', $plugin, $matches); 68 $plugin_name = $matches[1]; 69 // configuration du plugin 70 $plugin = XMLparse(simplexml_load_file($plugin)); 71 // mode du plugin (effacage pour pas l'inscrire dans la config) 72 $plugin_mode = $plugin['mode']; 73 unset($plugin['mode']); 74 75 if (!array_key_exists($plugin_name, ${$plugin_mode})) { 76 ${$plugin_mode}[$plugin_name] = $plugin; 77 $NewPlugins[$plugin_name] = true; 74 78 } 75 79 } 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> 80 81 82 ### Formulaire ### 83 echo ' 84 <script type="text/javascript"> 85 function suivant(enCours, suivant, limite) { 86 if (enCours.value.length == limite) { 87 enCours.form.elements[suivant].select(); 88 } 89 } 90 </script> 91 92 <form action="setup.php" method="post"> 93 <div class="config"> 94 <h2>'.l10n('Configuration').'</h2> 95 <ul> 96 <li> 97 <span class="title">'.l10n('Folders').'</span> 98 <table> 99 <tr> 100 <td><b>'.l10n('FolderIn').' :</b></td> 101 <td><input type="text" name="DIRsource" value="'.$DIRsource.'"/></td> 102 </tr> 103 <tr> 104 <td><b>'.l10n('FolderOut').' :</b></td> 105 <td><input type="text" name="DIRsortie" value="'.$DIRsortie.'"/></td> 106 </tr> 107 </table> 108 </li> 109 <li> 110 <span class="title">'.l10n('Options').'</span> 111 <table> 112 <tr> 113 <td><b>'.l10n('silentORNOT').' :</b></td> 114 <td><input type="radio" name="silentORNOT" value="true" '.(($silentORNOT)?'checked':'').'/> '.l10n('yes').' <input type="radio" name="silentORNOT" value="false" '.((!$silentORNOT)?'checked':'').'/> '.l10n('no').'</td> 115 </tr> 116 <tr> 117 <td><b>'.l10n('DIRhighORNOT').' :</b></td> 118 <td><input type="radio" name="DIRhighORNOT" value="true" '.(($DIRhighORNOT)?'checked':'').'/> '.l10n('yes').' <input type="radio" name="DIRhighORNOT" value="false" '.((!$DIRhighORNOT)?'checked':'').'/> '.l10n('no').'</td> 119 </tr> 120 <tr> 121 <td><b>'.l10n('DIMhdORNOT').' :</b></td> 122 <td><input type="radio" name="DIMhdORNOT" value="true" '.(($DIMhdORNOT)?'checked':'').'/> '.l10n('yes').' <input type="radio" name="DIMhdORNOT" value="false" '.((!$DIMhdORNOT)?'checked':'').'/> '.l10n('no').'</td> 123 </tr> 124 <tr> 125 <td><b>'.l10n('renameORNOT').' :</b></td> 126 <td><input type="radio" name="renameORNOT" value="true" '.(($renameORNOT)?'checked':'').'/> '.l10n('yes').' <input type="radio" name="renameORNOT" value="false" '.((!$renameORNOT)?'checked':'').'/> '.l10n('no').'</td> 127 </tr> 128 <tr> 129 <td><b>'.l10n('indexORNOT').' :</b></td> 130 <td><input type="radio" name="indexORNOT" value="true" '.(($indexORNOT)?'checked':'').'/> '.l10n('yes').' <input type="radio" name="indexORNOT" value="false" '.((!$indexORNOT)?'checked':'').'/> '.l10n('no').'</td> 131 </tr> 132 <tr> 133 <td><b>'.l10n('prefixe_mini').' :</b></td> 134 <td><input type="text" name="prefixe_mini" value="'.$prefixe_mini.'" size="8"/></td> 135 </tr> 136 </table> 137 </li> 138 <li> 139 <span class="title">'.l10n('Sizes and quality').'</span> 140 <table> 141 <tr> 142 <td><b>'.l10n('DIMhd').' :</b></td> 143 <td><input type="text" name="DIMhd" value="'.$DIMhd.'" size="4"/></td> 144 </tr> 145 <tr> 146 <td><b>'.l10n('DIMnormal').' :</b></td> 147 <td><input type="text" name="DIMnormal" value="'.$DIMnormal.'" size="3"/></td> 148 </tr> 149 <tr> 150 <td><b>'.l10n('DIMthumbnail').' :</b></td> 151 <td><input type="text" name="DIMthumbnail" value="'.$DIMthumbnail.'" size="3"/></td> 152 </tr> 153 <tr> 154 <td><b>'.l10n('Qhd').' :</b></td> 155 <td><input type="text" name="Qhd" value="'.$Qhd.'" size="3"/></td> 156 </tr> 157 <tr> 158 <td><b>'.l10n('Qnormal').' :</b></td> 159 <td><input type="text" name="Qnormal" value="'.$Qnormal.'" size="3"/></td> 160 </tr> 161 <tr> 162 <td><b>'.l10n('Qthumbnail').' :</b></td> 163 <td><input type="text" name="Qthumbnail" value="'.$Qthumbnail.'" size="3"/></td> 164 </tr> 165 <tr> 166 <td><b>'.l10n('DPI').' :</b></td> 167 <td><input type="text" name="DPI" value="'.$DPI.'" size="3"/></td> 168 </tr> 169 </table> 170 </li> 171 <li> 172 <span class="title">'.l10n('Copyright').'</span> 173 <table> 174 <tr> 175 <td><b>'.l10n('Content').' :</b></td> 176 <td><input type="text" name="copyright" value="'.$copyright.'"/></td> 177 </tr> 178 <tr> 179 <td><b>'.l10n('copyONhd').' :</b></td> 180 <td><input type="radio" name="copyONhd" value="true" '.(($copyONhd)?'checked':'').'/> '.l10n('yes').' <input type="radio" name="copyONhd" value="false" '.((!$copyONhd)?'checked':'').'/> '.l10n('no').'</td> 181 </tr> 182 <tr> 183 <td><b>'.l10n('copyONnormal').' :</b></td> 184 <td><input type="radio" name="copyONnormal" value="true" '.(($copyONnormal)?'checked':'').'/> '.l10n('yes').' <input type="radio" name="copyONnormal" value="false" '.((!$copyONnormal)?'checked':'').'/> '.l10n('no').'</td> 185 </tr> 186 <tr> 187 <td><b>'.l10n('copyPOS%s', l10n('copyPOSv')).' :</b></td> 188 <td><input type="radio" name="copyPOS[0]" value="top" '.(($copyPOS[0]=='top')?'checked':'').'/> '.l10n('top').' <input type="radio" name="copyPOS[0]" value="center" '.(($copyPOS[0]=='center')?'checked':'').'/> '.l10n('center').' <input type="radio" name="copyPOS[0]" value="bottom" '.(($copyPOS[0]=='bottom')?'checked':'').'/> '.l10n('bottom').'</td> 189 </tr> 190 <tr> 191 <td><b>'.l10n('copyPOS%s', l10n('copyPOSh')).' :</b></td> 192 <td><input type="radio" name="copyPOS[1]" value="left" '.(($copyPOS[1]=='left')?'checked':'').'/> '.l10n('left').' <input type="radio" name="copyPOS[1]" value="center" '.(($copyPOS[1]=='center')?'checked':'').'/> '.l10n('center').' <input type="radio" name="copyPOS[1]" value="right" '.(($copyPOS[1]=='right')?'checked':'').'/> '.l10n('right').'</td> 193 </tr> 194 <tr> 195 <td><b>'.l10n('copySIZE').' :</b></td> 196 <td><input type="text" name="copySIZE" value="'.$copySIZE.'" size="5"/></td> 197 </tr> 198 <tr> 199 <td><b>'.l10n('copyCOLOR').' :</b></td> 200 <td> 201 <input type="text" name="copyCOLOR[0]" value="'.$copyCOLOR[0].'" size="3" onFocus="this.select();" onKeyUp="suivant(this,\'copyCOLOR[1]\', 3)"/> 202 <input type="text" name="copyCOLOR[1]" value="'.$copyCOLOR[1].'" size="3" onFocus="this.select();" onKeyUp="suivant(this,\'copyCOLOR[2]\', 3)"/> 203 <input type="text" name="copyCOLOR[2]" value="'.$copyCOLOR[2].'" size="3" onFocus="this.select();" /> 204 </td> 205 </tr> 206 <tr> 207 <td><b>'.l10n('copyFONT').' :</b></td> 208 <td><input type="text" name="copyFONT" value="'.$copyFONT.'"/></td> 209 </tr> 210 </table> 211 </li> 198 212 </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>'; 213 </div> 214 215 <div class="config"> 216 <h2>'.l10n('Plugins').'</h2> 217 <ul> 218 <li> 219 <span class="title">'.l10n('PluginsBefore').'</span> 220 <ul>'; 221 foreach ($PluginsBefore as $name => $config) { 222 echo '<li> 223 <b class="'.((isset($NewPlugins[$name]))?'new':'').'">'.$name.' :</b> 224 <table>'; 225 foreach ($config as $key => $value) { 226 echo '<tr> 227 <td>'.$key.' :</td> 228 <td><input type="text" name="PluginsBefore['.$name.']['.$key.']" value="'.bool_to_string($value,1).'" size="7"/></td> 229 </tr>'; 230 } 231 echo '</table> 232 </li>'; 233 } 234 echo '</ul> 235 </li> 236 <li> 237 <span class="title">'.l10n('PluginsProcess').'</span> 238 <ul>'; 239 foreach ($PluginsProcess as $name => $config) { 240 echo '<li> 241 <b class="'.((isset($NewPlugins[$name]))?'new':'').'">'.$name.' :</b> 242 <table>'; 243 foreach ($config as $key => $value) { 244 echo '<tr> 245 <td>'.$key.' :</td> 246 <td><input type="text" name="PluginsProcess['.$name.']['.$key.']" value="'.bool_to_string($value,1).'" size="7"/></td> 247 </tr>'; 248 } 249 echo '</table> 250 </li>'; 251 } 252 echo '</ul> 253 </li> 254 <li> 255 <span class="title">'.l10n('PluginsAfter').'</span> 256 <ul>'; 257 foreach ($PluginsAfter as $name => $config) { 258 echo '<li> 259 <b class="'.((isset($NewPlugins[$name]))?'new':'').'">'.$name.' :</b> 260 <table>'; 261 foreach ($config as $key => $value) { 262 echo '<tr> 263 <td>'.$key.' :</td> 264 <td><input type="text" name="PluginsAfter['.$name.']['.$key.']" value="'.bool_to_string($value,1).'" size="7"/></td> 265 </tr>'; 266 } 267 echo '</table> 268 </li>'; 269 } 270 echo '</ul> 271 </li> 272 </ul> 273 </div> 274 275 <div class="finish"> 276 <input type="submit"/> <input type="reset"/> <a href="index.php">'.l10n('Back').'</a> 277 </div> 278 </form>'; 279 } 280 281 echo '</body> 282 </html>'; 265 283 ?>
Note: See TracChangeset
for help on using the changeset viewer.