X-Git-Url: http://git.cyclocoop.org/?p=lhc%2Fweb%2Fclavette_www.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fmodifier.php;h=872a4779af81c4b9ac4ec2a7c2a9378322451ad8;hp=cca62aeab1a591b58d428ed07dc3601135a1b9af;hb=cc641eb476987612f6d6df1a5417c1c5582a8ab8;hpb=7d84a490677fb716a1fd4df260f8eab35f6a8506 diff --git a/www/ecrire/inc/modifier.php b/www/ecrire/inc/modifier.php index cca62ae..872a477 100644 --- a/www/ecrire/inc/modifier.php +++ b/www/ecrire/inc/modifier.php @@ -3,7 +3,7 @@ /***************************************************************************\ * 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. * @@ -78,7 +78,13 @@ function collecter_requests($white_list, $black_list, $set=null, $tous=false){ * @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 @@ -150,7 +156,7 @@ function objet_modifier_champs($objet, $id_objet, $options, $c=null, $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 ) @@ -167,7 +173,10 @@ function objet_modifier_champs($objet, $id_objet, $options, $c=null, $serveur='' // 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 @@ -183,8 +192,8 @@ function objet_modifier_champs($objet, $id_objet, $options, $c=null, $serveur='' $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 @@ -245,7 +254,7 @@ function objet_modifier_champs($objet, $id_objet, $options, $c=null, $serveur='' '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 )