Changeset 59682 in spip-zone


Ignore:
Timestamp:
Mar 24, 2012, 4:12:18 PM (7 years ago)
Author:
cedric@…
Message:

Ferme http://core.spip.org/issues/2511 :
les navigateurs declenchent une erreur apres un certain nombre de redicection.
Remplacons celles-ci par un affichage de la page avec le % de progression et une meta refresh 0
+ robustifier l'affichage de la page meme en cas de bufferisation cote serveur

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _dev_/spip_loader/spip_loader.php

    r43589 r59682  
    2828
    2929# Chemin du paquet de la version STABLE a telecharger
    30 define('_CHEMIN_FICHIER_ZIP', 'spip/stable/spip.zip');
     30define('_CHEMIN_FICHIER_ZIP', 'spip/dev/SPIP-svn.zip');
    3131
    3232# Adresse des librairies necessaires a spip_loader
     
    534534        global $taux;
    535535        echo ($taux ? '
    536         <div id="taux" style="display: none;">' . $taux . '</div>' : '') .
     536        <div id="taux" style="display:none">'.$taux.'</div>' : '') .
    537537        '
    538538        <p style="text-align:right;font-size:x-small;">spip_loader '
     
    542542        </html>
    543543        ';
     544
     545        // forcer l'envoi du buffer par tous les moyens !
     546        echo(str_repeat("<br />\r\n",256));
     547        while (@ob_get_level()){
     548                @ob_flush();
     549                @flush();
     550                @ob_end_flush();
     551        }
    544552}
    545553
     
    653661                // si l'extraction n'est pas finie, relancer
    654662                if ($start_index<$max_index){
     663
    655664                        $url = _DIR_BASE._SPIP_LOADER_SCRIPT
    656665                        .  (strpos(_SPIP_LOADER_SCRIPT, '?') ? '&' : '?')
    657666                        . "etape=fichier&chemin=$paquet&dest=$dest&start=$end_index";
    658                         header("Location: $url");
    659                         exit;
     667                        $progres = $start_index/$max_index;
     668                        spip_redirige_boucle($url,$progres);
    660669                }
    661670
     
    674683                header("Location: $url");
    675684        }
     685}
     686
     687function spip_redirige_boucle($url, $progres = ""){
     688        @apache_setenv('no-gzip', 1);
     689        @ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
     690        @ini_set("output_buffering","off");
     691        @ini_set('implicit_flush', 1);
     692        @ob_implicit_flush(1);
     693        $corps = '<meta http-equiv="refresh" content="0;'.$url.'">';
     694        if ($progres){
     695                $corps .="<h2 style='text-align: center'>".round($progres*100)."%</h2>";
     696        }
     697        debut_html($corps);
     698        fin_html();
     699        exit;
    676700}
    677701
Note: See TracChangeset for help on using the changeset viewer.