Example #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();
		}
	}
}
Example #2
0
/**
 * Calcule la date du prochain article post-daté 
 *
 * Appelée lorsqu'un (ou plusieurs) article post-daté arrive à terme
 * ou est redaté
 * 
 * @param bool $check
 *     true pour affecter le statut des rubriques concernées.
 * @return void
**/
function calculer_prochain_postdate($check = false)
{
    include_spip('base/abstract_sql');
    if ($check) {
        $postdates = $GLOBALS['meta']["post_dates"] == "non" ? "AND A.date <= " . sql_quote(date('Y-m-d H:i:s')) : '';
        $r = sql_select("DISTINCT A.id_rubrique AS id", "spip_articles AS A LEFT JOIN spip_rubriques AS R ON A.id_rubrique=R.id_rubrique", "R.statut != 'publie' AND A.statut='publie'{$postdates}");
        while ($row = sql_fetch($r)) {
            publier_branche_rubrique($row['id']);
        }
        pipeline('trig_calculer_prochain_postdate', '');
    }
    $t = sql_fetsel("date", "spip_articles", "statut='publie' AND date > " . sql_quote(date('Y-m-d H:i:s')), "", "date", "1");
    if ($t) {
        $t = $t['date'];
        if (!isset($GLOBALS['meta']['date_prochain_postdate']) or $t != $GLOBALS['meta']['date_prochain_postdate']) {
            ecrire_meta('date_prochain_postdate', strtotime($t));
            ecrire_meta('derniere_modif', time());
        }
    } else {
        effacer_meta('date_prochain_postdate');
        ecrire_meta('derniere_modif', time());
    }
    spip_log("prochain postdate: {$t}");
}