Changeset 93610 in spip-zone
- Timestamp:
- Dec 13, 2015, 11:35:18 AM (5 years ago)
- Location:
- _core_/plugins/dump
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
_core_/plugins/dump/action/restaurer.php
r93092 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 13 if (!defined("_ECRIRE_INC_VERSION")) { 14 return; 15 } 14 16 15 17 /** … … 29 31 /** 30 32 * Sauvegarder par morceaux 31 * 33 * 32 34 * @param string $arg 33 35 */ 34 function action_restaurer_dist($arg = null) {36 function action_restaurer_dist($arg = null) { 35 37 if (!$arg) { 36 38 $securiser_action = charger_fonction('securiser_action', 'inc'); … … 39 41 40 42 $status_file = $arg; 41 define('_DUMP_STATUS_FILE', $status_file);42 $status_file = _DIR_TMP .basename($status_file).".txt";43 define('_DUMP_STATUS_FILE', $status_file); 44 $status_file = _DIR_TMP . basename($status_file) . ".txt"; 43 45 if (!lire_fichier($status_file, $status) 44 OR !$status = unserialize($status)) { 46 OR !$status = unserialize($status) 47 ) { 45 48 46 49 include_spip('inc/headers'); 47 echo redirige_formulaire(generer_url_ecrire("restaurer",'status='._DUMP_STATUS_FILE,'',true, true)); 48 } 49 else { 50 echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true)); 51 } else { 50 52 utiliser_langue_visiteur(); 51 $archive = "<br />" .joli_repertoire($status['archive']);53 $archive = "<br />" . joli_repertoire($status['archive']); 52 54 $action = _T('dump:info_restauration_sauvegarde', array('archive' => $archive)); 53 55 $admin = charger_fonction('admin', 'inc'); … … 56 58 57 59 // forcer l'envoi du buffer par tous les moyens ! 58 echo(str_repeat("<br />\r\n", 256));59 while (@ob_get_level()) {60 echo(str_repeat("<br />\r\n", 256)); 61 while (@ob_get_level()) { 60 62 @ob_flush(); 61 63 @flush(); -
_core_/plugins/dump/action/sauvegarder.php
r93092 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 13 if (!defined("_ECRIRE_INC_VERSION")) { 14 return; 15 } 14 16 15 17 /** … … 29 31 /** 30 32 * Sauvegarder par morceaux 31 * 33 * 32 34 * @param string $arg 33 35 */ 34 function action_sauvegarder_dist($arg = null) {36 function action_sauvegarder_dist($arg = null) { 35 37 if (!$arg) { 36 38 $securiser_action = charger_fonction('securiser_action', 'inc'); … … 39 41 40 42 $status_file = $arg; 41 $redirect = parametre_url(generer_action_auteur('sauvegarder',$status_file),"step",intval(_request('step')+1),'&'); 43 $redirect = parametre_url(generer_action_auteur('sauvegarder', $status_file), "step", intval(_request('step')+1), 44 '&'); 42 45 43 46 // lancer export qui va se relancer jusqu'a sa fin … … 45 48 utiliser_langue_visiteur(); 46 49 // quand on sort de $export avec true c'est qu'on a fini 47 if ($sauvegarder($status_file, $redirect)) {48 dump_end($status_file, 'sauvegarder');50 if ($sauvegarder($status_file, $redirect)) { 51 dump_end($status_file, 'sauvegarder'); 49 52 include_spip('inc/headers'); 50 echo redirige_formulaire(generer_url_ecrire("sauvegarder", 'status='.$status_file,'',true, true));53 echo redirige_formulaire(generer_url_ecrire("sauvegarder", 'status=' . $status_file, '', true, true)); 51 54 } 52 55 53 56 // forcer l'envoi du buffer par tous les moyens ! 54 echo(str_repeat("<br />\r\n", 256));55 while (@ob_get_level()) {57 echo(str_repeat("<br />\r\n", 256)); 58 while (@ob_get_level()) { 56 59 @ob_flush(); 57 60 @flush(); -
_core_/plugins/dump/action/supprimer_dump.php
r93092 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 13 if (!defined("_ECRIRE_INC_VERSION")) { 14 return; 15 } 14 16 15 17 include_spip('inc/dump'); … … 21 23 * @param string $arg 22 24 */ 23 function action_supprimer_dump_dist($arg = null) {24 if (!$arg) {25 function action_supprimer_dump_dist($arg = null) { 26 if (!$arg) { 25 27 $securiser_action = charger_fonction('securiser_action', 'inc'); 26 28 $arg = $securiser_action(); … … 29 31 $fichier = $arg; 30 32 31 if (autoriser('webmestre')) {33 if (autoriser('webmestre')) { 32 34 // verifier que c'est bien une sauvegarde 33 35 include_spip("inc/dump"); … … 35 37 $dumps = dump_lister_sauvegardes($dir); 36 38 37 foreach ($dumps as $dump){38 if ($dump['fichier'] ==$fichier){39 spip_unlink($dir .$fichier);39 foreach ($dumps as $dump) { 40 if ($dump['fichier'] == $fichier) { 41 spip_unlink($dir . $fichier); 40 42 } 41 43 } -
_core_/plugins/dump/action/telecharger_dump.php
r93092 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 13 if (!defined("_ECRIRE_INC_VERSION")) { 14 return; 15 } 14 16 15 17 include_spip('inc/dump'); … … 18 20 /** 19 21 * Telecharger un dump quand on est webmestre 20 * 22 * 21 23 * @param string $arg 22 24 */ 23 function action_telecharger_dump_dist($arg = null) {25 function action_telecharger_dump_dist($arg = null) { 24 26 if (!$arg) { 25 27 $securiser_action = charger_fonction('securiser_action', 'inc'); … … 27 29 } 28 30 29 $file = dump_repertoire() .basename($arg,'.sqlite').'.sqlite';31 $file = dump_repertoire() . basename($arg, '.sqlite') . '.sqlite'; 30 32 31 33 if ( 32 34 file_exists($file) 33 AND autoriser('webmestre')){ 35 AND autoriser('webmestre') 36 ) { 34 37 35 38 $f = basename($file); … … 45 48 header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 46 49 47 if ($cl = filesize($file)) 48 header("Content-Length: ". $cl); 50 if ($cl = filesize($file)) { 51 header("Content-Length: " . $cl); 52 } 49 53 50 54 readfile($file); 51 } 52 else{ 55 } else { 53 56 http_status(404); 54 57 include_spip('inc/minipres'); 55 echo minipres(_T('erreur') .' 404',58 echo minipres(_T('erreur') . ' 404', 56 59 _T('info_acces_interdit')); 57 60 } -
_core_/plugins/dump/base/restaurer.php
r93092 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 13 if (!defined("_ECRIRE_INC_VERSION")) { 14 return; 15 } 14 16 15 17 include_spip('inc/dump'); … … 19 21 * Restauration d'une sauvegarde 20 22 * 21 * @param string $titre 22 * @param bool $reprise 23 * @param string $titre Titre de la page 24 * @param bool $reprise true s'il s'agit d'une reprise de sauvegarde 23 25 */ 24 26 function base_restaurer_dist($titre = '', $reprise = false) { 25 27 $status_file = _DUMP_STATUS_FILE; 26 $status_file = _DIR_TMP .basename($status_file).".txt";28 $status_file = _DIR_TMP . basename($status_file) . ".txt"; 27 29 if (!lire_fichier($status_file, $status) 28 OR !$status = unserialize($status)) { 29 } 30 else { 31 $redirect = parametre_url(generer_action_auteur('restaurer',_DUMP_STATUS_FILE),"step",intval(_request('step')+1),'&'); 30 OR !$status = unserialize($status) 31 ) { 32 } else { 33 $redirect = parametre_url(generer_action_auteur('restaurer', _DUMP_STATUS_FILE), "step", intval(_request('step')+1), 34 '&'); 32 35 33 36 $timeout = ini_get('max_execution_time'); 34 37 // valeur conservatrice si on a pas reussi a lire le max_execution_time 35 if (!$timeout) $timeout=30; // parions sur une valeur tellement courante ... 38 if (!$timeout) { 39 $timeout = 30; 40 } // parions sur une valeur tellement courante ... 36 41 $max_time = time()+$timeout/2; 37 42 38 43 include_spip('inc/minipres'); 39 @ini_set("zlib.output_compression", "0"); // pour permettre l'affichage au fur et a mesure44 @ini_set("zlib.output_compression", "0"); // pour permettre l'affichage au fur et a mesure 40 45 41 $titre = _T('dump:restauration_en_cours') . " (" .count($status['tables']).") ";46 $titre = _T('dump:restauration_en_cours') . " (" . count($status['tables']) . ") "; 42 47 $balise_img = chercher_filtre('balise_img'); 43 48 $titre .= $balise_img(chemin_image('searching.gif')); 44 echo (install_debut_html($titre));49 echo(install_debut_html($titre)); 45 50 // script de rechargement auto sur timeout 46 echo http_script("window.setTimeout('location.href=\"" .$redirect."\";',".($timeout*1000).")");51 echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout*1000) . ")"); 47 52 echo "<div style='text-align: left'>\n"; 48 53 … … 56 61 'max_time' => $max_time, 57 62 'no_erase_dest' => lister_tables_noerase(), 58 'where' => $status['where'] ?$status['where']:array(),63 'where' => $status['where'] ? $status['where'] : array(), 59 64 'desc_tables_dest' => array() 60 65 ); 61 if ($desc = sql_getfetsel('valeur','spip_meta',"nom='dump_structure_temp'",'','','','','dump') 62 AND $desc = unserialize($desc)) 66 if ($desc = sql_getfetsel('valeur', 'spip_meta', "nom='dump_structure_temp'", '', '', '', '', 'dump') 67 AND $desc = unserialize($desc) 68 ) { 63 69 $options['desc_tables_dest'] = $desc; 70 } 64 71 $res = base_copier_tables($status_file, $status['tables'], 'dump', '', $options); 72 } else { 73 // mais on en profite pour reparer les version base pour etre sur de ne pas les perdre 74 sql_updateq("spip_meta", array('impt' => 'oui'), "nom='version_installee'", '', 'dump'); 75 sql_updateq("spip_meta", array('impt' => 'oui'), "nom LIKE '%_base_version'", '', 'dump'); 65 76 } 66 else { 67 // mais on en profite pour reparer les version base pour etre sur de ne pas les perdre 68 sql_updateq("spip_meta",array('impt'=>'oui'),"nom='version_installee'",'','dump'); 69 sql_updateq("spip_meta",array('impt'=>'oui'),"nom LIKE '%_base_version'",'','dump'); 77 78 echo("</div>\n"); 79 80 if (!$res) { 81 echo dump_relance($redirect); 70 82 } 71 72 echo ( "</div>\n");73 83 74 if (!$res) 75 echo dump_relance($redirect); 76 77 echo (install_fin_html()); 84 echo(install_fin_html()); 78 85 ob_end_flush(); 79 86 flush(); 80 87 81 if (!$res) 88 if (!$res) { 82 89 exit; 83 90 } 91 84 92 // quand on sort de $export avec true c'est qu'on a fini 85 dump_end(_DUMP_STATUS_FILE, 'restaurer');93 dump_end(_DUMP_STATUS_FILE, 'restaurer'); 86 94 include_spip('inc/headers'); 87 echo redirige_formulaire(generer_url_ecrire("restaurer", 'status='._DUMP_STATUS_FILE,'',true, true));95 echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true)); 88 96 89 97 } -
_core_/plugins/dump/connect/dump.php
r89285 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 /** … … 20 22 if ($args = dump_serveur()) { 21 23 $GLOBALS['spip_connect_version'] = 0.7; 22 if (call_user_func_array('spip_connect_db',$args)) 23 define('_DUMP_SERVEUR_OK',true); 24 if (call_user_func_array('spip_connect_db', $args)) { 25 define('_DUMP_SERVEUR_OK', true); 26 } 24 27 } 25 28 -
_core_/plugins/dump/exec/base_restaurer.php
r89285 r93610 14 14 * Gestion d'affichage de la page en cas de restauration interrompue 15 15 */ 16 17 if (!defined('_ECRIRE_INC_VERSION')) return; 16 17 if (!defined('_ECRIRE_INC_VERSION')) { 18 return; 19 } 18 20 19 21 /** 20 22 * Finir une restauration interrompue par logout 21 23 */ 22 function exec_base_restaurer_dist() {24 function exec_base_restaurer_dist() { 23 25 24 26 include_spip('base/dump'); 25 $status_file = base_dump_meta_name(0) ."_restauration";26 $restaurer = charger_fonction("restaurer", "action");27 $status_file = base_dump_meta_name(0) . "_restauration"; 28 $restaurer = charger_fonction("restaurer", "action"); 27 29 $restaurer($status_file); 28 30 -
_core_/plugins/dump/formulaires/inc-lister-sauvegardes_fonctions.php
r53164 r93610 1 1 <?php 2 2 3 if (!defined("_ECRIRE_INC_VERSION")) return; 3 if (!defined("_ECRIRE_INC_VERSION")) { 4 return; 5 } 4 6 5 7 include_spip('inc/dump'); -
_core_/plugins/dump/formulaires/restaurer.php
r89285 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 13 if (!defined("_ECRIRE_INC_VERSION")) { 14 return; 15 } 14 16 include_spip('base/dump'); 15 17 include_spip('inc/dump'); … … 17 19 /** 18 20 * Charger #FORMULAIRE_RESTAURER 21 * 19 22 * @return array 20 23 */ 21 function formulaires_restaurer_charger_dist() {24 function formulaires_restaurer_charger_dist() { 22 25 // ici on liste tout, les tables exclue sont simplement non cochees 23 26 24 27 $valeurs = array( 25 28 '_dir_dump' => dump_repertoire(), 26 'choisi' => _request('fichier') ?_request('fichier'):_request('nom'),29 'choisi' => _request('fichier') ? _request('fichier') : _request('nom'), 27 30 'nom_sauvegarde' => '', 28 'tout_restaurer' => (_request('check_tables') AND !_request('tout_restaurer')) ?'':'oui',31 'tout_restaurer' => (_request('check_tables') AND !_request('tout_restaurer')) ? '' : 'oui', 29 32 'fichier' => '', 30 33 'tri' => 'nom', … … 36 39 /** 37 40 * Verifier 41 * 38 42 * @return array 39 43 */ … … 41 45 $erreurs = array(); 42 46 $nom = ""; 43 if (!$fichier =_request('fichier') AND !$nom = _request('nom_sauvegarde'))47 if (!$fichier = _request('fichier') AND !$nom = _request('nom_sauvegarde')) { 44 48 $erreurs['fichier'] = _T('info_obligatoire'); 45 elseif ($fichier) {49 } elseif ($fichier) { 46 50 $fichier = basename($fichier); // securite 47 if (!file_exists(dump_repertoire() .$fichier))51 if (!file_exists(dump_repertoire() . $fichier)) { 48 52 $erreurs['fichier'] = _T('dump:erreur_nom_fichier'); 49 else53 } else { 50 54 $nom = $fichier; 51 }52 else {55 } 56 } else { 53 57 $nom = basename($nom); // securite 54 if (!file_exists(dump_repertoire() .$nom)) {58 if (!file_exists(dump_repertoire() . $nom)) { 55 59 $erreurs['nom_sauvegarde'] = _T('dump:erreur_nom_fichier'); 56 60 $nom = ""; … … 60 64 $erreurs['message_erreur'] = _T('dump:erreur_restaurer_verifiez'); 61 65 } 62 66 63 67 if ($nom) { 64 $archive = dump_repertoire() .$nom;65 if (!$args = dump_connect_args($archive)) 68 $archive = dump_repertoire() . $nom; 69 if (!$args = dump_connect_args($archive)) { 66 70 $erreurs['tout_restaurer'] = _T('dump:erreur_sqlite_indisponible'); 71 } 67 72 dump_serveur($args); 68 73 $tables = base_lister_toutes_tables('dump'); 69 $tables = base_saisie_tables('tables', $tables, array(), _request('tables') ?_request('tables'):array(),'dump');74 $tables = base_saisie_tables('tables', $tables, array(), _request('tables') ? _request('tables') : array(), 'dump'); 70 75 $erreurs['tables'] = "<ol class='spip'><li class='choix'>\n" . join("</li>\n<li class='choix'>", 71 76 $tables 72 77 ) . "</li></ol><input type='hidden' name='check_tables' value='oui' />\n"; 73 if (!count(_request('tables')) AND !_request('tout_restaurer') AND _request('check_tables')) 78 if (!count(_request('tables')) AND !_request('tout_restaurer') AND _request('check_tables')) { 74 79 $erreurs['tout_restaurer'] = _T('dump:selectionnez_table_a_restaurer'); 80 } 75 81 } 76 82 77 83 if ($nom 78 AND (!count($erreurs) OR (count($erreurs) ==1 AND isset($erreurs['tables'])))79 80 if (_request('confirm') !==$nom) {84 AND (!count($erreurs) OR (count($erreurs) == 1 AND isset($erreurs['tables']))) 85 ) { 86 if (_request('confirm') !== $nom) { 81 87 $erreurs['message_confirm'] = 82 _T('dump:info_selection_sauvegarde',array('fichier'=> '<i>'.joli_repertoire(dump_repertoire().$nom)."</i>")) 83 ."<br /><input type='checkbox' name='confirm' value='$nom' id='confirm' /> "; 84 $erreurs['message_confirm'].="<label for='confirm'><strong>"; 85 if (_request('tables')) 86 $erreurs['message_confirm'].=_T('dump:confirmer_ecraser_tables_selection'); 87 else 88 $erreurs['message_confirm'].=_T('dump:confirmer_ecraser_base'); 89 $erreurs['message_confirm'].="</strong></label>"; 88 _T('dump:info_selection_sauvegarde', 89 array('fichier' => '<i>' . joli_repertoire(dump_repertoire() . $nom) . "</i>")) 90 . "<br /><input type='checkbox' name='confirm' value='$nom' id='confirm' /> "; 91 $erreurs['message_confirm'] .= "<label for='confirm'><strong>"; 92 if (_request('tables')) { 93 $erreurs['message_confirm'] .= _T('dump:confirmer_ecraser_tables_selection'); 94 } else { 95 $erreurs['message_confirm'] .= _T('dump:confirmer_ecraser_base'); 96 } 97 $erreurs['message_confirm'] .= "</strong></label>"; 98 } else // passer a traiter() 99 { 100 unset($erreurs['tables']); 90 101 } 91 else92 // passer a traiter()93 unset($erreurs['tables']);94 102 } 95 103 96 if (count($erreurs) AND !isset($erreurs['message_erreur'])) 97 $erreurs['message_erreur'] = ''; // pas de message general automatique ici 104 if (count($erreurs) AND !isset($erreurs['message_erreur'])) { 105 $erreurs['message_erreur'] = ''; 106 } // pas de message general automatique ici 98 107 return $erreurs; 99 108 } … … 101 110 /** 102 111 * Traiter 112 * 103 113 * @return array 104 114 */ 105 115 function formulaires_restaurer_traiter_dist() { 106 116 107 $archive = (_request('fichier') ?_request('fichier'):_request('nom'));117 $archive = (_request('fichier') ? _request('fichier') : _request('nom')); 108 118 $dir_dump = dump_repertoire(); 109 $archive = $dir_dump . basename($archive, ".sqlite");110 111 $status_file = base_dump_meta_name(0) ."_restauration";119 $archive = $dir_dump . basename($archive, ".sqlite"); 120 121 $status_file = base_dump_meta_name(0) . "_restauration"; 112 122 113 123 if (_request('tout_restaurer')) { … … 115 125 dump_serveur($args); 116 126 $tables = base_lister_toutes_tables('dump'); 127 } else { 128 $tables = _request('tables'); 117 129 } 118 else119 $tables = _request('tables');120 130 121 131 include_spip('inc/dump'); 122 $res = dump_init($status_file, $archive, $tables, array('spip_meta'=>"impt='oui'"));132 $res = dump_init($status_file, $archive, $tables, array('spip_meta' => "impt='oui'")); 123 133 124 if ($res ===true) {134 if ($res === true) { 125 135 // on lance l'action restaurer qui va realiser la sauvegarde 126 136 // et finira par une redirection vers la page sauvegarde_fin 127 137 include_spip('inc/actions'); 128 138 $redirect = generer_action_auteur('restaurer', $status_file); 129 return array('message_ok'=>'ok','redirect'=>$redirect); 139 140 return array('message_ok' => 'ok', 'redirect' => $redirect); 141 } else { 142 return array('message_erreur' => $res); 130 143 } 131 else132 return array('message_erreur'=>$res);133 144 } 134 145 -
_core_/plugins/dump/formulaires/sauvegarder.php
r89285 r93610 13 13 /** 14 14 * Gestion du formulaire de sauvegarde de la base de données 15 * 15 16 * @package SPIP\Dump\Formulaires 16 17 */ 17 18 if (!defined("_ECRIRE_INC_VERSION")) return; 18 19 if (!defined("_ECRIRE_INC_VERSION")) { 20 return; 21 } 19 22 include_spip('base/dump'); 20 23 include_spip('inc/dump'); … … 22 25 /** 23 26 * Charger `#FORMULAIRE_SAUVEGARDER` 27 * 24 28 * @return array 25 29 */ 26 function formulaires_sauvegarder_charger_dist() {30 function formulaires_sauvegarder_charger_dist() { 27 31 $dir_dump = dump_repertoire(); 28 32 … … 30 34 $exclude = lister_tables_noexport(); 31 35 list($tables,) = base_liste_table_for_dump($exclude); 32 $tables = base_lister_toutes_tables('', $tables);36 $tables = base_lister_toutes_tables('', $tables); 33 37 34 38 $valeurs = array( 35 '_dir_dump' =>joli_repertoire($dir_dump),36 '_dir_img' =>joli_repertoire(_DIR_IMG),37 '_spipnet' => $GLOBALS['home_server'] . '/' . 38 'nom_sauvegarde' => basename(dump_nom_fichier($dir_dump, 'sqlite'),'.sqlite'),39 'tout_sauvegarder' => (_request('nom_sauvegarde') AND !_request('tout_sauvegarder')) ?'':'oui',39 '_dir_dump' => joli_repertoire($dir_dump), 40 '_dir_img' => joli_repertoire(_DIR_IMG), 41 '_spipnet' => $GLOBALS['home_server'] . '/' . $GLOBALS['spip_lang'] . '_article1489.html', 42 'nom_sauvegarde' => basename(dump_nom_fichier($dir_dump, 'sqlite'), '.sqlite'), 43 'tout_sauvegarder' => (_request('nom_sauvegarde') AND !_request('tout_sauvegarder')) ? '' : 'oui', 40 44 '_tables' => "<ol class='spip'><li class='choix'>\n" . join("</li>\n<li class='choix'>", 41 base_saisie_tables('tables', $tables, $exclude, _request('nom_sauvegarde')?(_request('tables')?_request('tables'):array()):null) 45 base_saisie_tables('tables', $tables, $exclude, 46 _request('nom_sauvegarde') ? (_request('tables') ? _request('tables') : array()) : null) 42 47 ) . "</li></ol>\n", 43 48 '_prefixe' => base_prefixe_tables(''), … … 49 54 /** 50 55 * Verifier 56 * 51 57 * @return array 52 58 */ 53 59 function formulaires_sauvegarder_verifier_dist() { 54 60 $erreurs = array(); 55 if (!$nom = _request('nom_sauvegarde')) 61 if (!$nom = _request('nom_sauvegarde')) { 56 62 $erreurs['nom_sauvegarde'] = _T('info_obligatoire'); 57 elseif (!preg_match(',^[\w_][\w_.]*$,', $nom) 58 OR basename($nom)!==$nom) 63 } elseif (!preg_match(',^[\w_][\w_.]*$,', $nom) 64 OR basename($nom) !== $nom 65 ) { 59 66 $erreurs['nom_sauvegarde'] = _T('dump:erreur_nom_fichier'); 67 } 60 68 61 69 return $erreurs; … … 64 72 /** 65 73 * Traiter 74 * 66 75 * @return array 67 76 */ … … 69 78 $status_file = base_dump_meta_name(0); 70 79 $dir_dump = dump_repertoire(); 71 $archive = $dir_dump . basename(_request('nom_sauvegarde'), ".sqlite");80 $archive = $dir_dump . basename(_request('nom_sauvegarde'), ".sqlite"); 72 81 73 82 if (_request('tout_sauvegarder')) { … … 76 85 $exclude = lister_tables_noexport(); 77 86 list($tables,) = base_liste_table_for_dump($exclude); 78 $tables = base_lister_toutes_tables('',$tables,$exclude); 87 $tables = base_lister_toutes_tables('', $tables, $exclude); 88 } else { 89 $tables = _request('tables'); 79 90 } 80 else81 $tables = _request('tables');82 91 83 92 include_spip('inc/dump'); 84 93 $res = dump_init($status_file, $archive, $tables); 85 94 86 if ($res ===true) {95 if ($res === true) { 87 96 // on lance l'action sauvegarder qui va realiser la sauvegarde 88 97 // et finira par une redirection vers la page sauvegarde_fin 89 98 include_spip('inc/actions'); 90 99 $redirect = generer_action_auteur('sauvegarder', $status_file); 91 return array('message_ok'=>'ok','redirect'=>$redirect); 100 101 return array('message_ok' => 'ok', 'redirect' => $redirect); 102 } else { 103 return array('message_erreur' => $res); 92 104 } 93 else94 return array('message_erreur'=>$res);95 105 } 96 106 -
_core_/plugins/dump/inc/dump.php
r93092 r93610 17 17 */ 18 18 19 if (!defined("_ECRIRE_INC_VERSION")) return; 19 if (!defined("_ECRIRE_INC_VERSION")) { 20 return; 21 } 20 22 21 23 … … 24 26 * 25 27 * Crée et retourne le chemin du répertoire de sauvegarde 28 * 26 29 * @see _DIR_DUMP 27 * 30 * 28 31 * @return string 29 32 */ … … 31 34 $repertoire = _DIR_DUMP; 32 35 if (!@file_exists($repertoire) 33 AND !$repertoire = sous_repertoire(_DIR_DUMP, '',false,true)34 ) { 35 $repertoire = preg_replace(',' ._DIR_TMP.',', '', _DIR_DUMP);36 AND !$repertoire = sous_repertoire(_DIR_DUMP, '', false, true) 37 ) { 38 $repertoire = preg_replace(',' . _DIR_TMP . ',', '', _DIR_DUMP); 36 39 $repertoire = sous_repertoire(_DIR_TMP, $repertoire); 37 40 } 41 38 42 return $repertoire; 39 43 } … … 42 46 /** 43 47 * Nom du fichier de sauvegarde 44 * 48 * 45 49 * la fourniture de l'extension permet de vérifier que le nom n'existe pas déjà. 46 50 * 47 * @param string $dir 48 * @param string $extension 49 * @return string 50 */ 51 function dump_nom_fichier($dir, $extension = 'sqlite') {51 * @param string $dir Chemin de stockage du fichier 52 * @param string $extension Extension du fichier de sauvegarde 53 * @return string 54 */ 55 function dump_nom_fichier($dir, $extension = 'sqlite') { 52 56 include_spip('inc/texte'); 53 57 $site = 'spip'; 54 if (isset($GLOBALS['meta']['nom_site'])) {58 if (isset($GLOBALS['meta']['nom_site'])) { 55 59 $site = typo($GLOBALS['meta']['nom_site']); // extraire_multi 56 $site = couper(translitteration(trim($site)), 30,"");57 $site = preg_replace(array(",\W,is", ",_(?=_),",",_$,"),array("_","",""), $site);60 $site = couper(translitteration(trim($site)), 30, ""); 61 $site = preg_replace(array(",\W,is", ",_(?=_),", ",_$,"), array("_", "", ""), $site); 58 62 } 59 63 … … 61 65 62 66 $nom = $site; 63 $cpt =0;64 while (file_exists($dir . $nom . ".$extension")) {67 $cpt = 0; 68 while (file_exists($dir . $nom . ".$extension")) { 65 69 $nom = $site . sprintf('_%03d', ++$cpt); 66 70 } 67 return $nom.".$extension"; 71 72 return $nom . ".$extension"; 68 73 } 69 74 … … 71 76 * Détermine le type de serveur de sauvegarde, 72 77 * sqlite2 ou sqlite3 73 * 78 * 74 79 * @return string 75 80 */ … … 78 83 // chercher si sqlite2 ou 3 est disponible 79 84 include_spip('req/sqlite3'); 80 if (spip_versions_sqlite3()) 85 if (spip_versions_sqlite3()) { 81 86 return 'sqlite3'; 87 } 82 88 83 89 include_spip('req/sqlite2'); 84 if (spip_versions_sqlite2()) 90 if (spip_versions_sqlite2()) { 85 91 return 'sqlite2'; 92 } 86 93 87 94 return ''; … … 90 97 /** 91 98 * Conteneur pour les arguments de la connexion 92 * 99 * 93 100 * Si on passe $args, les arguments de la connexion sont memorisés. 94 101 * Renvoie toujours les derniers arguments memorisés. … … 100 107 function dump_serveur($args = null) { 101 108 static $connect_args = null; 102 if ($args) 109 if ($args) { 103 110 $connect_args = $args; 111 } 104 112 105 113 return $connect_args; … … 107 115 108 116 function dump_connect_args($archive) { 109 if (!$type_serveur = dump_type_serveur()) 117 if (!$type_serveur = dump_type_serveur()) { 110 118 return null; 111 return array(dirname($archive), '', '', '', basename($archive,".sqlite"), $type_serveur, 'spip'); 119 } 120 121 return array(dirname($archive), '', '', '', basename($archive, ".sqlite"), $type_serveur, 'spip'); 112 122 } 113 123 … … 115 125 * Initialiser un dump 116 126 * 117 * @param string $status_file 118 * @param string $archive 119 * @param array $tables 120 * @param array $where 121 * @param string $action 127 * @param string $status_file Fichier contenant les informations serialisees sur le statut de l'export 128 * @param string $archive Nom de l'archive (stockee dans le fichier de statut) 129 * @param array $tables Liste des tables a exporter (autocaculee par defaut) 130 * @param array $where Condition sur l'export 131 * @param string $action Pour differencier la sauvegarde de l'import 122 132 * @return bool/string 123 133 */ 124 function dump_init($status_file, $archive, $tables = null, $where = array(), $action = 'sauvegarde') {125 $status_file = _DIR_TMP .basename($status_file).".txt";134 function dump_init($status_file, $archive, $tables = null, $where = array(), $action = 'sauvegarde') { 135 $status_file = _DIR_TMP . basename($status_file) . ".txt"; 126 136 127 137 if (lire_fichier($status_file, $status) 128 138 AND $status = unserialize($status) 129 AND $status['etape']!=='fini' 130 AND filemtime($status_file)>=time()-120) // si le fichier status est trop vieux c'est un abandon 131 return _T("dump:erreur_".$action."_deja_en_cours"); 132 133 if (!$type_serveur = dump_type_serveur()) 139 AND $status['etape'] !== 'fini' 140 AND filemtime($status_file) >= time()-120 141 ) // si le fichier status est trop vieux c'est un abandon 142 { 143 return _T("dump:erreur_" . $action . "_deja_en_cours"); 144 } 145 146 if (!$type_serveur = dump_type_serveur()) { 134 147 return _T('dump:erreur_sqlite_indisponible'); 135 136 if (!$tables) 148 } 149 150 if (!$tables) { 137 151 list($tables,) = base_liste_table_for_dump(lister_tables_noexport()); 138 $status = array('tables'=>$tables,'where'=>$where,'archive'=>$archive); 152 } 153 $status = array('tables' => $tables, 'where' => $where, 'archive' => $archive); 139 154 140 155 $status['connect'] = dump_connect_args($archive); 141 156 dump_serveur($status['connect']); 142 if (!spip_connect('dump')) 157 if (!spip_connect('dump')) { 143 158 return _T('dump:erreur_creation_base_sqlite'); 159 } 144 160 145 161 // la constante sert a verifier qu'on utilise bien le connect/dump du plugin, 146 162 // et pas une base externe homonyme 147 if (!defined('_DUMP_SERVEUR_OK')) 163 if (!defined('_DUMP_SERVEUR_OK')) { 148 164 return _T('erreur_connect_dump', array('dump' => 'dump')); 165 } 149 166 150 167 $status['etape'] = 'init'; 151 168 152 if (!ecrire_fichier($status_file, serialize($status))) 153 return _T('dump:avis_probleme_ecriture_fichier',array('fichier'=>$status_file)); 169 if (!ecrire_fichier($status_file, serialize($status))) { 170 return _T('dump:avis_probleme_ecriture_fichier', array('fichier' => $status_file)); 171 } 154 172 155 173 return true; … … 167 185 static $etape = 1; 168 186 if (unique($table)) { 169 if ($total<0 OR !is_numeric($total)) 170 echo "<br /><strong>".$etape. '. '."</strong>$table "; 171 else 172 echo "<br /><strong>".$etape. '. '."$table</strong> ".($courant?" <i>($courant)</i> ":""); 187 if ($total < 0 OR !is_numeric($total)) { 188 echo "<br /><strong>" . $etape . '. ' . "</strong>$table "; 189 } else { 190 echo "<br /><strong>" . $etape . '. ' . "$table</strong> " . ($courant ? " <i>($courant)</i> " : ""); 191 } 173 192 $etape++; 174 193 } 175 if (is_numeric($total) AND $total >=0)194 if (is_numeric($total) AND $total >= 0) { 176 195 echo ". "; 177 else 178 echo "(". (-intval($total)).")"; 196 } else { 197 echo "(" . (-intval($total)) . ")"; 198 } 179 199 flush(); 180 200 } … … 183 203 * Écrire le js pour relancer la procédure de dump 184 204 * 185 * @param string $redirect 205 * @param string $redirect URL de la prochaine etape du dump 186 206 * @return string Code HTML de redirection 187 207 */ 188 function dump_relance($redirect) {208 function dump_relance($redirect) { 189 209 // si Javascript est dispo, anticiper le Time-out 190 210 return "<script language=\"JavaScript\" type=\"text/javascript\">window.setTimeout('location.href=\"$redirect\";',300);</script>\n"; … … 203 223 * - 'auvegarder : stocker dans le dump la structure de la base source 204 224 */ 205 function dump_end($status_file, $action = '') {206 $status_file = _DIR_TMP .basename($status_file).".txt";225 function dump_end($status_file, $action = '') { 226 $status_file = _DIR_TMP . basename($status_file) . ".txt"; 207 227 if (!lire_fichier($status_file, $status) 208 OR !$status = unserialize($status)) 228 OR !$status = unserialize($status) 229 ) { 209 230 return; 210 211 switch($action) { 231 } 232 233 switch ($action) { 212 234 case 'restaurer': 213 235 // supprimer la structure qui etait stockee dans le dump 214 sql_delete('spip_meta', "nom='dump_structure_temp'");236 sql_delete('spip_meta', "nom='dump_structure_temp'"); 215 237 break; 216 238 case 'sauvegarder': 217 239 // stocker dans le dump la structure de la base source 218 240 $structure = array(); 219 foreach($status['tables_copiees'] as $t=>$n) 220 $structure[$t] = sql_showtable($t,true); 241 foreach ($status['tables_copiees'] as $t => $n) { 242 $structure[$t] = sql_showtable($t, true); 243 } 221 244 dump_serveur($status['connect']); 222 245 spip_connect('dump'); 223 246 // si spip_meta n'a pas ete backup elle n'est pas dans le dump, il faut la creer pour y stocker cette meta 224 if (!sql_showtable("spip_meta", true,"dump")){225 $desc = sql_showtable("spip_meta", true);226 sql_create("spip_meta", $desc['field'],$desc['key'],false,false,"dump");247 if (!sql_showtable("spip_meta", true, "dump")) { 248 $desc = sql_showtable("spip_meta", true); 249 sql_create("spip_meta", $desc['field'], $desc['key'], false, false, "dump"); 227 250 } 228 sql_delete('spip_meta',"nom='dump_structure_temp'",'dump'); #enlever une vieille structure deja la, au cas ou 229 sql_insertq('spip_meta',array('nom'=>'dump_structure_temp','valeur'=>serialize($structure),'impt'=>'non'),array(),'dump'); 251 sql_delete('spip_meta', "nom='dump_structure_temp'", 'dump'); #enlever une vieille structure deja la, au cas ou 252 sql_insertq('spip_meta', 253 array('nom' => 'dump_structure_temp', 'valeur' => serialize($structure), 'impt' => 'non'), array(), 'dump'); 230 254 break; 231 255 } 232 256 233 257 $status['etape'] = 'fini'; 234 258 ecrire_fichier($status_file, serialize($status)); … … 238 262 * Lister les fichiers de sauvegarde existant dans un repertoire 239 263 * trie par nom, date ou taille 240 * 241 * @param string $dir 242 * @param string $tri 243 * @param string $extension 244 * @param int $limit 264 * 265 * @param string $dir Repertoire de sauvegarde 266 * @param string $tri Tri pour recuperer les fichiers 267 * @param string $extension Extension des fichiers de sauvegarde 268 * @param int $limit Nombre max de fichiers listes 245 269 * @return array 246 270 */ 247 271 function dump_lister_sauvegardes($dir, $tri = 'nom', $extension = "sqlite", $limit = 100) { 248 $liste_dump = preg_files($dir, '\.'.$extension.'$',$limit,false);272 $liste_dump = preg_files($dir, '\.' . $extension . '$', $limit, false); 249 273 250 274 $n = strlen($dir); 251 275 $tn = $tl = $tt = $td = array(); 252 foreach ($liste_dump as $fichier){276 foreach ($liste_dump as $fichier) { 253 277 $d = filemtime($fichier); 254 278 $t = filesize($fichier); 255 279 $fichier = substr($fichier, $n); 256 $tl[] = array('fichier'=>$fichier,'taille'=>$t,'date'=>$d);280 $tl[] = array('fichier' => $fichier, 'taille' => $t, 'date' => $d); 257 281 $td[] = $d; 258 282 $tt[] = $t; 259 283 $tn[] = $fichier; 260 284 } 261 if ($tri == 'taille') 285 if ($tri == 'taille') { 262 286 array_multisort($tt, SORT_ASC, $tl); 263 elseif ($tri == 'date')287 } elseif ($tri == 'date') { 264 288 array_multisort($td, SORT_ASC, $tl); 265 else289 } else { 266 290 array_multisort($tn, SORT_ASC, $tl); 291 } 292 267 293 return $tl; 268 294 } … … 270 296 /** 271 297 * Extraire le statut contenu dans un fichier 272 * 298 * 273 299 * @param $status_file Nom du fichier stocke dans _DIR_TMP 274 300 * @return array 275 301 */ 276 302 function dump_lire_status($status_file) { 277 $status_file = _DIR_TMP .basename($status_file).".txt";303 $status_file = _DIR_TMP . basename($status_file) . ".txt"; 278 304 if (!lire_fichier($status_file, $status) 279 OR !$status = unserialize($status)) 280 return ''; 305 OR !$status = unserialize($status) 306 ) { 307 return ''; 308 } 281 309 282 310 return $status; … … 285 313 /** 286 314 * Verifier qu'un sauvegarde est finie 287 * 315 * 288 316 * @param $status_file Nom du fichier stocke dans _DIR_TMP 289 317 * @return string Chaine non vide s'il reste des choses a faire 290 318 */ 291 319 function dump_verifie_sauvegarde_finie($status_file) { 292 if (!$status=dump_lire_status($status_file) 293 OR $status['etape']!=='fini') 294 return ''; 320 if (!$status = dump_lire_status($status_file) 321 OR $status['etape'] !== 'fini' 322 ) { 323 return ''; 324 } 325 295 326 return ' '; 296 327 } … … 298 329 /** 299 330 * Recuperer le nom du fichier d'archivage qui est memorise dans le fichier de statut 300 * 331 * 301 332 * @param $status_file Nom du fichier stocke dans _DIR_TMP 302 333 * @return string Nom ou chaine vide si on a un probleme 303 334 */ 304 335 function dump_nom_sauvegarde($status_file) { 305 if (!$status=dump_lire_status($status_file) 306 OR !file_exists($f=$status['archive'].".sqlite")) 307 return ''; 336 if (!$status = dump_lire_status($status_file) 337 OR !file_exists($f = $status['archive'] . ".sqlite") 338 ) { 339 return ''; 340 } 308 341 309 342 return $f; … … 312 345 /** 313 346 * Recuperer la taille du fichier de sauvegarde 314 * 347 * 315 348 * @param $status_file Nom du fichier stocke dans _DIR_TMP 316 349 * @return string/int Taille ou Chaine vide en cas de probleme 317 350 */ 318 351 function dump_taille_sauvegarde($status_file) { 319 if (!$f=dump_nom_sauvegarde($status_file) 320 OR !$s = filesize($f)) 321 return ''; 352 if (!$f = dump_nom_sauvegarde($status_file) 353 OR !$s = filesize($f) 354 ) { 355 return ''; 356 } 322 357 323 358 return $s; … … 326 361 /** 327 362 * Recuperer la date de derniere modification du fichier de sauvegarde 328 * 363 * 329 364 * @param $status_file Nom du fichier stocke dans _DIR_TMP 330 365 * @return string/int Date ou Chaine vide en cas de probleme 331 366 */ 332 367 function dump_date_sauvegarde($status_file) { 333 if (!$f=dump_nom_sauvegarde($status_file) 334 OR !$d = filemtime($f)) 335 return ''; 336 337 return date('Y-m-d',$d); 368 if (!$f = dump_nom_sauvegarde($status_file) 369 OR !$d = filemtime($f) 370 ) { 371 return ''; 372 } 373 374 return date('Y-m-d', $d); 338 375 } 339 376 -
_core_/plugins/dump/inc/sauvegarder.php
r93092 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 13 if (!defined("_ECRIRE_INC_VERSION")) { 14 return; 15 } 14 16 15 17 include_spip('inc/dump'); … … 19 21 * En mode sqlite on passe par une copie de base a base (dans l'API de SPIP) 20 22 * 21 * @param string $status_file 22 * @param string $redirect 23 * @param string $status_file Nom du fichier de status (stocke dans _DIR_TMP) 24 * @param string $redirect Redirection apres la sauvegarde 23 25 * @return bool 24 26 */ 25 27 function inc_sauvegarder_dist($status_file, $redirect = '') { 26 $status_file = _DIR_TMP .basename($status_file).".txt";28 $status_file = _DIR_TMP . basename($status_file) . ".txt"; 27 29 if (!lire_fichier($status_file, $status) 28 OR !$status = unserialize($status) ) {29 }30 else {30 OR !$status = unserialize($status) 31 ) { 32 } else { 31 33 $timeout = ini_get('max_execution_time'); 32 34 // valeur conservatrice si on a pas reussi a lire le max_execution_time 33 if (!$timeout) $timeout=30; // parions sur une valeur tellement courante ... 35 if (!$timeout) { 36 $timeout = 30; 37 } // parions sur une valeur tellement courante ... 34 38 $max_time = time()+$timeout/2; 35 39 36 40 include_spip('inc/minipres'); 37 @ini_set("zlib.output_compression", "0"); // pour permettre l'affichage au fur et a mesure41 @ini_set("zlib.output_compression", "0"); // pour permettre l'affichage au fur et a mesure 38 42 39 $titre = _T('dump:sauvegarde_en_cours') . " (" .count($status['tables']).") ";43 $titre = _T('dump:sauvegarde_en_cours') . " (" . count($status['tables']) . ") "; 40 44 $balise_img = chercher_filtre('balise_img'); 41 45 $titre .= $balise_img(chemin_image('searching.gif')); 42 echo (install_debut_html($titre));46 echo(install_debut_html($titre)); 43 47 // script de rechargement auto sur timeout 44 echo http_script("window.setTimeout('location.href=\"" .$redirect."\";',".($timeout*1000).")");48 echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout*1000) . ")"); 45 49 echo "<div style='text-align: left'>\n"; 46 50 … … 55 59 'max_time' => $max_time, 56 60 'no_erase_dest' => lister_tables_noerase(), 57 'where' => $status['where'] ?$status['where']:array(),61 'where' => $status['where'] ? $status['where'] : array(), 58 62 ); 59 63 $res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options); 60 64 } 61 62 echo ( "</div>\n");63 65 64 if (!$res AND $redirect) 66 echo("</div>\n"); 67 68 if (!$res AND $redirect) { 65 69 echo dump_relance($redirect); 66 echo (install_fin_html()); 70 } 71 echo(install_fin_html()); 67 72 ob_end_flush(); 68 73 flush(); -
_core_/plugins/dump/prive/squelettes/contenu/restaurer_fonctions.php
r89285 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 include_spip('inc/dump'); … … 18 20 * Afficher les erreurs survenues dans la restauration 19 21 * 20 * @param string $status_file 22 * @param string $status_file Nom du fichier qui contient le statut de la restauration sous une forme serialisee 21 23 * @return string Code HTML a afficher 22 24 */ … … 28 30 $erreurs = array(); 29 31 30 if (!$tables) 31 return "<p>"._T("dump:erreur_aucune_donnee_restauree")."</p>"; 32 if (!$tables) { 33 return "<p>" . _T("dump:erreur_aucune_donnee_restauree") . "</p>"; 34 } 32 35 33 36 // lister les tables copiees aller verifier dans la base 34 37 // qu'on a le bon nombre de donnees 35 foreach ($tables as $t=>$n) {36 if (!sql_showtable($t, true) OR $n===0)37 $erreurs[$t] = _T('dump:erreur_table_absente', array('table'=>"<strong>$t</strong>"));38 else {38 foreach ($tables as $t => $n) { 39 if (!sql_showtable($t, true) OR $n === 0) { 40 $erreurs[$t] = _T('dump:erreur_table_absente', array('table' => "<strong>$t</strong>")); 41 } else { 39 42 $n = abs(intval($n)); 40 43 $n_dump = intval(sql_countsel($t)); 41 if ($n_dump<$n) 42 $erreurs[$t] = _T('dump:erreur_table_donnees_manquantes',array('table'=>"<strong>$t</strong>"));; 44 if ($n_dump < $n) { 45 $erreurs[$t] = _T('dump:erreur_table_donnees_manquantes', array('table' => "<strong>$t</strong>")); 46 }; 43 47 } 44 48 } 45 49 46 if (count($erreurs)) 47 $corps = "<ul class='spip'><li>".implode("</li><li class='spip'>",$erreurs)."</li></ul>"; 50 if (count($erreurs)) { 51 $corps = "<ul class='spip'><li>" . implode("</li><li class='spip'>", $erreurs) . "</li></ul>"; 52 } 53 48 54 return $corps; 49 55 } 56 50 57 ?> -
_core_/plugins/dump/prive/squelettes/contenu/sauvegarder_fonctions.php
r89285 r93610 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 include_spip('inc/dump'); … … 18 20 * Afficher les erreurs survenues dans la sauvegarde 19 21 * 20 * @param string $status_file 22 * @param string $status_file Nom du fichier qui contient le statut de la sauvegarde sous une forme serialisee 21 23 * @return string Code HTML a afficher 22 24 */ … … 30 32 spip_connect('dump'); 31 33 32 foreach ($tables as $t=>$n) {34 foreach ($tables as $t => $n) { 33 35 $n = abs(intval($n)); 34 $n_dump = intval(sql_countsel($t, '','','','dump'));36 $n_dump = intval(sql_countsel($t, '', '', '', 'dump')); 35 37 $res = "$t "; 36 if ($n_dump ==0 AND $n==0)37 $res .="("._T('dump:aucune_donnee').")";38 else38 if ($n_dump == 0 AND $n == 0) { 39 $res .= "(" . _T('dump:aucune_donnee') . ")"; 40 } else { 39 41 $res .= "($n_dump/$n)"; 40 if ($n!==$n_dump) 41 $res= "<strong>$res</strong>"; 42 } 43 if ($n !== $n_dump) { 44 $res = "<strong>$res</strong>"; 45 } 42 46 $tables[$t] = $res; 43 47 } … … 48 52 break; 49 53 case 1: 50 $corps = "<div style='width:49%;float:left;'><ul class='spip'><li class='spip'>" . join("</li><li class='spip'>", $tables) . "</li></ul></div>"; 54 $corps = "<div style='width:49%;float:left;'><ul class='spip'><li class='spip'>" . join("</li><li class='spip'>", 55 $tables) . "</li></ul></div>"; 51 56 break; 52 57 default: 53 58 $n = floor(count($tables)/2); 54 $corps = "<div style='width:49%;float:left;'><ul class='spip'><li class='spip'>" . join("</li><li class='spip'>", array_slice($tables,0,$n)) . "</li></ul></div>" 55 . "<div style='width:49%;float:left;'><ul class='spip'><li>" . join("</li><li class='spip'>", array_slice($tables,$n)) . "</li></ul></div>"; 59 $corps = "<div style='width:49%;float:left;'><ul class='spip'><li class='spip'>" . join("</li><li class='spip'>", 60 array_slice($tables, 0, $n)) . "</li></ul></div>" 61 . "<div style='width:49%;float:left;'><ul class='spip'><li>" . join("</li><li class='spip'>", 62 array_slice($tables, $n)) . "</li></ul></div>"; 56 63 } 57 64 $corps .= "<div class='nettoyeur'></div>"; 65 58 66 return $corps; 59 67 … … 63 71 $erreurs = ""; 64 72 $status = dump_lire_status($status_file); 65 if (isset($status['errors'])) {66 $erreurs = implode("<br />", $status['errors']);73 if (isset($status['errors'])) { 74 $erreurs = implode("<br />", $status['errors']); 67 75 } 68 76 69 77 return $erreurs; 70 78 } 79 71 80 ?>
Note: See TracChangeset
for help on using the changeset viewer.