예제 #1
0
파일: purger.php 프로젝트: JLuc/SPIP
/**
 * 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);
}
예제 #2
0
파일: purger.php 프로젝트: rhertzog/lcs
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;
	}

}
예제 #3
0
파일: end.php 프로젝트: nursit/Migration
/**
 * 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;
}