/** * fermer la connection depuis le site distant * quand on a fini * * @param array $status * @param array $data * @return bool */ function migration_reception_end_dist($status, $data){ spip_log('fin de migration. Resultat:'.var_export($data,1),'migration'); $status['status'] = 'end'; if ($data['status']=='abort'){ $status = abandonner_migration_depuis($status); } else { // s'assurer que l'auteur qui migre est bien webmestre a l'arrivee $id_webmestre = $data['id_webmestre']; include_spip('base/abstract_sql'); $row = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_webmestre)); if ($row AND $row['statut']=='0minirezo'){ // y a-t-il un champ webmestre dans la base ? if (!isset($row['webmestre'])){ sql_alter("TABLE spip_auteurs ADD webmestre varchar(3) DEFAULT 'non' NOT NULL"); $row['webmestre']='non'; } if ($row['webmestre']!='oui'){ sql_updateq("spip_auteurs",array('webmestre'=>'oui'),'id_auteur='.intval($id_webmestre)); } } } if ((count($status['ignore']) OR count($data['errors'])) AND defined('_MIGRATION_EMAIL_NOTIFY_IGNORE') AND $email = _MIGRATION_EMAIL_NOTIFY_IGNORE){ $sujet = "[Migration-ERR] ".$GLOBALS['meta']['adresse_site']; $texte = ""; if (count($status['ignore'])) $texte .= var_export($status['ignore'],true); if (count($data['errors'])) $texte .= implode("\n",$data['errors']); job_queue_add('envoyer_mail','Erreur migration',array($email, $sujet, $texte),'inc/'); } update_migration_depuis($status); finir_migration_status_depuis(); // si on a pas d'upgrade a suivre, vidons les cache $version_installee = sql_getfetsel('valeur','spip_meta',"nom='version_installee'"); if ($GLOBALS['spip_version']==$version_installee) { // supprimer les cache pour forcer la mise a jour du site include_spip('inc/invalideur'); spip_log("purger le site","migration"); supprime_invalideurs(); @spip_unlink(_CACHE_RUBRIQUES); @spip_unlink(_CACHE_PIPELINES); @spip_unlink(_CACHE_PLUGINS_PATH); @spip_unlink(_CACHE_PLUGINS_OPT); @spip_unlink(_CACHE_PLUGINS_FCT); @spip_unlink(_CACHE_PLUGINS_VERIF); @spip_unlink(_CACHE_CHEMIN); #purger_repertoire(_DIR_CACHE,array('subdir'=>true)); #purger_repertoire(_DIR_AIDE); purger_repertoire(_DIR_VAR.'cache-css'); purger_repertoire(_DIR_VAR.'cache-js'); } @spip_unlink(_FILE_META); // on renvoit le bilan pour affichage sur le site source return $status; }
function formulaires_assistant_migration_verifier_3_dist(){ $erreurs = array(); if (_request('direction')=='depuis'){ // en cas d'abandon sur une migration "depuis", annuler if (_request('canceldepuis')){ include_spip('inc/migration'); $status = abandonner_migration_depuis(); finir_migration_status_depuis(); include_spip('inc/headers'); $erreurs['message_erreur'] = _T('migration:titre_abandon_migration') . redirige_formulaire(generer_url_ecrire('migrer_depuis_fin')); } else { $s = lire_migration_depuis_status(); if ($s AND $s['status']!=='ended') $erreurs['waiting'] = ' '; } } else { foreach(array('url_cible') as $obli) if (!_request($obli)) $erreurs[$obli] = _T('info_obligatoire'); if (strpos(_request('url_cible'),'+')===false) $erreurs['url_cible'] = _T('migration:erreur_url_incorrecte'); if (!count($erreurs)){ $url_cible = _request('url_cible'); $url_cible = explode('+',$url_cible); $migration_key = array_pop($url_cible); $url_cible = implode('+',$url_cible); initialiser_migration_vers($url_cible,$migration_key,_request('quoi')); $connect = charger_fonction('connect','migration/envoi'); $res = $connect($GLOBALS['meta']['adresse_site']); if ($res!==true){ $erreurs['message_erreur'] = _T(is_string($res)?$res:'migration:erreur_echec_connexion_init'); } } } return $erreurs; }