Changeset 90132 in spip-zone
- Timestamp:
- Jun 13, 2015, 9:40:27 AM (6 years ago)
- Location:
- _plugins_/mutualisation
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/mutualisation
-
Property
svn:ignore
set to
.phpintel
-
Property
svn:ignore
set to
-
_plugins_/mutualisation/branches/v0/exec/mutualisation.php
r86563 r90132 1 1 <?php 2 header( 'charset:UTF-8' ); 3 4 if (!defined("_ECRIRE_INC_VERSION")) return; 5 6 7 function exec_mutualisation_dist() { 8 global $auteur_session; 9 $ustart = memory_get_peak_usage(true); 10 $timestart=microtime(true); 11 $memory_limit = strtolower(ini_get('memory_limit')); 12 13 include_spip('inc/minipres'); 14 include_spip('inc/filtres'); 15 16 // pas admin ? passe ton chemin 17 if ( ($auteur_session['statut'] != '0minirezo') and ( $_SERVER["REMOTE_ADDR"]!='127.0.0.1')) 18 die('pas admin !'); 19 20 $lister_sites = charger_fonction('lister_sites','mutualisation'); 21 $sites = $lister_sites(); 22 23 $branche_nom = "spip-" . $GLOBALS['spip_version_branche'] ; 24 $version_spip = intval($GLOBALS['spip_version_branche']) ; 25 26 27 $url_stats = 'ecrire/?exec=statistiques_visites'; 28 $url_compresseur = 'ecrire/?exec=config_fonctions#configurer-compresseur'; 29 $url_admin_plugin = 'ecrire/?exec=admin_plugin'; 30 $url_admin_vider = 'ecrire/?exec=admin_vider'; 31 32 if (!file_exists(_DIR_IMG.'mutualiser.png')) 33 @copy(find_in_path('mutualiser.png'), _DIR_IMG.'mutualiser.png'); 34 35 $titre .= _L(count($sites).' '.'sites mutualisés <em>(' . _T('version') . ' ' . $GLOBALS['spip_version_base'].')</em>'); 36 37 $page .= '<script type="text/javascript"> 2 3 header('charset:UTF-8'); 4 5 if (!defined('_ECRIRE_INC_VERSION')) { 6 return; 7 } 8 9 function exec_mutualisation_dist() 10 { 11 global $auteur_session; 12 $ustart = memory_get_peak_usage(true); 13 $timestart = microtime(true); 14 $memory_limit = strtolower(ini_get('memory_limit')); 15 16 include_spip('inc/minipres'); 17 include_spip('inc/filtres'); 18 19 // pas admin ? passe ton chemin 20 if (($auteur_session['statut'] != '0minirezo') and ($_SERVER['REMOTE_ADDR'] != '127.0.0.1')) { 21 die('pas admin !'); 22 } 23 24 $lister_sites = charger_fonction('lister_sites', 'mutualisation'); 25 $sites = $lister_sites(); 26 27 $branche_nom = 'spip-'.$GLOBALS['spip_version_branche']; 28 $version_spip = intval($GLOBALS['spip_version_branche']); 29 30 $url_stats = 'ecrire/?exec=statistiques_visites'; 31 $url_compresseur = 'ecrire/?exec=config_fonctions#configurer-compresseur'; 32 $url_admin_plugin = 'ecrire/?exec=admin_plugin'; 33 $url_admin_vider = 'ecrire/?exec=admin_vider'; 34 35 if (!file_exists(_DIR_IMG.'mutualiser.png')) { 36 @copy(find_in_path('mutualiser.png'), _DIR_IMG.'mutualiser.png'); 37 } 38 39 $titre .= _L(count($sites).' '.'sites mutualisés <em>('._T('version').' '.$GLOBALS['spip_version_base'].')</em>'); 40 41 $page .= '<script type="text/javascript"> 38 42 //<![CDATA[ 39 43 var tableau_sites = new Array(); … … 41 45 </script>'; 42 46 43 44 47 //$page .= "<div id='trace'></div>" ; 48 $page .= "<table style='clear:both;'> 45 49 <thead> 46 50 <tr> … … 62 66 <tbody>"; 63 67 64 $nsite = 1; 65 66 # aliases pour l'affichage court 67 $alias = array(); 68 foreach ($sites as $v) { 69 $redux = preg_replace(',^www\.|\..*$,', '', $v); 70 if (!in_array($redux, $alias)) 71 $alias[$v] = $redux; 72 else 73 $alias[$v] = $v; 74 } 75 76 // Recuperer la liste des plugins connus de l'instance SPIP en cours (celle qui est appelee par ecrire/?exec=mutualisation) 77 include_spip('inc/plugin'); 78 $liste_plug = liste_plugin_files(); 79 $liste_plug_compat = liste_plugin_valides($liste_plug); 80 $liste_plug_compat_base = $liste_plug_compat[2]; 81 $liste_plug_compat = $liste_plug_compat[0]; 82 83 foreach ($sites as $v) { 84 $nom_site=$stats=$plugins=$erreur=$version_installee=""; 85 86 if (lire_fichier_securise(_DIR_RACINE.$GLOBALS['mutualisation_dir'].'/'.$v.'/tmp/meta_cache.php', $meta) 87 AND is_array($meta = @unserialize($meta)) 88 AND $url = $meta['adresse_site']) { 89 $url .= '/'; 90 $nom_site = sinon(importer_charset($meta['nom_site'], $meta['charset']), $v); 91 $stats = intval($meta['popularite_total']); 92 if ($cfg = @unserialize($meta['plugin'])) { 93 $plugins = array_keys($cfg); 94 ksort($plugins); 95 foreach ($plugins as $plugin) { 96 $lsplugs[strtolower($plugin)][] = $alias[$v]; 97 $versionplug[strtolower($plugin)] = $cfg[$plugin]['version']; 98 } 99 $cntplugins = count($plugins); 100 $plugins = strtolower(join(', ', $plugins)); 101 } else 102 $plugins = '-'; 103 104 // S'il faut upgrader, creer un bouton qui permettra 105 // de faire la mise a jour directement depuis le site maitre 106 // Pour cela, on cree un bouton avec un secret, que mutualiser.php 107 // va intercepter (pas terrible ?) 108 $erreur = test_upgrade_site($meta); 109 $adminplugin = adminplugin_site($meta, $liste_plug_compat, $liste_plug_compat_base); 110 $credential = test_credential_site($meta, $v); 111 $version_installee = ' <em><small>'.$meta['version_installee'].'</small></em>'; 112 } 113 else { 114 $url = 'http://'.$v.'/'; 115 $erreur = ' <em><small><span class="erreur">Erreur !</span></small></em>'; 116 $plugins = '-'; 117 } 118 119 $compression = ''; 120 if ($meta['auto_compress_css']=='oui') 121 $compression .= 'CSS'; 122 if ($meta['auto_compress_js']=='oui') 123 $compression .= ($compression!='') ? '+JS':'JS'; 124 if ($meta['auto_compress_http']=='oui') 125 $compression .= ($compression!='') ? '+HTTP':'HTTP'; 126 if ($compression=='') 127 $compression = _L('Activer'); 128 $page .= '<script type="text/javascript"> 68 $nsite = 1; 69 70 # aliases pour l'affichage court 71 $alias = array(); 72 foreach ($sites as $v) { 73 $redux = preg_replace(',^www\.|\..*$,', '', $v); 74 if (!in_array($redux, $alias)) { 75 $alias[$v] = $redux; 76 } else { 77 $alias[$v] = $v; 78 } 79 } 80 81 // Recuperer la liste des plugins connus de l'instance SPIP en cours (celle qui est appelee par ecrire/?exec=mutualisation) 82 include_spip('inc/plugin'); 83 $liste_plug = liste_plugin_files(); 84 $liste_plug_compat = liste_plugin_valides($liste_plug); 85 $liste_plug_compat_base = $liste_plug_compat[2]; 86 $liste_plug_compat = $liste_plug_compat[0]; 87 88 foreach ($sites as $v) { 89 $nom_site = $stats = $plugins = $erreur = $version_installee = ''; 90 91 if (lire_fichier_securise(_DIR_RACINE.$GLOBALS['mutualisation_dir'].'/'.$v.'/tmp/meta_cache.php', $meta) 92 and is_array($meta = @unserialize($meta)) 93 and $url = $meta['adresse_site']) { 94 $url .= '/'; 95 $nom_site = sinon(importer_charset($meta['nom_site'], $meta['charset']), $v); 96 $stats = intval($meta['popularite_total']); 97 if ($cfg = @unserialize($meta['plugin'])) { 98 $plugins = array_keys($cfg); 99 ksort($plugins); 100 foreach ($plugins as $plugin) { 101 $lsplugs[strtolower($plugin)][] = $alias[$v]; 102 $versionplug[strtolower($plugin)] = $cfg[$plugin]['version']; 103 } 104 $cntplugins = count($plugins); 105 $plugins = strtolower(implode(', ', $plugins)); 106 } else { 107 $plugins = '-'; 108 } 109 110 // S'il faut upgrader, creer un bouton qui permettra 111 // de faire la mise a jour directement depuis le site maitre 112 // Pour cela, on cree un bouton avec un secret, que mutualiser.php 113 // va intercepter (pas terrible ?) 114 $erreur = test_upgrade_site($meta); 115 $adminplugin = adminplugin_site($meta, $liste_plug_compat, $liste_plug_compat_base); 116 $credential = test_credential_site($meta, $v); 117 $version_installee = ' <em><small>'.$meta['version_installee'].'</small></em>'; 118 } else { 119 $url = 'http://'.$v.'/'; 120 $erreur = ' <em><small><span class="erreur">Erreur !</span></small></em>'; 121 $plugins = '-'; 122 } 123 124 $compression = ''; 125 if ($meta['auto_compress_css'] == 'oui') { 126 $compression .= 'CSS'; 127 } 128 if ($meta['auto_compress_js'] == 'oui') { 129 $compression .= ($compression != '') ? '+JS' : 'JS'; 130 } 131 if ($meta['auto_compress_http'] == 'oui') { 132 $compression .= ($compression != '') ? '+HTTP' : 'HTTP'; 133 } 134 if ($compression == '') { 135 $compression = _L('Activer'); 136 } 137 $page .= '<script type="text/javascript"> 129 138 //<![CDATA[ 130 139 tableau_sites.push(["../../'.$GLOBALS['mutualisation_dir'].'/'.$v.'"]); … … 132 141 </script>'; 133 142 134 $page .= "<tr class='tr".$nsite % 2 ."'"135 ." style='background-image: url(${url}ecrire/index.php?exec=mutualisation&renouvelle_alea=yo)' id='$alias[$v]'>143 $page .= "<tr class='tr".$nsite % 2 ."'" 144 ." style='background-image: url(${url}ecrire/index.php?exec=mutualisation&renouvelle_alea=yo)' id='$alias[$v]'> 136 145 <td style='text-align:right;'><img src='${url}favicon.ico' style='float:left;' />$v$erreur$credential$version_installee</td> 137 146 <td><a href='${url}'>".typo($nom_site)."</a></td> … … 147 156 <td style='text-align:right;'>".date_creation_repertoire_site($v)."</td> 148 157 </tr>\n"; 149 $nsite++; 150 } 151 $page .= "</tbody></table>"; 152 153 154 if ($lsplugs) { 155 $nombre_plugins = count($lsplugs) ; 156 $page .= "<br /><br /><table style='clear:both;'> 158 $nsite++; 159 } 160 $page .= '</tbody></table>'; 161 162 if ($lsplugs) { 163 $nombre_plugins = count($lsplugs); 164 $page .= "<br /><br /><table style='clear:both;'> 157 165 <thead> 158 166 <tr> … … 164 172 </thead> 165 173 <tbody>"; 166 foreach ($lsplugs as $plugin => $c){167 $plnum[count($c)] .= "<tr><td>".count($c)."</td><td>$plugin</td>"168 ."<td>".$versionplug[$plugin]."</td><td>".join(', ', ancre_site($c)).'</td></tr>';169 170 171 $page .= join('', $plnum);172 173 174 175 $inutile= array();176 $extract = array();177 $list = array(); 178 179 $ustart_glob = memory_get_peak_usage(true); 180 // Si on est sur un spip 2 181 // correspond à plugins/nom_plugin/fichier.xml 182 if (glob(_DIR_PLUGINS . '*/plugin.xml')) {183 foreach (glob(_DIR_PLUGINS . '*/plugin.xml') as $value) { 184 $list[] = $value; 185 186 } 187 // correspond à plugins/auto/nom_plugin/fichier.xml 188 if (glob(_DIR_PLUGINS . '*/*/plugin.xml')) {189 foreach (glob(_DIR_PLUGINS . '*/*/plugin.xml') as $value) { 190 $list[] = $value; 191 192 } 193 194 foreach ($list as $url) { 195 // là, on reprend l'ancien code. On cherche la valeur de la balise prefix 196 if (preg_match(',<prefix>([^<]+),ims', file_get_contents($url), $r) 197 AND !$lsplugs[strtolower(trim($r[1]))]) 198 $inutile[] = trim($r[1]); 199 200 201 202 203 204 205 206 207 $nombre_plugins_inutiles =count($inutile);208 $page .= "<p><strong>"._L('Plugins inutilisés :')."</strong> ".join(', ', $inutile).".<br />";209 $page .= "<em>Soit " . $nombre_plugins_inutiles . _L(' plugins inutilisés') . ".</em></p>";210 211 212 213 214 .find_in_path('mutualisation/mutualiser.png')215 .'" alt="" /></div>';216 217 218 219 174 foreach ($lsplugs as $plugin => $c) { 175 $plnum[count($c)] .= '<tr><td>'.count($c)."</td><td>$plugin</td>" 176 .'<td>'.$versionplug[$plugin].'</td><td>'.implode(', ', ancre_site($c)).'</td></tr>'; 177 } 178 krsort($plnum); 179 $page .= implode('', $plnum); 180 $page .= "</tbody></table>\n"; 181 182 $inutile = array(); 183 $extract = array(); 184 $list = array(); 185 186 $ustart_glob = memory_get_peak_usage(true); 187 // Si on est sur un spip 2 188 // correspond à plugins/nom_plugin/fichier.xml 189 if ($les_paquets = glob(_DIR_PLUGINS.'*/plugin.xml')) { 190 foreach ($les_paquets as $value) { 191 $list[] = $value; 192 } 193 } 194 // correspond à plugins/auto/nom_plugin/fichier.xml 195 if ($les_paquets = glob(_DIR_PLUGINS.'*/*/plugin.xml')) { 196 foreach ($les_paquets as $value) { 197 $list[] = $value; 198 } 199 } 200 201 foreach ($list as $url) { 202 // là, on reprend l'ancien code. On cherche la valeur de la balise prefix 203 if (preg_match(',<prefix>([^<]+),ims', file_get_contents($url), $r) 204 and !$lsplugs[strtolower(trim($r[1]))]) { 205 $inutile[] = trim($r[1]); 206 } 207 } 208 209 $uend_glob = memory_get_peak_usage(true); 210 211 $inutile = array_map('mb_strtolower', $inutile); 212 sort($inutile); 213 214 if ($inutile) { 215 $nombre_plugins_inutiles = count($inutile); 216 $page .= '<p><strong>'._L('Plugins inutilisés :').'</strong> '.implode(', ', $inutile).'.<br />'; 217 $page .= '<em>Soit '.$nombre_plugins_inutiles._L(' plugins inutilisés').'.</em></p>'; 218 } 219 } 220 221 $page .= '<div style="text-align:center;"><img src="' 222 .find_in_path('mutualisation/mutualiser.png') 223 .'" alt="" /></div>'; 224 225 $page = minipres($titre, $page); 226 227 $page = str_replace('</head>', ' 220 228 <link rel="stylesheet" type="text/css" href="../mutualisation/mutualisation.css" /> 221 229 <script src="../prive/javascript/jquery.js" type="text/javascript"></script> … … 225 233 ', $page); 226 234 227 228 229 $udiff_glob = $uend_glob - $ustart_glob;230 $timeend=microtime(true);231 $time=$timeend-$timestart;232 233 234 235 236 237 238 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-php_info'></i></div>\n";239 $debug_toolbar .= "<div class='toolbar-info'>\n";240 $debug_toolbar .= "<div class='toolbar-info-element'><b>SPIP</b> <span>" . $GLOBALS['spip_version_branche'] ."</span></div>\n";241 $debug_toolbar .= "<div class='toolbar-info-element'><b>PHP</b> <span>" . phpversion() ."</span></div>\n";242 $debug_toolbar .= "<div class='toolbar-info-element'><b>Mémoire allouées</b> <span>" . $memory_limit ."</span></div>\n";243 $debug_toolbar .= "<div class='toolbar-info-element'><b>Serveur</b> <span>" . $_SERVER['SERVER_SOFTWARE'] ."</span></div>\n";244 $debug_toolbar .= "</div></div>\n";245 246 247 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-plugins'></i><span>". ($nombre_plugins_inutiles + $nombre_plugins) ." plugins</span></div>\n";248 $debug_toolbar .= "<div class='toolbar-info'>\n";249 $debug_toolbar .= "<div class='toolbar-info-element'><b>Utilisés</b> <span>" . $nombre_plugins ."</span></div>\n";250 $debug_toolbar .= "<div class='toolbar-info-element'><b>Inutilisés</b> <span>" . $nombre_plugins_inutiles ."</span></div>\n";251 $debug_toolbar .= "<div class='toolbar-info-element'><b>Total</b> <span>" . ($nombre_plugins_inutiles + $nombre_plugins) ."</span></div>\n";252 $debug_toolbar .= "</div></div>\n";253 254 255 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-memory'></i> <span>". memoryUsage($udiff) . "</span></div>\n";256 $debug_toolbar .= "<div class='toolbar-info'>\n";257 258 $debug_toolbar .= "<div class='toolbar-info-element'><b>Au début</b> <span>" . memoryUsage($ustart) ."</span></div>\n";259 $debug_toolbar .= "<div class='toolbar-info-element'><b>À la fin</b> <span>" . memoryUsage($uend) ."</span></div>\n";260 $debug_toolbar .= "<div class='toolbar-info-element'><b>Différence</b> <span>" . memoryUsage($udiff) ."</span></div>\n";261 $debug_toolbar .= "</div></div>\n";262 263 264 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-time'></i> <span>". $page_load_time . " s</span></div>\n";265 $debug_toolbar .= "<div class='toolbar-info'>";266 $debug_toolbar .= "<div class='toolbar-info-element'><b>Début du script</b> <span>" . date("H:i:s", $timestart) ."</span></div>\n";267 $debug_toolbar .= "<div class='toolbar-info-element'><b>Fin du script</b> <span>" . date("H:i:s", $timeend) ."</span></div>\n";268 $debug_toolbar .= "<div class='toolbar-info-element'><b>Temps d'exécution</b> <span>" . $page_load_time ." s</span></div>\n";269 $debug_toolbar .= "</div></div>\n";270 271 $debug_toolbar .= "</div>\n";272 273 $page = str_replace('</body>', $debug_toolbar ."\n </body>", $page);274 275 } 276 echo $page; 277 } 278 279 280 function test_upgrade_site($meta) { 281 if ($GLOBALS['spip_version_base'] 282 != str_replace(',','.',$meta['version_installee'])) { 283 $secret = $meta['version_installee'].'-'.$meta['popularite_total'];284 $secret = md5($secret); 285 235 $uend = memory_get_peak_usage(true); 236 $udiff = $uend - $ustart; 237 $udiff_glob = $uend_glob - $ustart_glob; 238 $timeend = microtime(true); 239 $time = $timeend - $timestart; 240 $page_load_time = number_format($time, 3); 241 242 if (isset($_GET['debug'])) { 243 $debug_toolbar = "<div class='toolbar'>\n"; 244 245 $debug_toolbar .= "<div class='toolbar-block'>\n"; 246 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-php_info'></i></div>\n"; 247 $debug_toolbar .= "<div class='toolbar-info'>\n"; 248 $debug_toolbar .= "<div class='toolbar-info-element'><b>SPIP</b> <span>".$GLOBALS['spip_version_branche']."</span></div>\n"; 249 $debug_toolbar .= "<div class='toolbar-info-element'><b>PHP</b> <span>".phpversion()."</span></div>\n"; 250 $debug_toolbar .= "<div class='toolbar-info-element'><b>Mémoire allouées</b> <span>".$memory_limit."</span></div>\n"; 251 $debug_toolbar .= "<div class='toolbar-info-element'><b>Serveur</b> <span>".$_SERVER['SERVER_SOFTWARE']."</span></div>\n"; 252 $debug_toolbar .= "</div></div>\n"; 253 254 $debug_toolbar .= "<div class='toolbar-block'>\n"; 255 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-plugins'></i><span>".($nombre_plugins_inutiles + $nombre_plugins)." plugins</span></div>\n"; 256 $debug_toolbar .= "<div class='toolbar-info'>\n"; 257 $debug_toolbar .= "<div class='toolbar-info-element'><b>Utilisés</b> <span>".$nombre_plugins."</span></div>\n"; 258 $debug_toolbar .= "<div class='toolbar-info-element'><b>Inutilisés</b> <span>".$nombre_plugins_inutiles."</span></div>\n"; 259 $debug_toolbar .= "<div class='toolbar-info-element'><b>Total</b> <span>".($nombre_plugins_inutiles + $nombre_plugins)."</span></div>\n"; 260 $debug_toolbar .= "</div></div>\n"; 261 262 $debug_toolbar .= "<div class='toolbar-block'>\n"; 263 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-memory'></i> <span>".memoryUsage($udiff)."</span></div>\n"; 264 $debug_toolbar .= "<div class='toolbar-info'>\n"; 265 $debug_toolbar .= "<div class='toolbar-info-element'><b>Mémoire :</b></div>\n"; 266 $debug_toolbar .= "<div class='toolbar-info-element'><b>Au début</b> <span>".memoryUsage($ustart)."</span></div>\n"; 267 $debug_toolbar .= "<div class='toolbar-info-element'><b>À la fin</b> <span>".memoryUsage($uend)."</span></div>\n"; 268 $debug_toolbar .= "<div class='toolbar-info-element'><b>Différence</b> <span>".memoryUsage($udiff)."</span></div>\n"; 269 $debug_toolbar .= "</div></div>\n"; 270 271 $debug_toolbar .= "<div class='toolbar-block'>\n"; 272 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-time'></i> <span>".$page_load_time." s</span></div>\n"; 273 $debug_toolbar .= "<div class='toolbar-info'>"; 274 $debug_toolbar .= "<div class='toolbar-info-element'><b>Début du script</b> <span>".date('H:i:s', $timestart)."</span></div>\n"; 275 $debug_toolbar .= "<div class='toolbar-info-element'><b>Fin du script</b> <span>".date('H:i:s', $timeend)."</span></div>\n"; 276 $debug_toolbar .= "<div class='toolbar-info-element'><b>Temps d'exécution</b> <span>".$page_load_time." s</span></div>\n"; 277 $debug_toolbar .= "</div></div>\n"; 278 279 $debug_toolbar .= "</div>\n"; 280 281 $page = str_replace('</body>', $debug_toolbar."\n </body>", $page); 282 } 283 echo $page; 284 } 285 286 function test_upgrade_site($meta) 287 { 288 if ($GLOBALS['spip_version_base'] 289 != str_replace(',', '.', $meta['version_installee'])) { 290 $secret = $meta['version_installee'].'-'.$meta['popularite_total']; 291 $secret = md5($secret); 292 293 return <<<EOF 286 294 <form action='$meta[adresse_site]/ecrire/index.php?exec=mutualisation' method='post' class='upgrade' target='_blank'> 287 295 <div> … … 293 301 </form> 294 302 EOF; 295 } 296 } 297 298 function adminplugin_site($meta, $liste_plug_compat, $liste_plug_compat_base) { 299 if ($cfg = @unserialize($meta['plugin'])) { 300 $plugins = array_keys($cfg); 301 ksort($plugins); 302 foreach ($plugins as $plugin) { 303 $vplugin_base = $meta[strtolower($plugin).'_base_version']; 304 $nouvelle_version_plugin_base = $liste_plug_compat_base[$liste_plug_compat[$plugin]['dir_type']][$liste_plug_compat[$plugin]['dir']]['version_base']; 305 if ($cfg[$plugin]['version'] != $liste_plug_compat[$plugin]['version'] 306 AND !is_null($liste_plug_compat[$plugin]['version']) 307 AND ($vplugin_base != $nouvelle_version_plugin_base) ) { 308 $secret = $meta['version_installee'].'-'.$meta['popularite_total']; 309 $secret = md5($secret); 310 $vplugin = $vplugin_base . '→' . $nouvelle_version_plugin_base; 311 return <<<EOF 303 } 304 } 305 306 function adminplugin_site($meta, $liste_plug_compat, $liste_plug_compat_base) 307 { 308 if ($cfg = @unserialize($meta['plugin'])) { 309 $plugins = array_keys($cfg); 310 ksort($plugins); 311 foreach ($plugins as $plugin) { 312 $vplugin_base = $meta[strtolower($plugin).'_base_version']; 313 $nouvelle_version_plugin_base = $liste_plug_compat_base[$liste_plug_compat[$plugin]['dir_type']][$liste_plug_compat[$plugin]['dir']]['version_base']; 314 if ($cfg[$plugin]['version'] != $liste_plug_compat[$plugin]['version'] 315 and !is_null($liste_plug_compat[$plugin]['version']) 316 and ($vplugin_base != $nouvelle_version_plugin_base)) { 317 $secret = $meta['version_installee'].'-'.$meta['popularite_total']; 318 $secret = md5($secret); 319 $vplugin = $vplugin_base.'→'.$nouvelle_version_plugin_base; 320 321 return <<<EOF 312 322 <form action='$meta[adresse_site]/ecrire/index.php?exec=mutualisation' method='post' class='upgrade' target='_blank'> 313 323 <div> … … 319 329 </form> 320 330 EOF; 321 } 322 } 323 } 324 return ''; 325 } 326 327 328 function date_creation_repertoire_site ($v) { 329 return (date("d/M/y", @filectime('../'.$GLOBALS['mutualisation_dir'].'/'.$v."/config/connect.php"))) ; 331 } 332 } 333 } 334 335 return ''; 336 } 337 338 function date_creation_repertoire_site($v) 339 { 340 return (date('d/M/y', @filectime('../'.$GLOBALS['mutualisation_dir'].'/'.$v.'/config/connect.php'))); 330 341 } 331 342 332 343 // lister les sites qui ont des sites/xx/config/connect.php 333 344 // avec 'connect.php' ne changeant pas de nom 334 function mutualisation_lister_sites_dist() { 335 $sites = array(); 336 foreach(glob('../'.$GLOBALS['mutualisation_dir'].'/*/config/connect.php') as $s) { 337 $sites[] = preg_replace(',^\.\./'.$GLOBALS['mutualisation_dir'].'/(.*)/config/connect.php,', '\1', $s); 338 } 339 sort($sites); 340 return $sites; 345 function mutualisation_lister_sites_dist() 346 { 347 $sites = array(); 348 foreach (glob('../'.$GLOBALS['mutualisation_dir'].'/*/config/connect.php') as $s) { 349 $sites[] = preg_replace(',^\.\./'.$GLOBALS['mutualisation_dir'].'/(.*)/config/connect.php,', '\1', $s); 350 } 351 sort($sites); 352 353 return $sites; 341 354 } 342 355 343 356 // lister les sites qui ont des sites/xx/config/connect.php 344 357 // avec 'connect.php' ne changeant pas de nom 345 function test_credential_site($meta, $v) { 346 if (defined("_INSTALL_USER_DB_ROOT")) { 347 $file = file_get_contents('../'.$GLOBALS['mutualisation_dir'].'/'.$v.'/config/connect.php'); 348 $credential = strpos($file, _INSTALL_USER_DB_ROOT); 349 if ($credential) { 350 preg_match("/.*^spip_connect_db\((.*)\);$/m", $file, $conn_string); 351 $var_connect = explode(',',str_replace("'",'',$conn_string[1])); 352 if (trim($var_connect[6])=='') { 353 $secret = $meta['version_installee'].'-'.$meta['popularite_total']; 354 $secret = md5($secret); 355 return <<<EOF 358 function test_credential_site($meta, $v) 359 { 360 if (defined('_INSTALL_USER_DB_ROOT')) { 361 $file = file_get_contents('../'.$GLOBALS['mutualisation_dir'].'/'.$v.'/config/connect.php'); 362 $credential = strpos($file, _INSTALL_USER_DB_ROOT); 363 if ($credential) { 364 preg_match("/.*^spip_connect_db\((.*)\);$/m", $file, $conn_string); 365 $var_connect = explode(',', str_replace("'", '', $conn_string[1])); 366 if (trim($var_connect[6]) == '') { 367 $secret = $meta['version_installee'].'-'.$meta['popularite_total']; 368 $secret = md5($secret); 369 370 return <<<EOF 356 371 <form action='$meta[adresse_site]/ecrire/index.php?exec=mutualisation' method='post' class='upgrade' target='_blank'> 357 372 <div> … … 363 378 </form> 364 379 EOF; 365 } 366 } 367 } 368 return ''; 380 } 381 } 382 } 383 384 return ''; 369 385 } 370 386 … … 375 391 /* 376 392 function mutualisation_lister_sites() { 377 378 379 380 381 382 383 384 385 386 387 388 393 $sites = array(); 394 if (is_dir(_DIR_CONNECT)) { 395 if ($dh = @opendir(_DIR_CONNECT)) { 396 while (($file = readdir($dh)) !== false) { 397 if (substr($file,-4)=='.php') { 398 $sites[] = substr($file,0,-4); 399 } 400 } 401 } 402 } 403 sort($sites); 404 return $sites; 389 405 } 390 406 */ 391 407 392 408 // faire une ancre vers le tableau des sites en haut de page 393 function ancre_site($c) { 394 foreach ($c as $key => $value) { 395 $c[$key] = "<a href='#$value'>" . $value . "</a>"; 396 } 397 return $c; 398 } 399 400 function memoryUsage($bytes) { 401 $bytes = (int) $bytes; 402 403 if ($bytes > 1024*1024) { 404 return round($bytes/1024/1024, 2).' MB'; 405 } elseif ($bytes > 1024) { 406 return round($bytes/1024, 2).' KB'; 407 } 408 409 return $bytes . ' B'; 410 } 411 412 ?> 409 function ancre_site($c) 410 { 411 foreach ($c as $key => $value) { 412 $c[$key] = "<a href='#$value'>".$value.'</a>'; 413 } 414 415 return $c; 416 } 417 418 function memoryUsage($bytes) 419 { 420 $bytes = (int) $bytes; 421 422 if ($bytes > 1024 * 1024) { 423 return round($bytes / 1024 / 1024, 2).' MB'; 424 } elseif ($bytes > 1024) { 425 return round($bytes / 1024, 2).' KB'; 426 } 427 428 return $bytes.' B'; 429 } -
_plugins_/mutualisation/branches/v0/plugin.xml
r86558 r90132 10 10 <auteur>Fil</auteur> 11 11 <licence>© 2007-2013 GNU/LGPL- 2013 GPL V.3</licence> 12 <version>0.10. 2</version>12 <version>0.10.3</version> 13 13 <etat>stable</etat> 14 14 <description> -
_plugins_/mutualisation/trunk/exec/mutualisation.php
r87599 r90132 1 1 <?php 2 2 3 header('charset:UTF-8'); 3 4 4 if (!defined("_ECRIRE_INC_VERSION")) 5 return; 6 7 function exec_mutualisation_dist() { 8 $ustart = memory_get_peak_usage(true); 9 $timestart = microtime(true); 10 $memory_limit = strtolower(ini_get('memory_limit')); 11 12 include_spip('inc/minipres'); 13 include_spip('inc/filtres'); 14 15 // pas admin ? passe ton chemin 16 if (($GLOBALS['visiteur_session']['statut'] != '0minirezo') and ($_SERVER["REMOTE_ADDR"] != '127.0.0.1')) 17 die('pas admin !'); 18 19 $lister_sites = charger_fonction('lister_sites', 'mutualisation'); 20 $sites = $lister_sites(); 21 22 $branche_nom = "spip-" . $GLOBALS['spip_version_branche']; 23 $version_spip = intval($GLOBALS['spip_version_branche']); 24 25 $url_stats = 'ecrire/?exec=stats_visites'; 26 $url_compresseur = 'ecrire/?exec=configurer_avancees#formulaire_configurer_compresseur'; 27 $url_admin_plugin = 'ecrire/?exec=admin_plugin'; 28 $url_admin_vider = 'ecrire/?exec=admin_vider'; 29 30 if (!file_exists(_DIR_IMG . 'mutualiser.png')) 31 @copy(find_in_path('mutualiser.png'), _DIR_IMG . 'mutualiser.png'); 32 33 $titre .= _L(count($sites) . ' ' . 'sites mutualisés <em>(' . _T('version') . ' ' . $GLOBALS['spip_version_base'] . ')</em>'); 34 35 //$page .= "<div id='trace'></div>" ; 36 $page .= "<table style='clear:both;'> 5 if (!defined('_ECRIRE_INC_VERSION')) { 6 return; 7 } 8 9 function exec_mutualisation_dist() 10 { 11 $ustart = memory_get_peak_usage(true); 12 $timestart = microtime(true); 13 $memory_limit = strtolower(ini_get('memory_limit')); 14 15 include_spip('inc/minipres'); 16 include_spip('inc/filtres'); 17 18 // pas admin ? passe ton chemin 19 if (($GLOBALS['visiteur_session']['statut'] != '0minirezo') and ($_SERVER['REMOTE_ADDR'] != '127.0.0.1')) { 20 die('pas admin !'); 21 } 22 23 $lister_sites = charger_fonction('lister_sites', 'mutualisation'); 24 $sites = $lister_sites(); 25 26 $branche_nom = 'spip-'.$GLOBALS['spip_version_branche']; 27 $version_spip = intval($GLOBALS['spip_version_branche']); 28 29 $url_stats = 'ecrire/?exec=stats_visites'; 30 $url_compresseur = 'ecrire/?exec=configurer_avancees#formulaire_configurer_compresseur'; 31 $url_admin_plugin = 'ecrire/?exec=admin_plugin'; 32 $url_admin_vider = 'ecrire/?exec=admin_vider'; 33 34 if (!file_exists(_DIR_IMG.'mutualiser.png')) { 35 @copy(find_in_path('mutualiser.png'), _DIR_IMG.'mutualiser.png'); 36 } 37 38 $titre .= _L(count($sites).' '.'sites mutualisés <em>('._T('version').' '.$GLOBALS['spip_version_base'].')</em>'); 39 40 //$page .= "<div id='trace'></div>" ; 41 $page .= "<table style='clear:both;'> 37 42 <thead> 38 43 <tr> … … 54 59 <tbody>"; 55 60 56 $nsite = 1; 57 58 # aliases pour l'affichage court 59 $alias = array(); 60 foreach ($sites as $v) { 61 $redux = preg_replace(',^www\.|\..*$,', '', $v); 62 if (!in_array($redux, $alias)) 63 $alias[$v] = $redux; 64 else 65 $alias[$v] = $v; 66 } 67 68 // Recuperer la liste des plugins connus de l'instance SPIP en cours (celle qui est appelee par ecrire/?exec=mutualisation) 69 include_spip('inc/plugin'); 70 $liste_plug = liste_plugin_files(); 71 $liste_plug_compat = liste_plugin_valides($liste_plug); 72 $liste_plug_compat_base = $liste_plug_compat[2]; 73 $liste_plug_compat = $liste_plug_compat[0]; 74 75 foreach ($sites as $v) { 76 $nom_site = $stats = $plugins = $erreur = $version_installee = ""; 77 78 if (lire_fichier_securise(_DIR_RACINE . $GLOBALS['mutualisation_dir'] . '/' . $v . '/tmp/meta_cache.php', $meta) AND is_array($meta = @unserialize($meta)) AND $url = $meta['adresse_site']) { 79 $url .= '/'; 80 $nom_site = sinon(importer_charset($meta['nom_site'], $meta['charset']), $v); 81 $stats = intval($meta['popularite_total']); 82 if ($cfg = @unserialize($meta['plugin'])) { 83 $plugins = array_keys($cfg); 84 ksort($plugins); 85 foreach ($plugins as $plugin) { 86 $lsplugs[strtolower($plugin)][] = $alias[$v]; 87 $versionplug[strtolower($plugin)] = $cfg[$plugin]['version']; 88 // Spip n'est pas un plugin… Mais en fait oui. 89 // unset($lsplugs['spip']); 90 // unset($versionplug['spip']); 91 } 92 $cntplugins = count($plugins); 93 $plugins = strtolower(join(', ', $plugins)); 94 } else 95 $plugins = '-'; 96 97 // S'il faut upgrader, creer un bouton qui permettra 98 // de faire la mise a jour directement depuis le site maitre 99 // Pour cela, on cree un bouton avec un secret, que mutualiser.php 100 // va intercepter (pas terrible ?) 101 $erreur = test_upgrade_site($meta); 102 $adminplugin = adminplugin_site($meta, $liste_plug_compat, $liste_plug_compat_base); 103 $version_installee = ' <em><small>' . $meta['version_installee'] . '</small></em>'; 104 } else { 105 $url = 'http://' . $v . '/'; 106 $erreur = ' <em><small><span class="erreur">Erreur !</span></small></em>'; 107 $plugins = '-'; 108 } 109 110 $compression = ''; 111 if ($meta['auto_compress_css'] == 'oui') 112 $compression .= 'CSS'; 113 if ($meta['auto_compress_js'] == 'oui') 114 $compression .= ($compression != '') ? '+JS' : 'JS'; 115 if ($meta['auto_compress_http'] == 'oui') 116 $compression .= ($compression != '') ? '+HTTP' : 'HTTP'; 117 if ($compression == '') 118 $compression = _L('Activer'); 119 $page .= '<script type="text/javascript"> 61 $nsite = 1; 62 63 # aliases pour l'affichage court 64 $alias = array(); 65 foreach ($sites as $v) { 66 $redux = preg_replace(',^www\.|\..*$,', '', $v); 67 if (!in_array($redux, $alias)) { 68 $alias[$v] = $redux; 69 } else { 70 $alias[$v] = $v; 71 } 72 } 73 74 // Recuperer la liste des plugins connus de l'instance SPIP en cours (celle qui est appelee par ecrire/?exec=mutualisation) 75 include_spip('inc/plugin'); 76 $liste_plug = liste_plugin_files(); 77 $liste_plug_compat = liste_plugin_valides($liste_plug); 78 $liste_plug_compat_base = $liste_plug_compat[2]; 79 $liste_plug_compat = $liste_plug_compat[0]; 80 81 foreach ($sites as $v) { 82 $nom_site = $stats = $plugins = $erreur = $version_installee = ''; 83 84 if (lire_fichier_securise(_DIR_RACINE.$GLOBALS['mutualisation_dir'].'/'.$v.'/tmp/meta_cache.php', $meta) and is_array($meta = @unserialize($meta)) and $url = $meta['adresse_site']) { 85 $url .= '/'; 86 $nom_site = sinon(importer_charset($meta['nom_site'], $meta['charset']), $v); 87 $stats = intval($meta['popularite_total']); 88 if ($cfg = @unserialize($meta['plugin'])) { 89 $plugins = array_keys($cfg); 90 ksort($plugins); 91 foreach ($plugins as $plugin) { 92 $lsplugs[strtolower($plugin)][] = $alias[$v]; 93 $versionplug[strtolower($plugin)] = $cfg[$plugin]['version']; 94 // Spip n'est pas un plugin… Mais en fait oui. 95 // unset($lsplugs['spip']); 96 // unset($versionplug['spip']); 97 } 98 $cntplugins = count($plugins); 99 $plugins = strtolower(implode(', ', $plugins)); 100 } else { 101 $plugins = '-'; 102 } 103 104 // S'il faut upgrader, creer un bouton qui permettra 105 // de faire la mise a jour directement depuis le site maitre 106 // Pour cela, on cree un bouton avec un secret, que mutualiser.php 107 // va intercepter (pas terrible ?) 108 $erreur = test_upgrade_site($meta); 109 $adminplugin = adminplugin_site($meta, $liste_plug_compat, $liste_plug_compat_base); 110 $version_installee = ' <em><small>'.$meta['version_installee'].'</small></em>'; 111 } else { 112 $url = 'http://'.$v.'/'; 113 $erreur = ' <em><small><span class="erreur">Erreur !</span></small></em>'; 114 $plugins = '-'; 115 } 116 117 $compression = ''; 118 if ($meta['auto_compress_css'] == 'oui') { 119 $compression .= 'CSS'; 120 } 121 if ($meta['auto_compress_js'] == 'oui') { 122 $compression .= ($compression != '') ? '+JS' : 'JS'; 123 } 124 if ($meta['auto_compress_http'] == 'oui') { 125 $compression .= ($compression != '') ? '+HTTP' : 'HTTP'; 126 } 127 if ($compression == '') { 128 $compression = _L('Activer'); 129 } 130 $page .= '<script type="text/javascript"> 120 131 //<![CDATA[ 121 tableau_sites.push(["../../' . $GLOBALS['mutualisation_dir'] . '/' . $v .'"]);132 tableau_sites.push(["../../'.$GLOBALS['mutualisation_dir'].'/'.$v.'"]); 122 133 //]]> 123 134 </script> 124 135 '; 125 136 126 $page .= "<tr class='tr" . $nsite % 2 . "'" ." style='background-image: url(${url}ecrire/index.php?exec=mutualisation&renouvelle_alea=yo)' id='$alias[$v]'>\n137 $page .= "<tr class='tr".$nsite % 2 ."'"." style='background-image: url(${url}ecrire/index.php?exec=mutualisation&renouvelle_alea=yo)' id='$alias[$v]'>\n 127 138 <td style='text-align:right;'><img src='${url}favicon.ico' style='float:left;' />$v$erreur$version_installee</td>\n 128 <td><a href='${url}'>" . typo($nom_site) ."</a></td>\n139 <td><a href='${url}'>".typo($nom_site)."</a></td>\n 129 140 <td><a href='${url}ecrire/'>ecrire</a><br /> 130 141 <a href='${url}$url_admin_plugin'>plugins</a><br /> … … 136 147 <td>$adminplugin<a href='${url}$url_admin_plugin'>${cntplugins}</a> <small>${plugins}</small></td>\n 137 148 <td><a href='${url}$url_compresseur'>$compression</a></td>\n 138 <td style='text-align:right;'>" . date_creation_repertoire_site($v) ."</td>\n149 <td style='text-align:right;'>".date_creation_repertoire_site($v)."</td>\n 139 150 </tr>\n"; 140 141 142 $page .= "</tbody></table>";143 144 145 146 147 148 if (glob(_DIR_PLUGINS_DIST .'*/paquet.xml', GLOB_NOSORT)) {149 foreach (glob(_DIR_PLUGINS_DIST . '*/paquet.xml',GLOB_NOSORT)as $value) {150 151 152 153 154 155 156 157 158 151 $nsite++; 152 } 153 $page .= '</tbody></table>'; 154 155 // On liste ici tous les plugins-dist de la mutu. 156 // Ça sera calculé une seule fois pour toute et réutilisé dans la fonction plus loin. 157 $list_dist = array(); 158 // correspond à plugins-dist/nom_plugin/paquet.xml 159 if ($les_paquets = glob(_DIR_PLUGINS_DIST.'*/paquet.xml', GLOB_NOSORT)) { 160 foreach ($les_paquets as $value) { 161 if (preg_match('/prefix="([^"]*)"/i', file_get_contents($value), $r)) { 162 $list_dist[] = strtolower(trim($r[1])); 163 } 164 } 165 } 166 167 if ($lsplugs) { 168 $nombre_plugins = count($lsplugs); 169 $page .= "<br /><br /><table style='clear:both;'> 159 170 <thead>\n 160 171 <tr> … … 167 178 </thead> 168 179 <tbody>"; 169 foreach ($lsplugs as $plugin => $c) { 170 $plnum[count($c)] .= "<tr>\n<td>" . count($c) . "</td>\n<td>$plugin</td>\n" . "<td>" . pluginDist($list_dist, $plugin) . "</td>\n<td>" . $versionplug[$plugin] . "</td>\n<td>" . join(', ', ancre_site($c)) . '</td>' . "\n" . '</tr>' . "\n"; 171 } 172 krsort($plnum); 173 $page .= join('', $plnum); 174 $page .= "</tbody>\n</table>\n"; 175 176 $inutile = $extract = $list = array(); 177 // On crée une variable ici qui regardera les particularités des fichiers xml d'un plugin. 178 // Si à l'avenir on change de terminologie de fichier xml, il suffira de l'ajouter dans un nouvel array() 179 $cfg = array( array('fn' => 'paquet.xml', 'pre' => '/prefix="([^"]*)"/i', 'ver' => '/version="([^"]*)"/i', ), array('fn' => 'plugin.xml', 'pre' => ',<prefix>([^<]+),ims', 'ver' => ',<version>([^<]+),ims', ), ); 180 181 $ustart_glob = memory_get_peak_usage(true); 182 183 // Ici on est en SPIP 3. 184 // En spip 3, avec SVP, on liste les plugins dans des sous-répertoires. 185 // Ca peut aller jusqu'a 3 sous-répertoires. 186 // On garde l'ancien principe d'un sous-répertoire pour ne pas casser la compat. 187 188 // Utiliser la classe si elle existe (PHP 5.3+) 189 $dir = _DIR_PLUGINS; 190 if (class_exists('FilesystemIterator') AND is_dir(_DIR_PLUGINS)) { 191 $dir_it = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); 192 $it = new RecursiveIteratorIterator($dir_it, RecursiveIteratorIterator::SELF_FIRST); 193 194 foreach ($it as $path => $fo) { 195 if (!$fo -> isDir()) { 196 continue; 197 } 198 199 $path .= '/'; 200 201 foreach ($cfg as $k => $v) { 202 if (file_exists($path . $v['fn'])) { 203 $res = processConfig($cfg[$k], $lsplugs, $path); 204 if (false !== $res) { 205 $inutile[] = $res; 206 } 207 break; 208 } 209 } 210 } 211 } else { 212 // Pour php < 5.3 213 // correspond à plugins/nom_plugin/fichier.xml 214 if (glob(_DIR_PLUGINS . '*/{paquet,plugin}.xml', GLOB_BRACE)) { 215 foreach (glob(_DIR_PLUGINS . '*/{paquet,plugin}.xml',GLOB_BRACE) as $value) { 216 $list[] = $value; 217 } 218 } 219 // correspond à plugins/auto/nom_plugin/fichier.xml 220 if (glob(_DIR_PLUGINS . '*/*/{paquet,plugin}.xml', GLOB_BRACE)) { 221 foreach (glob(_DIR_PLUGINS . '*/*/{paquet,plugin}.xml',GLOB_BRACE) as $value) { 222 $list[] = $value; 223 } 224 } 225 // correspond à plugins/auto/nom_plugin/x.y.z/fichier.xml 226 if (glob(_DIR_PLUGINS . '*/*/*/{paquet,plugin}.xml', GLOB_BRACE)) { 227 foreach (glob(_DIR_PLUGINS . '*/*/*/{paquet,plugin}.xml',GLOB_BRACE) as $value) { 228 $list[] = $value; 229 } 230 } 231 232 // Ici on va prendre les chemins d'extrusion uniquement, sans distinction du fichier xml 233 foreach ($list as $value) { 234 $extract[] = str_replace(array('plugin.xml', 'paquet.xml'), '', $value); 235 } 236 // On dédoublonne 237 $extract = array_unique($extract); 238 foreach ($extract as $url) { 239 // Et on refait une recherche pour paquet.xml d'abord 240 if (glob($url . 'paquet.xml', GLOB_NOSORT)) { 241 $result = glob($url . 'paquet.xml', GLOB_NOSORT); 242 $result = $result[0]; 243 // dans paquet.xml on cherche la valeur de l'attribut prefix 244 if (preg_match('/prefix="([^"]*)"/i', file_get_contents($result), $r) AND !$lsplugs[strtolower(trim($r[1]))]) { 245 preg_match('/version="([^"]*)"/i', file_get_contents($result), $n); 246 $inutile[] = trim($r[1]) . ' (' . $n[1] . ')'; 247 } 248 249 } else {// Si pas de paquet.xml, on cherche plugin.xml 250 $result = glob($url . 'plugin.xml', GLOB_NOSORT); 251 $result = $result[0]; 252 // là, on reprend l'ancien code. On cherche la valeur de la balise prefix 253 if (preg_match(',<prefix>([^<]+),ims', file_get_contents($result), $r) AND !$lsplugs[strtolower(trim($r[1]))]) { 254 preg_match(',<version>([^<]+),ims', file_get_contents($result), $n); 255 $inutile[] = trim($r[1]) . ' (' . $n[1] . ')'; 256 } 257 } 258 } 259 } 260 261 $uend_glob = memory_get_peak_usage(true); 262 $inutile = array_map('mb_strtolower', $inutile); 263 sort($inutile); 264 265 if ($inutile) { 266 $nombre_plugins_inutiles = count($inutile); 267 $page .= "<div class='inutilises'>\n<p><strong>" . _L('Plugins inutilisés :') . "</strong> " . join(', ', $inutile) . ".<br />"; 268 $page .= "<em>Soit " . $nombre_plugins_inutiles . _L(' plugins inutilisés') . ".</em></p>\n</div>"; 269 } 270 } 271 272 $page .= '<div style="text-align:center;"><img src="' . find_in_path('mutualisation/mutualiser.png') . '" alt="" /></div>'; 273 274 $page = minipres($titre, $page); 275 276 $page = str_replace('</head>', ' 180 foreach ($lsplugs as $plugin => $c) { 181 $plnum[count($c)] .= "<tr>\n<td>".count($c)."</td>\n<td>$plugin</td>\n".'<td>'.pluginDist($list_dist, $plugin)."</td>\n<td>".$versionplug[$plugin]."</td>\n<td>".implode(', ', ancre_site($c)).'</td>'."\n".'</tr>'."\n"; 182 } 183 krsort($plnum); 184 $page .= implode('', $plnum); 185 $page .= "</tbody>\n</table>\n"; 186 187 $inutile = $extract = $list = array(); 188 // On crée une variable ici qui regardera les particularités des fichiers xml d'un plugin. 189 // Si à l'avenir on change de terminologie de fichier xml, il suffira de l'ajouter dans un nouvel array() 190 $cfg = array(array('fn' => 'paquet.xml', 'pre' => '/prefix="([^"]*)"/i', 'ver' => '/version="([^"]*)"/i'), array('fn' => 'plugin.xml', 'pre' => ',<prefix>([^<]+),ims', 'ver' => ',<version>([^<]+),ims')); 191 192 $ustart_glob = memory_get_peak_usage(true); 193 194 // Ici on est en SPIP 3. 195 // En spip 3, avec SVP, on liste les plugins dans des sous-répertoires. 196 // Ca peut aller jusqu'a 3 sous-répertoires. 197 // On garde l'ancien principe d'un sous-répertoire pour ne pas casser la compat. 198 199 // Utiliser la classe si elle existe (PHP 5.3+) 200 $dir = _DIR_PLUGINS; 201 if (class_exists('FilesystemIterator') and is_dir(_DIR_PLUGINS)) { 202 $dir_it = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); 203 $it = new RecursiveIteratorIterator($dir_it, RecursiveIteratorIterator::SELF_FIRST); 204 205 foreach ($it as $path => $fo) { 206 if (!$fo->isDir()) { 207 continue; 208 } 209 210 $path .= '/'; 211 212 foreach ($cfg as $k => $v) { 213 if (file_exists($path.$v['fn'])) { 214 $res = processConfig($cfg[$k], $lsplugs, $path); 215 if (false !== $res) { 216 $inutile[] = $res; 217 } 218 break; 219 } 220 } 221 } 222 } else { 223 // Pour php < 5.3 224 // correspond à plugins/nom_plugin/fichier.xml 225 if ($les_paquets = glob(_DIR_PLUGINS.'*/{paquet,plugin}.xml', GLOB_BRACE)) { 226 foreach ($les_paquets as $value) { 227 $list[] = $value; 228 } 229 } 230 // correspond à plugins/auto/nom_plugin/fichier.xml 231 if ($les_paquets = glob(_DIR_PLUGINS.'*/*/{paquet,plugin}.xml', GLOB_BRACE)) { 232 foreach ($les_paquets as $value) { 233 $list[] = $value; 234 } 235 } 236 // correspond à plugins/auto/nom_plugin/x.y.z/fichier.xml 237 if ($les_paquets = glob(_DIR_PLUGINS.'*/*/*/{paquet,plugin}.xml', GLOB_BRACE)) { 238 foreach ($les_paquets as $value) { 239 $list[] = $value; 240 } 241 } 242 243 // Ici on va prendre les chemins d'extrusion uniquement, sans distinction du fichier xml 244 foreach ($list as $value) { 245 $extract[] = str_replace(array('plugin.xml', 'paquet.xml'), '', $value); 246 } 247 // On dédoublonne 248 $extract = array_unique($extract); 249 foreach ($extract as $url) { 250 // Et on refait une recherche pour paquet.xml d'abord 251 if ($result = glob($url.'paquet.xml', GLOB_NOSORT)) { 252 $result = $result[0]; 253 // dans paquet.xml on cherche la valeur de l'attribut prefix 254 if (preg_match('/prefix="([^"]*)"/i', file_get_contents($result), $r) and !$lsplugs[strtolower(trim($r[1]))]) { 255 preg_match('/version="([^"]*)"/i', file_get_contents($result), $n); 256 $inutile[] = trim($r[1]).' ('.$n[1].')'; 257 } 258 } else { 259 // Si pas de paquet.xml, on cherche plugin.xml 260 $result = glob($url.'plugin.xml', GLOB_NOSORT); 261 $result = $result[0]; 262 // là, on reprend l'ancien code. On cherche la valeur de la balise prefix 263 if (preg_match(',<prefix>([^<]+),ims', file_get_contents($result), $r) and !$lsplugs[strtolower(trim($r[1]))]) { 264 preg_match(',<version>([^<]+),ims', file_get_contents($result), $n); 265 $inutile[] = trim($r[1]).' ('.$n[1].')'; 266 } 267 } 268 } 269 } 270 271 $uend_glob = memory_get_peak_usage(true); 272 $inutile = array_map('mb_strtolower', $inutile); 273 sort($inutile); 274 275 if ($inutile) { 276 $nombre_plugins_inutiles = count($inutile); 277 $page .= "<div class='inutilises'>\n<p><strong>"._L('Plugins inutilisés :').'</strong> '.implode(', ', $inutile).'.<br />'; 278 $page .= '<em>Soit '.$nombre_plugins_inutiles._L(' plugins inutilisés').".</em></p>\n</div>"; 279 } 280 } 281 282 $page .= '<div style="text-align:center;"><img src="'.find_in_path('mutualisation/mutualiser.png').'" alt="" /></div>'; 283 284 $page = minipres($titre, $page); 285 286 $page = str_replace('</head>', ' 277 287 <link rel="stylesheet" type="text/css" href="../mutualisation/mutualisation.css" /> 278 288 <script src="../prive/javascript/jquery.js" type="text/javascript"></script> … … 282 292 ', $page); 283 293 284 $uend = memory_get_peak_usage(true); 285 $udiff = $uend - $ustart; 286 $udiff_glob = $uend_glob - $ustart_glob; 287 $timeend = microtime(true); 288 $time = $timeend - $timestart; 289 $page_load_time = number_format($time, 3); 290 291 // On génère le contenu de notre toolbar. 292 $debug_toolbar = "<div class='toolbar'>\n"; 293 294 $debug_toolbar .= "<div class='toolbar-block'>\n"; 295 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-php_info'></i></div>\n"; 296 $debug_toolbar .= "<div class='toolbar-info'>\n"; 297 $debug_toolbar .= "<div class='toolbar-info-element'><b>SPIP</b> <span>" . $GLOBALS['spip_version_branche'] . "</span></div>\n"; 298 $debug_toolbar .= "<div class='toolbar-info-element'><b>PHP</b> <span>" . phpversion() . "</span></div>\n"; 299 $debug_toolbar .= "<div class='toolbar-info-element'><b>Mémoire allouée</b> <span>" . $memory_limit . "</span></div>\n"; 300 $debug_toolbar .= "<div class='toolbar-info-element'><b>Serveur</b> <span>" . $_SERVER["SERVER_SOFTWARE"] . "</span></div>\n"; 301 $debug_toolbar .= "</div></div>\n"; 302 303 $debug_toolbar .= "<div class='toolbar-block'>\n"; 304 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-plugins'></i><span>" . ($nombre_plugins_inutiles + $nombre_plugins) . " plugins</span></div>\n"; 305 $debug_toolbar .= "<div class='toolbar-info'>\n"; 306 $debug_toolbar .= "<div class='toolbar-info-element'><b>Utilisés</b> <span>" . $nombre_plugins . "</span></div>\n"; 307 $debug_toolbar .= "<div class='toolbar-info-element'><b>Inutilisés</b> <span>" . $nombre_plugins_inutiles . "</span></div>\n"; 308 $debug_toolbar .= "<div class='toolbar-info-element'><b>Total</b> <span>" . ($nombre_plugins_inutiles + $nombre_plugins) . "</span></div>\n"; 309 $debug_toolbar .= "</div></div>\n"; 310 311 $debug_toolbar .= "<div class='toolbar-block'>\n"; 312 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-memory'></i> <span>" . memoryUsage($udiff) . "</span></div>\n"; 313 $debug_toolbar .= "<div class='toolbar-info'>\n"; 314 $debug_toolbar .= "<div class='toolbar-info-element'><b>Mémoire :</b></div>\n"; 315 $debug_toolbar .= "<div class='toolbar-info-element'><b>Au début</b> <span>" . memoryUsage($ustart) . "</span></div>\n"; 316 $debug_toolbar .= "<div class='toolbar-info-element'><b>À la fin</b> <span>" . memoryUsage($uend) . "</span></div>\n"; 317 $debug_toolbar .= "<div class='toolbar-info-element'><b>Différence</b> <span>" . memoryUsage($udiff) . "</span></div>\n"; 318 $debug_toolbar .= "</div></div>\n"; 319 320 $debug_toolbar .= "<div class='toolbar-block'>\n"; 321 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-time'></i> <span>" . $page_load_time . " s</span></div>\n"; 322 $debug_toolbar .= "<div class='toolbar-info'>"; 323 $debug_toolbar .= "<div class='toolbar-info-element'><b>Début du script</b> <span>" . date("H:i:s", $timestart) . "</span></div>\n"; 324 $debug_toolbar .= "<div class='toolbar-info-element'><b>Fin du script</b> <span>" . date("H:i:s", $timeend) . "</span></div>\n"; 325 $debug_toolbar .= "<div class='toolbar-info-element'><b>Temps d'exécution</b> <span>" . $page_load_time . " s</span></div>\n"; 326 $debug_toolbar .= "</div></div>\n"; 327 328 $debug_toolbar .= "</div>\n"; 329 330 $page = str_replace('</body>', $debug_toolbar . "\n </body>", $page); 331 332 echo $page; 333 } 334 335 function test_upgrade_site($meta) { 336 if ($GLOBALS['spip_version_base'] != str_replace(',', '.', $meta['version_installee'])) { 337 $secret = $meta['version_installee'] . '-' . $meta['popularite_total']; 338 $secret = md5($secret); 339 return <<<EOF 294 $uend = memory_get_peak_usage(true); 295 $udiff = $uend - $ustart; 296 $udiff_glob = $uend_glob - $ustart_glob; 297 $timeend = microtime(true); 298 $time = $timeend - $timestart; 299 $page_load_time = number_format($time, 3); 300 301 // On génère le contenu de notre toolbar. 302 $debug_toolbar = "<div class='toolbar'>\n"; 303 304 $debug_toolbar .= "<div class='toolbar-block'>\n"; 305 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-php_info'></i></div>\n"; 306 $debug_toolbar .= "<div class='toolbar-info'>\n"; 307 $debug_toolbar .= "<div class='toolbar-info-element'><b>SPIP</b> <span>".$GLOBALS['spip_version_branche']."</span></div>\n"; 308 $debug_toolbar .= "<div class='toolbar-info-element'><b>PHP</b> <span>".phpversion()."</span></div>\n"; 309 $debug_toolbar .= "<div class='toolbar-info-element'><b>Mémoire allouée</b> <span>".$memory_limit."</span></div>\n"; 310 $debug_toolbar .= "<div class='toolbar-info-element'><b>Serveur</b> <span>".$_SERVER['SERVER_SOFTWARE']."</span></div>\n"; 311 $debug_toolbar .= "</div></div>\n"; 312 313 $debug_toolbar .= "<div class='toolbar-block'>\n"; 314 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-plugins'></i><span>".($nombre_plugins_inutiles + $nombre_plugins)." plugins</span></div>\n"; 315 $debug_toolbar .= "<div class='toolbar-info'>\n"; 316 $debug_toolbar .= "<div class='toolbar-info-element'><b>Utilisés</b> <span>".$nombre_plugins."</span></div>\n"; 317 $debug_toolbar .= "<div class='toolbar-info-element'><b>Inutilisés</b> <span>".$nombre_plugins_inutiles."</span></div>\n"; 318 $debug_toolbar .= "<div class='toolbar-info-element'><b>Total</b> <span>".($nombre_plugins_inutiles + $nombre_plugins)."</span></div>\n"; 319 $debug_toolbar .= "</div></div>\n"; 320 321 $debug_toolbar .= "<div class='toolbar-block'>\n"; 322 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-memory'></i> <span>".memoryUsage($udiff)."</span></div>\n"; 323 $debug_toolbar .= "<div class='toolbar-info'>\n"; 324 $debug_toolbar .= "<div class='toolbar-info-element'><b>Mémoire :</b></div>\n"; 325 $debug_toolbar .= "<div class='toolbar-info-element'><b>Au début</b> <span>".memoryUsage($ustart)."</span></div>\n"; 326 $debug_toolbar .= "<div class='toolbar-info-element'><b>À la fin</b> <span>".memoryUsage($uend)."</span></div>\n"; 327 $debug_toolbar .= "<div class='toolbar-info-element'><b>Différence</b> <span>".memoryUsage($udiff)."</span></div>\n"; 328 $debug_toolbar .= "</div></div>\n"; 329 330 $debug_toolbar .= "<div class='toolbar-block'>\n"; 331 $debug_toolbar .= "<div class='toolbar-icon'><i class='icon-time'></i> <span>".$page_load_time." s</span></div>\n"; 332 $debug_toolbar .= "<div class='toolbar-info'>"; 333 $debug_toolbar .= "<div class='toolbar-info-element'><b>Début du script</b> <span>".date('H:i:s', $timestart)."</span></div>\n"; 334 $debug_toolbar .= "<div class='toolbar-info-element'><b>Fin du script</b> <span>".date('H:i:s', $timeend)."</span></div>\n"; 335 $debug_toolbar .= "<div class='toolbar-info-element'><b>Temps d'exécution</b> <span>".$page_load_time." s</span></div>\n"; 336 $debug_toolbar .= "</div></div>\n"; 337 338 $debug_toolbar .= "</div>\n"; 339 340 $page = str_replace('</body>', $debug_toolbar."\n </body>", $page); 341 342 echo $page; 343 } 344 345 function test_upgrade_site($meta) 346 { 347 if ($GLOBALS['spip_version_base'] != str_replace(',', '.', $meta['version_installee'])) { 348 $secret = $meta['version_installee'].'-'.$meta['popularite_total']; 349 $secret = md5($secret); 350 351 return <<<EOF 340 352 <form action='$meta[adresse_site]/ecrire/index.php?exec=mutualisation' method='post' class='upgrade' target='_blank'> 341 353 <div> … … 347 359 </form> 348 360 EOF; 349 } 350 } 351 352 function adminplugin_site($meta, $liste_plug_compat, $liste_plug_compat_base) { 353 if ($cfg = @unserialize($meta['plugin'])) { 354 $plugins = array_keys($cfg); 355 ksort($plugins); 356 foreach ($plugins as $plugin) { 357 $vplugin_base = $meta[strtolower($plugin) . '_base_version']; 358 $nouvelle_version_plugin_base = $liste_plug_compat_base[$liste_plug_compat[$plugin]['dir_type']][$liste_plug_compat[$plugin]['dir']]['version_base']; 359 if ($cfg[$plugin]['version'] != $liste_plug_compat[$plugin]['version'] AND !is_null($liste_plug_compat[$plugin]['version']) AND ($vplugin_base != $nouvelle_version_plugin_base)) { 360 $secret = $meta['version_installee'] . '-' . $meta['popularite_total']; 361 $secret = md5($secret); 362 $vplugin = $vplugin_base . '→' . $nouvelle_version_plugin_base; 363 return <<<EOF 361 } 362 } 363 364 function adminplugin_site($meta, $liste_plug_compat, $liste_plug_compat_base) 365 { 366 if ($cfg = @unserialize($meta['plugin'])) { 367 $plugins = array_keys($cfg); 368 ksort($plugins); 369 foreach ($plugins as $plugin) { 370 $vplugin_base = $meta[strtolower($plugin).'_base_version']; 371 $nouvelle_version_plugin_base = $liste_plug_compat_base[$liste_plug_compat[$plugin]['dir_type']][$liste_plug_compat[$plugin]['dir']]['version_base']; 372 if ($cfg[$plugin]['version'] != $liste_plug_compat[$plugin]['version'] and !is_null($liste_plug_compat[$plugin]['version']) and ($vplugin_base != $nouvelle_version_plugin_base)) { 373 $secret = $meta['version_installee'].'-'.$meta['popularite_total']; 374 $secret = md5($secret); 375 $vplugin = $vplugin_base.'→'.$nouvelle_version_plugin_base; 376 377 return <<<EOF 364 378 <form action='$meta[adresse_site]/ecrire/index.php?exec=mutualisation' method='post' class='upgrade' target='_blank'> 365 379 <div> … … 371 385 </form> 372 386 EOF; 373 } 374 } 375 } 376 return ''; 377 } 378 379 function date_creation_repertoire_site($v) { 380 return (date("d/M/y", @filectime('../' . $GLOBALS['mutualisation_dir'] . '/' . $v . "/config/connect.php"))); 381 } 382 387 } 388 } 389 } 390 391 return ''; 392 } 393 394 function date_creation_repertoire_site($v) 395 { 396 return (date('d/M/y', @filectime('../'.$GLOBALS['mutualisation_dir'].'/'.$v.'/config/connect.php'))); 397 } 383 398 384 399 /** 385 400 * lister les sites qui ont des sites/xx/config/connect.php 386 * avec 'connect.php' ne changeant pas de nom 401 * avec 'connect.php' ne changeant pas de nom. 387 402 */ 388 function mutualisation_lister_sites_dist() { 389 $sites = array(); 390 foreach (glob('../'.$GLOBALS['mutualisation_dir'].'/*/config/connect.php') as $s) { 391 $sites[] = preg_replace(',^\.\./' . $GLOBALS['mutualisation_dir'] . '/(.*)/config/connect.php,', '\1', $s); 392 } 393 sort($sites); 394 return $sites; 403 function mutualisation_lister_sites_dist() 404 { 405 $sites = array(); 406 foreach (glob('../'.$GLOBALS['mutualisation_dir'].'/*/config/connect.php') as $s) { 407 $sites[] = preg_replace(',^\.\./'.$GLOBALS['mutualisation_dir'].'/(.*)/config/connect.php,', '\1', $s); 408 } 409 sort($sites); 410 411 return $sites; 395 412 } 396 413 /** 397 414 * autre exemple pour ceux qui mettent tous leurs fichiers de connexion 398 415 * dans /config/connect/xx.php 399 * fonction a mettre dans mes_options.php ou dans mutualisations/lister_sites.php 416 * fonction a mettre dans mes_options.php ou dans mutualisations/lister_sites.php. 400 417 */ 401 418 402 419 /* 403 420 function mutualisation_lister_sites() { … … 418 435 419 436 // faire une ancre vers le tableau des sites en haut de page 420 function ancre_site($c) { 421 foreach ($c as $key => $value) { 422 $c[$key] = "<a href='#$value'>" . $value . "</a>"; 423 } 424 return $c; 425 } 426 427 function memoryUsage($bytes) { 428 $bytes = (int)$bytes; 429 430 if ($bytes > 1024 * 1024) 431 return round($bytes / 1024 / 1024, 2) . ' MB'; 432 else if ($bytes > 1024) 433 return round($bytes / 1024, 2) . ' KB'; 434 435 return $bytes . ' B'; 436 } 437 438 function pluginDist($array, $plugin) { 439 440 $p = "-"; 441 if (in_array($plugin, $array)) 442 $p = "Oui"; 443 return $p; 437 function ancre_site($c) 438 { 439 foreach ($c as $key => $value) { 440 $c[$key] = "<a href='#$value'>".$value.'</a>'; 441 } 442 443 return $c; 444 } 445 446 function memoryUsage($bytes) 447 { 448 $bytes = (int) $bytes; 449 450 if ($bytes > 1024 * 1024) { 451 return round($bytes / 1024 / 1024, 2).' MB'; 452 } elseif ($bytes > 1024) { 453 return round($bytes / 1024, 2).' KB'; 454 } 455 456 return $bytes.' B'; 457 } 458 459 function pluginDist($array, $plugin) 460 { 461 $p = '-'; 462 if (in_array($plugin, $array)) { 463 $p = 'Oui'; 464 } 465 466 return $p; 444 467 } 445 468 446 469 /** 447 470 * Petite fonction qui va automatiser la recherche de paquet.xml ou plugin.xml 448 * quelque soit la profondeur dans l'arborescence 471 * quelque soit la profondeur dans l'arborescence. 449 472 */ 450 function processConfig(&$cfg, &$lsplugs, $path) { 451 // echo "<!-- Process: " . $path . $cfg['fn'] . "--> \n"; 452 $data = file_get_contents($path . $cfg['fn']); 453 454 if (1 === preg_match($cfg['pre'], $data, $r) AND !$lsplugs[strtolower(trim($r[1]))]) { 455 preg_match($cfg['ver'], $data, $n); 456 return trim($r[1]) . ' (' . $n[1] . ')'; 457 } 458 459 return false; 460 } 461 ?> 473 function processConfig(&$cfg, &$lsplugs, $path) 474 { 475 // echo "<!-- Process: " . $path . $cfg['fn'] . "--> \n"; 476 $data = file_get_contents($path.$cfg['fn']); 477 478 if (1 === preg_match($cfg['pre'], $data, $r) and !$lsplugs[strtolower(trim($r[1]))]) { 479 preg_match($cfg['ver'], $data, $n); 480 481 return trim($r[1]).' ('.$n[1].')'; 482 } 483 484 return false; 485 } -
_plugins_/mutualisation/trunk/mutualisation_toolbar.js
r74053 r90132 1 1 jQuery(document).ready(function($) { 2 2 3 3 $('.toolbar-block .toolbar-icon').on({ 4 4 mouseover: function(){ -
_plugins_/mutualisation/trunk/mutualiser.php
r90098 r90132 132 132 // nom d'utilisateur et mot de passe 133 133 define('_INSTALL_USER_DB', _INSTALL_NAME_DB); 134 define('_INSTALL_PASS_DB', 134 /* 135 * _INSTALL_PASS_DB_ROOT : secret du site 136 * $_SERVER['HTTP_HOST'] : un truc variable, mais reutilisable site par site 137 * _INSTALL_USER_DB : un autre truc variable 138 */ 139 define( 140 '_INSTALL_PASS_DB', 135 141 substr(md5( 136 _INSTALL_PASS_DB_ROOT # secret du site 137 .$_SERVER['HTTP_HOST'] # un truc variable, mais reutilisable site par site 138 ._INSTALL_USER_DB # un autre truc variable 142 _INSTALL_PASS_DB_ROOT.$_SERVER['HTTP_HOST']._INSTALL_USER_DB 139 143 ), 0, 8) 140 144 ); … … 172 176 * Tout est pret, on execute la mutualisation. 173 177 */ 174 define('_SPIP_PATH', 178 define( 179 '_SPIP_PATH', 175 180 _DIR_SITE.':'. 176 181 _DIR_RACINE.':'. 177 182 _DIR_RACINE.'squelettes-dist/:'. 178 183 _DIR_RACINE.'prive/:'. 179 _DIR_RESTREINT); 184 _DIR_RESTREINT 185 ); 180 186 181 187 if (is_dir(_DIR_SITE.'squelettes')) { … … 262 268 * 263 269 * @param string $flux 264 * 270 * L'URL à réécrire 265 271 */ 266 272 function mutualisation_url_img_courtes($flux) … … 291 297 * 292 298 * @param string $site 293 * 299 * Le nom du site 294 300 */ 295 301 function prefixe_mutualisation($site) -
_plugins_/mutualisation/trunk/mutualiser_creer.php
r90098 r90132 134 134 '<div>'.$menu_langues."<br /></div>\n". 135 135 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n". 136 137 136 (isset($_REQUEST['code_activation']) 138 137 ? _T('mutu:install_err') 139 138 : '' 140 139 ). 141 142 140 '<h3>'. 143 141 ($options['utiliser_panel'] ? _T('mutu:install_code_panel') : _T('mutu:install_code')). 144 142 '</h3>'. 145 146 143 "<form method='post' action='".self()."'><div> 147 144 <input type='password' name='code_activation' size='10' /> … … 172 169 and defined('_INSTALL_NAME_DB')) { 173 170 if (defined('_INSTALL_USER_DB_ROOT')) { 174 $link = mutu_connect_db(_INSTALL_HOST_DB, 0, 171 $link = mutu_connect_db(_INSTALL_HOST_DB, 0, _INSTALL_USER_DB_ROOT, _INSTALL_PASS_DB_ROOT, '', _INSTALL_SERVER_DB); 175 172 } else { 176 $link = mutu_connect_db(_INSTALL_HOST_DB, 0, 173 $link = mutu_connect_db(_INSTALL_HOST_DB, 0, _INSTALL_USER_DB, _INSTALL_PASS_DB, '', _INSTALL_SERVER_DB); 177 174 } 178 175 … … 181 178 if (!sql_selectdb(_INSTALL_NAME_DB, _INSTALL_SERVER_DB)) { 182 179 if (_request('creerbase') == 'oui') { 183 184 180 // mode de creation par un ping sur une URL (AlternC) 185 181 // on le fait en local et en POST, donc pas de trou de secu … … 218 214 */ 219 215 if ($options['creer_user_base']) { 220 221 216 // le nom de la machine MySQL peut etre different 222 217 // du nom de la connexion via DNS … … 258 253 } 259 254 mutu_close(); 260 $link = mutu_connect_db(_INSTALL_HOST_DB, '', 255 $link = mutu_connect_db(_INSTALL_HOST_DB, '', _INSTALL_USER_DB, _INSTALL_PASS_DB, '', _INSTALL_SERVER_DB); 261 256 } 262 257 … … 387 382 } 388 383 exit; 389 } elseif ( 390 !is_dir($e._NOM_PERMANENTS_INACCESSIBLES) 384 } elseif (!is_dir($e._NOM_PERMANENTS_INACCESSIBLES) 391 385 || !is_dir($e._NOM_PERMANENTS_ACCESSIBLES) 392 386 || !is_dir($e._NOM_TEMPORAIRES_INACCESSIBLES) … … 436 430 echo mutu_minipres( 437 431 _T('mutu:install_rep_bd_ok'), 438 439 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n" 440 .'<h3>'. 441 _T('mutu:install_spip_3', array('url' => generer_url_ecrire('install'))) 432 "<div><img alt='SPIP' src='" 433 .find_in_path('images/logo-spip.gif') 434 ."' /></div>\n" 435 .'<h3>' 436 ._T('mutu:install_spip_3', array('url' => generer_url_ecrire('install'))) 442 437 .'</h3>', 443 438 " id='mutu'" -
_plugins_/mutualisation/trunk/mutualiser_gerer_img.php
r90098 r90132 80 80 array(_DIR_VAR, _DIR_IMG), 81 81 array(_URL_VAR, _URL_IMG), 82 $flux); 82 $flux 83 ); 83 84 } else { 84 85 return $flux; -
_plugins_/mutualisation/trunk/mutualiser_upgrade.php
r90098 r90132 34 34 if ($old == $new 35 35 or $new != $GLOBALS['spip_version_base']) { 36 echo minipres( _T('titre_page_upgrade'),37 _ L('Erreur de mise à jour de @old@ vers @new@',38 36 echo minipres( 37 _T('titre_page_upgrade'), 38 _L('Erreur de mise à jour de @old@ vers @new@', array('old' => $old, 'new' => $new)) 39 39 ); 40 40 } else { 41 echo minipres( _T('titre_page_upgrade'),42 _ L('La base de données a été mise à jour de @old@ vers @new@',43 41 echo minipres( 42 _T('titre_page_upgrade'), 43 _L('La base de données a été mise à jour de @old@ vers @new@', array('old' => $old, 'new' => $new)) 44 44 ); 45 45 // Installer les plugins … … 53 53 purger_repertoire(_DIR_TMP); 54 54 ecrire_metas(); 55 echo minipres( _T('titre_page_upgrade'),56 _ L('Aller dans <a href="@ecrire@">ecrire/</a>',57 55 echo minipres( 56 _T('titre_page_upgrade'), 57 _L('Aller dans <a href="@ecrire@">ecrire/</a>', array('ecrire' => $GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS)) 58 58 ); 59 59 } -
_plugins_/mutualisation/trunk/mutualiser_upgradeplugins.php
r90098 r90132 13 13 if (_request('secret') 14 14 != md5( 15 $GLOBALS['meta']['version_installee'].'-'.$GLOBALS['meta']['popularite_total']15 $GLOBALS['meta']['version_installee'].'-'.$GLOBALS['meta']['popularite_total'] 16 16 )) { 17 17 include_spip('inc/headers'); … … 22 22 // faire l'upgrade 23 23 lire_metas(); 24 echo minipres(_T('titre_page_upgrade'), 24 echo minipres( 25 _T('titre_page_upgrade'), 25 26 _L('Mise à jour des plugins') 26 27 ); … … 35 36 purger_repertoire(_DIR_TMP); 36 37 ecrire_metas(); 37 echo minipres( _T('titre_page_upgrade'),38 _ L('Aller dans <a href="@ecrire@">ecrire/</a>',39 38 echo minipres( 39 _T('titre_page_upgrade'), 40 _L('Aller dans <a href="@ecrire@">ecrire/</a>', array('ecrire' => $GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS)) 40 41 ); 41 42 exit; -
_plugins_/mutualisation/trunk/paquet.xml
r90098 r90132 2 2 prefix="Mutualisation" 3 3 categorie="maintenance" 4 version="1.2. 4"4 version="1.2.5" 5 5 etat="stable" 6 6 compatibilite="[3.0.0;3.0.*]" 7 7 logo="mutualiser.png" 8 8 documentation="http://contrib.spip.net/La-mutualisation-facile-modifications-manuelles" 9 > 9 > 10 10 11 11 <nom>Mutualisation facile</nom> … … 13 13 14 14 <auteur>Fil</auteur> 15 <auteur mail="teddy.spip@gmail.com">Teddy</auteur>15 <auteur>Teddy</auteur> 16 16 17 17 <copyright>2007-2015</copyright>
Note: See TracChangeset
for help on using the changeset viewer.