Пример #1
0
function action_dater_post($r)
{
	include_spip('inc/date');
	$type = $r[2];
	$id = $r[1];
	if (!isset($_REQUEST['avec_redac'])) {
		$date = dater_table($id, $type);
	} else {
		if (_request('avec_redac') == 'non')
			$annee_redac = $mois_redac = $jour_redac = $heure_redac = $minute_redac = 0;
		else  {
				$annee_redac = _request('annee_redac');
				$mois_redac = _request('mois_redac');
				$jour_redac = _request('jour_redac');
				$heure_redac = _request('heure_redac');
				$minute_redac = _request('minute_redac');

				if ($annee_redac<>'' AND $annee_redac < 1001) 
					$annee_redac += 9000;
		}

		$date = format_mysql_date($annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac);
		include_spip('inc/modifier');
		revision_article($r[1],array("date_redac" => $date));
	}

	// a priori fait doublon avec instituer_xx utilise dans dater_table()
	// mais on laisse pour ne pas introduire de bug dans cette branche
	if (($type == 'article')
	AND $GLOBALS['meta']["post_dates"] == "non") {
		$t = sql_fetsel("statut, id_rubrique", "spip_articles", "id_article=$id");
		if ($t['statut'] == 'publie') {
			include_spip('inc/rubriques');
			if  (strtotime($date) >  time())
			  depublier_branche_rubrique_if($t['id_rubrique']);
			else
			  publier_branche_rubrique($t['id_rubrique']);
			calculer_prochain_postdate();
		}
	}
}
Пример #2
0
    // cf. public/assembler.php)
    echo pipeline('affichage_final' . _PIPELINE_SUFFIX, $page['texte']);
    if ($lang) {
        lang_select();
    }
    // l'affichage de la page a pu lever des erreurs (inclusion manquante)
    // il faut tester a nouveau
    $debug = (_request('var_mode') == 'debug' or $tableau_des_temps) ? array(1) : array();
    // Appel au debusqueur en cas d'erreurs ou de demande de trace
    // at last
    if ($debug) {
        // en cas d'erreur, retester l'affichage
        if ($html and ($affiche_boutons_admin or $debug)) {
            $var_mode_affiche = _request('var_mode_affiche');
            $GLOBALS['debug_objets'][$var_mode_affiche][$var_mode_objet . 'tout'] = $var_mode_affiche == 'validation' ? $page['texte'] : "";
            echo erreur_squelette(false);
        }
    } else {
        if (isset($GLOBALS['meta']['date_prochain_postdate']) and $GLOBALS['meta']['date_prochain_postdate'] <= time()) {
            include_spip('inc/rubriques');
            calculer_prochain_postdate(true);
        }
        // Effectuer une tache de fond ?
        // si _DIRECT_CRON_FORCE est present, on force l'appel
        if (defined('_DIRECT_CRON_FORCE')) {
            cron();
        }
        // sauver le cache chemin si necessaire
        save_path_cache();
    }
}
Пример #3
0
/**
 * Recalcule des héritages de rubriques
 *
 * Recalcule le statut des rubriques, les langues héritées et la date
 * du prochain article post-daté
 * 
 * Cette fonction est appelée après importation: elle calcule les meta-donnes
 * resultantes et remet de la coherence au cas où la base importée en manquait
 * 
 * Cette fonction doit etre invoquée sans processus concurrent potentiel.
 * 
 * @return void
**/
function calculer_rubriques()
{
    calculer_rubriques_publiees();
    // Apres chaque (de)publication
    // recalculer les langues utilisees sur le site
    $langues = calculer_langues_utilisees();
    ecrire_meta('langues_utilisees', $langues);
    // Sauver la date de la derniere mise a jour (pour menu_rubriques)
    ecrire_meta("date_calcul_rubriques", date("U"));
    // on calcule la date du prochain article post-date
    calculer_prochain_postdate();
}
Пример #4
0
/**
 * Mise à jour 13135 : réparer le calcul des rubriques ayant des articles postdatés
 */
