function install_etape_4_dist()
{
// creer le repertoire cache, qui sert partout !
if (!@file_exists(_DIR_CACHE)) {
$rep = preg_replace(',' . _DIR_TMP . ',', '', _DIR_CACHE);
$rep = sous_repertoire(_DIR_TMP, $rep, true, true);
}
echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
echo info_progression_etape(4, 'etape_', 'install/');
echo "<div class='success'><b>" . _T('info_derniere_etape') . "</b><p>" . _T('info_utilisation_spip') . "</p></div>";
echo "<p>" . _T('plugin_info_plugins_dist_1', array('plugins_dist' => "<tt>" . joli_repertoire(_DIR_PLUGINS_DIST) . "</tt>")) . "</p>";
// installer les extensions
include_spip('inc/plugin');
$afficher = charger_fonction("afficher_liste", 'plugins');
echo $afficher(self(), liste_plugin_files(_DIR_PLUGINS_DIST), array(), array(), _DIR_PLUGINS_DIST, 'afficher_nom_plugin');
// si la base de SPIP est up, on peut installer les plugins, sinon on passe cette etape
// car les plugins supposent que la base de SPIP est dans son etat normal (mise a jour)
// au premier passage dans l'espace prive on aura une demande d'upgrade qui se poursuit sur la page plugin
// et procede alors a l'installation
if (!isset($GLOBALS['meta']['version_installee']) or $GLOBALS['spip_version_base'] == str_replace(',', '.', $GLOBALS['meta']['version_installee'])) {
plugin_installes_meta();
}
// mettre a jour si necessaire l'adresse du site
// securite si on arrive plus a se loger
include_spip('inc/config');
appliquer_adresse_site('');
// aller a la derniere etape qui clos l'install et redirige
$suite = "\n<input type='hidden' name='etape' value='fin' />" . bouton_suivant(_T('login_espace_prive'));
echo generer_form_ecrire('install', $suite);
echo install_fin_html();
}
function base_convert_utf8_dist($titre='', $reprise=false)
{
if (!$titre) return; // anti-testeur automatique
// une liste des tables a convertir, avec le champ dans lequel on
// indique '<CONVERT charset>' ; on commence par les rubriques sinon
// ca fait desordre dans l'interface privee
$tables_a_convertir = array(
'spip_rubriques' => 'titre',
'spip_auteurs' => 'nom',
'spip_articles' => 'titre',
'spip_breves' => 'titre',
'spip_documents' => 'titre',
'spip_forum' => 'titre',
'spip_mots' => 'titre',
'spip_groupes_mots' => 'titre',
'spip_petitions' => 'texte',
'spip_signatures' => 'nom_email',
'spip_syndic' => 'nom_site',
'spip_syndic_articles' => 'titre',
'spip_messages' => 'titre'
);
if (!$reprise) convert_utf8_init($tables_a_convertir);
echo install_debut_html($titre);
echo "<p>", _T('utf8_convert_timeout'), "</p><hr />\n";
// preparer un fichier de sauvegarde au cas ou
// on met 'a' car ca peut demander plusieurs rechargements
$f = @fopen(_DIR_TMP.'convert_utf8_backup.sql', 'a');
foreach ($tables_a_convertir as $table => $champ) {
convert_table_utf8($f, $table, $champ);
}
if ($f) fclose($f);
echo "<p><b>"._T('utf8_convert_termine')."</b></p>";
echo "<p>,"._T('utf8_convert_verifier', array('rep' => joli_repertoire(_DIR_TMP))), '</p>';
// bouton "retour au site" + redirige_par_entete
echo "<p style='text-align: right'>",
"<a href='", generer_url_ecrire("config_lang"), "'> >> ",
_T('icone_retour'),"</a></p>",
install_fin_html();
}
function install_etape_4_dist()
{
// creer le repertoire cache, qui sert partout !
if(!@file_exists(_DIR_CACHE)) {
$rep = preg_replace(','._DIR_TMP.',', '', _DIR_CACHE);
$rep = sous_repertoire(_DIR_TMP, $rep, true,true);
}
echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
echo info_progression_etape(4,'etape_','install/');
echo "<p>"
._L('Les extensions ci-dessous sont chargées et activées dans le répertoire @extensions@.', array('extensions' => joli_repertoire(_DIR_EXTENSIONS)))
."</p>";
// installer les extensions
include_spip('inc/plugin');
$afficher = charger_fonction("afficher_liste",'plugins');
echo $afficher(self(), liste_plugin_files(_DIR_EXTENSIONS),array(), _DIR_EXTENSIONS,'afficher_nom_plugin');
installe_plugins();
echo info_etape(_T('info_derniere_etape'),
_T('info_utilisation_spip')
);
// mettre a jour si necessaire l'adresse du site
// securite si on arrive plus a se loger
include_spip('inc/config');
$_POST['adresse_site'] = '';
appliquer_modifs_config();
// aller a la derniere etape qui clos l'install et redirige
$suite = "\n<input type='hidden' name='etape' value='fin' />"
. bouton_suivant(_T('login_espace_prive'));
echo generer_form_ecrire('install', $suite); echo install_fin_html();
}
开发者ID:rhertzog,项目名称:lcs,代码行数:40,代码来源:etape_4.php
示例15: inc_sauvegarder_dist
function inc_sauvegarder_dist($status_file, $redirect = '')
{
$status_file = _DIR_TMP . basename($status_file) . ".txt";
if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
} else {
$timeout = ini_get('max_execution_time');
// valeur conservatrice si on a pas reussi a lire le max_execution_time
if (!$timeout) {
$timeout = 30;
}
// parions sur une valeur tellement courante ...
$max_time = time() + $timeout / 2;
include_spip('inc/minipres');
@ini_set("zlib.output_compression", "0");
// pour permettre l'affichage au fur et a mesure
$titre = _T('dump:sauvegarde_en_cours') . " (" . count($status['tables']) . ") ";
$balise_img = chercher_filtre('balise_img');
$titre .= $balise_img(chemin_image('searching.gif'));
echo install_debut_html($titre);
// script de rechargement auto sur timeout
echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
echo "<div style='text-align: left'>\n";
dump_serveur($status['connect']);
spip_connect('dump');
// au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
$res = false;
if (_request('step')) {
$options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array());
$res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options);
}
echo "</div>\n";
if (!$res and $redirect) {
echo dump_relance($redirect);
}
echo install_fin_html();
ob_end_flush();
flush();
return $res;
}
}
function export_trace($val_meta, $dir, $meta)
{
list($gz, $archive, $rub, $tables_for_dump, $etape_actuelle, $sous_etape, $serveur, $save) = $val_meta;
include_spip('inc/minipres');
// pour permettre l'affichage au fur et a mesure
@ini_set("zlib.output_compression","0");
if (!($timeout = ini_get('max_execution_time')*1000));
$timeout = 30000; // parions sur une valeur tellement courante ...
// le premier hit est moitie moins long car seulement une phase d'ecriture de morceaux
// sans ramassage
// sinon grosse ecriture au 1er hit, puis gros rammassage au deuxieme avec petite ecriture,... ca oscille
if (!$etape_actuelle AND !$sous_etape) {
$timeout = round($timeout/2);
$tables_sauvegardees = array();
} else {
$metatable = $meta . '_tables';
$tables_sauvegardees = isset($GLOBALS['meta'][$metatable])?unserialize($GLOBALS['meta'][$metatable]):array();
}
// Les sauvegardes partielles prennent le temps d'indiquer les logos
// Instancier une fois pour toutes, car on va boucler un max.
// On complete jusqu'au secteur pour resituer dans l'arborescence)
if ($rub) {
$GLOBALS['chercher_logo'] = charger_fonction('chercher_logo', 'inc',true);
$les_rubriques = complete_fils(array($rub), $serveur);
$les_meres = complete_secteurs(array($rub), $serveur);
} else {
$GLOBALS['chercher_logo'] = false;
$les_rubriques = $les_meres = '';
}
// script de rechargement auto sur timeout
$redirect = generer_url_ecrire("export_all");
$all = count($tables_for_dump);
echo ( install_debut_html(_T('info_sauvegarde') . " ($all)"));
echo http_script("window.setTimeout('location.href=\"".$redirect."\";',$timeout)");
echo "<div style='text-align: left'>\n";
$etape = 1;
foreach($tables_for_dump as $table){
if ($etape_actuelle > $etape) {
// sauter les deja faits, mais rappeler qu'ils sont fait
echo ( "\n<br /><strong>".$etape. '. '."</strong>". $tables_sauvegardees[$table]);
}
else {
echo ( "\n<br /><strong>".$etape. '. '. $table."</strong> ");
$r = sql_countsel($table, array(), array(), array(), $serveur);
flush();
if (!$r) $r = ( _T('texte_vide'));
else {
$f = $dir . $archive . '.part_' . sprintf('%03d',$etape);
$r = export_objets($table, $sous_etape, $r, $f, $les_rubriques, $les_meres, $meta);
$r += $sous_etape*_EXPORT_TRANCHES_LIMITE;
// info pas fiable si interruption+partiel
if ($rub AND $etape_actuelle > 1) $r = ">= $r";
}
echo " $r";
flush();
$sous_etape = 0;
// on utilise l'index comme ca c'est pas grave si on ecrit plusieurs fois la meme
$tables_sauvegardees[$table] = "$table ($r)";
ecrire_meta($meta . '_tables', serialize($tables_sauvegardees),'non');
}
$etape++;
$v = serialize(array($gz, $archive, $rub, $tables_for_dump, $etape,$sous_etape, $serveur, $save));
ecrire_meta($meta, $v,'non');
}
echo ( "</div>\n");
// si Javascript est dispo, anticiper le Time-out
echo ("<script language=\"JavaScript\" type=\"text/javascript\">window.setTimeout('location.href=\"$redirect\";',0);</script>\n");
echo (install_fin_html());
flush();
}
开发者ID:rhertzog,项目名称:lcs,代码行数:74,代码来源:export.php
示例17: maj_debut_page
/**
* Initialiser la page pour l'affichage des progres de l'upgrade
* uniquement si la page n'a pas deja ete initilalisee
*
* @param string $installee
* @param string $meta
* @param string $table
* @return
*/
function maj_debut_page($installee, $meta, $table)
{
static $done = false;
if ($done) {
return;
}
include_spip('inc/minipres');
@ini_set("zlib.output_compression", "0");
// pour permettre l'affichage au fur et a mesure
$timeout = _UPGRADE_TIME_OUT * 2;
$titre = _T('titre_page_upgrade');
$balise_img = charger_filtre('balise_img');
$titre .= $balise_img(chemin_image('searching.gif'));
echo install_debut_html($titre);
// script de rechargement auto sur timeout
$redirect = generer_url_ecrire('upgrade', "reinstall={$installee}&meta={$meta}&table={$table}", true);
echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
echo "<div style='text-align: left'>\n";
ob_flush();
flush();
$done = true;
}
请发表评论