/** * Action de purge du cache * * L'argument peut être : * * - inhibe_cache : inhibe le cache pendant 24h * - reactive_cache : enlève l'inhibition du cache * - cache : nettoie tous les caches (sauf celui des vignettes) * - squelettes : nettoie le cache de compilation des squelettes * - vignettes : nettoie le cache des vignettes (et compressions css/js) * * @pipeline_appel trig_purger * @uses supprime_invalideurs() * @uses purger_repertoire() * * @param string|null $arg * Argument attendu. En absence utilise l'argument * de l'action sécurisée. */ function action_purger_dist($arg = null) { if (is_null($arg)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } include_spip('inc/invalideur'); spip_log("purger {$arg}"); switch ($arg) { case 'inhibe_cache': // inhiber le cache pendant 24h ecrire_meta('cache_inhib', $_SERVER['REQUEST_TIME'] + 24 * 3600); break; case 'reactive_cache': effacer_meta('cache_inhib'); break; case 'cache': supprime_invalideurs(); @spip_unlink(_CACHE_RUBRIQUES); @spip_unlink(_CACHE_CHEMIN); @spip_unlink(_DIR_TMP . "plugin_xml_cache.gz"); // on ne supprime que _CACHE_PLUGINS_OPT qui declenche la reconstruction des 3 // _CACHE_PIPELINES _CACHE_PLUGINS_PATH et _CACHE_PLUGINS_FCT // pour eviter des problemes de concurence // cf http://core.spip.org/issues/2989 //@spip_unlink(_CACHE_PIPELINES); //@spip_unlink(_CACHE_PLUGINS_PATH); //@spip_unlink(_CACHE_PLUGINS_FCT); @spip_unlink(_CACHE_PLUGINS_OPT); purger_repertoire(_DIR_CACHE, array('subdir' => true)); purger_repertoire(_DIR_AIDE); purger_repertoire(_DIR_VAR . 'cache-css'); purger_repertoire(_DIR_VAR . 'cache-js'); break; case 'squelettes': purger_repertoire(_DIR_SKELS); break; case 'vignettes': purger_repertoire(_DIR_VAR, array('subdir' => true)); supprime_invalideurs(); purger_repertoire(_DIR_CACHE, array('subdir' => true)); break; } // le faire savoir aux plugins pipeline('trig_purger', $arg); }
function action_purger_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); include_spip('inc/invalideur'); spip_log("purger $arg"); switch ($arg) { case 'cache': 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'); break; case 'squelettes': purger_repertoire(_DIR_SKELS); break; case 'vignettes': purger_repertoire(_DIR_VAR,array('subdir'=>true)); supprime_invalideurs(); purger_repertoire(_DIR_CACHE); break; } }
/** * 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; }