/**
 * Modifier un evenement existant
 *
 * @param int $id_evenement
 * @param array $set
 * @return bool|string
 */
function evenement_modifier($id_evenement, $set = null)
{
    include_spip('inc/modifier');
    include_spip('inc/filtres');
    $c = collecter_requests(objet_info('evenement', 'champs_editables'), array('statut', 'id_article'), $set);
    // Si l'evenement est publie, invalider les caches et demander sa reindexation
    $t = sql_getfetsel('statut', 'spip_evenements', 'id_evenement=' . intval($id_evenement));
    $invalideur = $indexation = false;
    if ($t == 'publie') {
        $invalideur = "id='evenement/{$id_evenement}'";
        $indexation = true;
    }
    if ($err = objet_modifier_champs('evenement', $id_evenement, array('data' => $set, 'nonvide' => array('titre' => _T('info_nouvel_evenement') . ' ' . _T('info_numero_abbreviation') . $id_evenement), 'invalideur' => $invalideur, 'indexation' => $indexation), $c)) {
        return $err;
    }
    if (!is_null($repetitions = _request('repetitions', $set))) {
        agenda_action_revision_evenement_repetitions($id_evenement, $repetitions);
    }
    // Modification de statut, changement de parent ?
    $c = collecter_requests(array('statut', 'id_parent'), array(), $set);
    $err = evenement_instituer($id_evenement, $c);
    return $err;
}
Example #2
0
function action_evenement_set($id_evenement, $set=null){
	$err = '';

	if (is_null($set)){
		$c = array();
		foreach (array(
			'titre', 'descriptif', 'lieu', 'id_parent',
			'inscription','places','adresse',
		) as $champ)
			$c[$champ] = _request($champ);

		$c['horaire'] = _request('horaire')=='non'?'non':'oui';
		include_spip('inc/date_gestion');
		$date_debut = verifier_corriger_date_saisie('debut',$c['horaire']=='oui',$erreurs);
		$date_fin = verifier_corriger_date_saisie('fin',$c['horaire']=='oui',$erreurs);

		$c['date_debut'] = date('Y-m-d H:i:s',$date_debut);
		$c['date_fin'] = date('Y-m-d H:i:s',$date_fin);
	}
	else
		$c = $set;

	include_spip('inc/modifier');
	agenda_action_revision_evenement($id_evenement, $c);
	agenda_action_revision_evenement_mots($id_evenement, _request('mots',$set));
	agenda_action_revision_evenement_repetitions($id_evenement,_request('repetitions',$set), _request('mots',$set));

	// Modification de statut, changement de rubrique ?
	$c = array();
	foreach (array(
		'id_parent'
	) as $champ)
		$c[$champ] = _request($champ,$set);
	$err .= agenda_action_instituer_evenement($id_evenement, $c);

	return $err;
}