function maj_13135()
{
    include_spip('inc/rubriques');
    calculer_prochain_postdate();
    // supprimer les eventuels vieux cache plugin qui n'utilisaient pas _chemin
    @spip_unlink(_CACHE_PLUGINS_OPT);
    @spip_unlink(_CACHE_PLUGINS_FCT);
}
Пример #5
0
function cache_valide(&$page, $date)
{
    $now = $_SERVER['REQUEST_TIME'];
    // Apparition d'un nouvel article post-date ?
    if (isset($GLOBALS['meta']['post_dates']) and $GLOBALS['meta']['post_dates'] == 'non' and isset($GLOBALS['meta']['date_prochain_postdate']) and $now > $GLOBALS['meta']['date_prochain_postdate']) {
        spip_log('Un article post-date invalide le cache');
        include_spip('inc/rubriques');
        calculer_prochain_postdate(true);
    }
    if (defined('_VAR_NOCACHE') and _VAR_NOCACHE) {
        return -1;
    }
    if (isset($GLOBALS['meta']['cache_inhib']) and $_SERVER['REQUEST_TIME'] < $GLOBALS['meta']['cache_inhib']) {
        return -1;
    }
    if (defined('_NO_CACHE')) {
        return (_NO_CACHE == 0 and !isset($page['texte'])) ? 1 : _NO_CACHE;
    }
    // pas de cache ? on le met a jour, sauf pour les bots (on leur calcule la page sans mise en cache)
    if (!$page or !isset($page['texte']) or !isset($page['entetes']['X-Spip-Cache'])) {
        return _IS_BOT ? -1 : 1;
    }
    // controle de la signature
    if ($page['sig'] !== cache_signature($page)) {
        return _IS_BOT ? -1 : 1;
    }
    // #CACHE{n,statique} => on n'invalide pas avec derniere_modif
    // cf. ecrire/public/balises.php, balise_CACHE_dist()
    if (!isset($page['entetes']['X-Spip-Statique']) or $page['entetes']['X-Spip-Statique'] !== 'oui') {
        // Cache invalide par la meta 'derniere_modif'
        // sauf pour les bots, qui utilisent toujours le cache
        if (!_IS_BOT and $GLOBALS['derniere_modif_invalide'] and isset($GLOBALS['meta']['derniere_modif']) and $date < $GLOBALS['meta']['derniere_modif']) {
            return 1;
        }
    }
    // Sinon comparer l'age du fichier a sa duree de cache
    $duree = intval($page['entetes']['X-Spip-Cache']);
    $cache_mark = isset($GLOBALS['meta']['cache_mark']) ? $GLOBALS['meta']['cache_mark'] : 0;
    if ($duree == 0) {
        return -1;
    } else {
        if (!_IS_BOT and $date + $duree < $now or $date < $cache_mark) {
            return _IS_BOT ? -1 : 1;
        } else {
            return 0;
        }
    }
}
Пример #6
0
function cache_valide(&$page, $date) {

	if (isset($GLOBALS['var_nocache']) AND $GLOBALS['var_nocache']) return -1;
	if (defined('_NO_CACHE')) return (_NO_CACHE==0 AND !isset($page['texte']))?1:_NO_CACHE;
	if (!$page OR !isset($page['texte']) OR !isset($page['entetes']['X-Spip-Cache'])) return 1;

	// #CACHE{n,statique} => on n'invalide pas avec derniere_modif
	// cf. ecrire/public/balises.php, balise_CACHE_dist()
	if (!isset($page['entetes']['X-Spip-Statique']) OR $page['entetes']['X-Spip-Statique'] !== 'oui') {

		// Cache invalide par la meta 'derniere_modif'
		// sauf pour les bots, qui utilisent toujours le cache
		if (!_IS_BOT
		AND $GLOBALS['derniere_modif_invalide']
		AND $date < $GLOBALS['meta']['derniere_modif'])
			return 1;

		// Apparition d'un nouvel article post-date ?
		if ($GLOBALS['meta']['post_dates'] == 'non'
		AND isset($GLOBALS['meta']['date_prochain_postdate'])
		AND time() > $GLOBALS['meta']['date_prochain_postdate']) {
			spip_log('Un article post-date invalide le cache');
			include_spip('inc/rubriques');
			ecrire_meta('derniere_modif', time());
			calculer_prochain_postdate();
			return 1;
		}

	}

	// Sinon comparer l'age du fichier a sa duree de cache
	$duree = intval($page['entetes']['X-Spip-Cache']);
	if ($duree == 0)  #CACHE{0}
		return -1;
	else if ($date + $duree < time())
		return 1;
	else
		return 0;
}
Пример #7
0
function cache_valide(&$page, $date)
{
    if (defined('_VAR_NOCACHE') and _VAR_NOCACHE) {
        return -1;
    }
    if (isset($GLOBALS['meta']['cache_inhib']) and $_SERVER['REQUEST_TIME'] < $GLOBALS['meta']['cache_inhib']) {
        return -1;
    }
    if (defined('_NO_CACHE')) {
        return (_NO_CACHE == 0 and !isset($page['texte'])) ? 1 : _NO_CACHE;
    }
    if (!$page or !isset($page['texte']) or !isset($page['entetes']['X-Spip-Cache'])) {
        return 1;
    }
    // #CACHE{n,statique} => on n'invalide pas avec derniere_modif
    // cf. ecrire/public/balises.php, balise_CACHE_dist()
    if (!isset($page['entetes']['X-Spip-Statique']) or $page['entetes']['X-Spip-Statique'] !== 'oui') {
        // Cache invalide par la meta 'derniere_modif'
        // sauf pour les bots, qui utilisent toujours le cache
        if (!_IS_BOT and $GLOBALS['derniere_modif_invalide'] and $date < $GLOBALS['meta']['derniere_modif']) {
            return 1;
        }
        // Apparition d'un nouvel article post-date ?
        if ($GLOBALS['meta']['post_dates'] == 'non' and isset($GLOBALS['meta']['date_prochain_postdate']) and time() > $GLOBALS['meta']['date_prochain_postdate']) {
            spip_log('Un article post-date invalide le cache');
            include_spip('inc/rubriques');
            ecrire_meta('derniere_modif', time());
            calculer_prochain_postdate();
            return 1;
        }
    }
    // Sinon comparer l'age du fichier a sa duree de cache
    $duree = intval($page['entetes']['X-Spip-Cache']);
    if ($duree == 0) {
        #CACHE{0}
        return -1;
    } else {
        if ($date + $duree < time()) {
            return 1;
        } else {
            return 0;
        }
    }
}