/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2014 *
+ * Copyright (c) 2001-2016 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* @param int $id_objet
* Identifiant de l'objet
* @param array $options
- * Toutes les options
+ * array data : tableau des donnees sources utilisees pour la detection de conflit ($_POST sinon fourni ou si nul)
+ * array nonvide : valeur par defaut des champs que l'on ne veut pas vide
+ * string date_modif : champ a mettre a date('Y-m-d H:i:s') s'il y a modif
+ * string invalideur : id de l'invalideur eventuel
+ * array champs : non documente (utilise seulement par inc/rechercher ?)
+ * string action : action realisee, passee aux pipelines pre/post edition (par defaut 'modifier')
+ * bool indexation : deprecie
* @param array|null $c
* Couples champ/valeur à modifier
* @param string $serveur
'id_objet' => $id_objet,
'champs' => isset($options['champs']) ? $options['champs'] : array(), // [doc] c'est quoi ?
'serveur' => $serveur,
- 'action' => 'modifier'
+ 'action' => isset($options['action']) ? $options['action'] : 'modifier'
),
'data' => $champs
)
// Verifier si les mises a jour sont pertinentes, datees, en conflit etc
include_spip('inc/editer');
- $conflits = controler_md5($champs, $_POST, $objet, $id_objet, $serveur);
+ if (!isset($options['data']) OR is_null($options['data'])){
+ $options['data'] = &$_POST;
+ }
+ $conflits = controler_md5($champs, $options['data'], $objet, $id_objet, $serveur);
// cas hypothetique : normalement inc/editer verifie en amont le conflit edition
// et gere l'interface
// ici on ne renvoie donc qu'un messsage d'erreur, au cas ou on y arrive quand meme
$parent = ($objet=='rubrique')?'id_parent':'id_rubrique';
$id_rubrique = sql_getfetsel($parent, $spip_table_objet, "$id_table_objet=".intval($id_objet));
}
- $instituer_langue_objet = charger_fonction('instituer_langue_objet','action');
- $champs['lang'] = $instituer_langue_objet($objet,$id_objet, $id_rubrique, $changer_lang);
+ $instituer_langue_objet = charger_fonction('instituer_langue_objet', 'action');
+ $champs['lang'] = $instituer_langue_objet($objet, $id_objet, $id_rubrique, $changer_lang, $serveur);
}
// on laisse 'lang' dans $champs,
// ca permet de passer dans le pipeline post_edition et de journaliser
'id_objet' => $id_objet,
'champs' => isset($options['champs']) ? $options['champs'] : array(), // [doc] kesako ?
'serveur' => $serveur,
- 'action' => 'modifier'
+ 'action' => isset($options['action']) ? $options['action'] : 'modifier'
),
'data' => $champs
)