/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2016 *
+ * Copyright (c) 2001-2019 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
$flux['data']['message_ok'] .= "<br />" . _T('revisions:message_valider_recuperer_version');
// recuperer la version
include_spip('inc/revisions');
- #$champs = recuperer_version_complete($id, $objet, $id_version);
- $champs = recuperer_version($id, $objet, $id_version);
+ $champs = recuperer_version_complete($id, $objet, $id_version);
foreach ($champs as $champ => $valeur) {
if (!strncmp($champ, 'jointure_', 9) == 0) {
if ($champ == 'id_rubrique') {
return $flux;
}
+/**
+ * Sur une insertion en base, lever un flag pour ne pas creer une premiere révision vide
+ *
+ * @param array $x Données du pipeline
+ * @return array $x Données du pipeline
+ */
+function revisions_pre_insertion($x) {
+ $table = $x['args']['table'];
+ include_spip('inc/revisions');
+ if ($champs = liste_champs_versionnes($table)) {
+ // on ne connait pas encore l'ID, mais on leve un flag pour ne pas creer de premiere revision pour ce type d'objet
+ // sur une simple jointure (auteur)
+ $GLOBALS['premiere_revision']["$table:0"] = true;
+ }
+
+ return $x;
+}
+
/**
* Sur une insertion en base, lever un flag pour ne pas creer une premiere révision vide
$table = $x['args']['table'];
include_spip('inc/revisions');
if ($champs = liste_champs_versionnes($table)) {
+ if (isset($GLOBALS['premiere_revision']["$table:0"])) {
+ unset($GLOBALS['premiere_revision']["$table:0"]);
+ }
$GLOBALS['premiere_revision']["$table:" . $x['args']['id_objet']] = true;
}
$table = table_objet_sql($x['args']['objet']);
$id_objet = intval($x['args']['id_objet']);
include_spip('inc/revisions');
+ // si c'est une creation de lien qui arrive aussitot apres l'insertion on ne cree pas de revision
+ if (isset($GLOBALS['premiere_revision']["$table:0"])) {
+ unset($GLOBALS['premiere_revision']["$table:0"]);
+ $GLOBALS['premiere_revision']["$table:" . $id_objet] = true;
+ }
if (isset($GLOBALS['premiere_revision']["$table:" . $id_objet])) {
$GLOBALS['premiere_revision']["$table:" . $id_objet] = 0;
} // ex : si le champ jointure_mots est versionnable sur les articles
$table = table_objet_sql($x['args']['objet_source']);
$id_objet = $x['args']['id_objet_source'];
+ // si c'est une creation de lien qui arrive aussitot apres l'insertion on ne cree pas de revision
+ if (isset($GLOBALS['premiere_revision']["$table:0"])) {
+ unset($GLOBALS['premiere_revision']["$table:0"]);
+ $GLOBALS['premiere_revision']["$table:" . $id_objet] = true;
+ }
if (isset($GLOBALS['premiere_revision']["$table:" . $id_objet])) {
$GLOBALS['premiere_revision']["$table:" . $id_objet] = 0;
} // ex : si le champ jointure_articles est versionnable sur les mots
$table = table_objet_sql($x['args']['objet']);
$id_objet = $x['args']['id_objet'];
include_spip('inc/revisions');
+ // si c'est une creation de lien qui arrive aussitot apres l'insertion on ne cree pas de revision
+ // (au cas ou pre_edition_lien n'aurait pas ete appele ?)
+ if (isset($GLOBALS['premiere_revision']["$table:0"])) {
+ unset($GLOBALS['premiere_revision']["$table:0"]);
+ $GLOBALS['premiere_revision']["$table:" . $id_objet] = true;
+ }
if (isset($GLOBALS['premiere_revision']["$table:" . $id_objet])) {
$GLOBALS['premiere_revision']["$table:" . $id_objet] = 0;
} // ex : si le champ jointure_mots est versionnable sur les articles
$table = table_objet_sql($x['args']['objet_source']);
$id_objet = $x['args']['id_objet_source'];
+ // si c'est une creation de lien qui arrive aussitot apres l'insertion on ne cree pas de revision
+ // (au cas ou pre_edition_lien n'aurait pas ete appele ?)
+ if (isset($GLOBALS['premiere_revision']["$table:0"])) {
+ unset($GLOBALS['premiere_revision']["$table:0"]);
+ $GLOBALS['premiere_revision']["$table:" . $id_objet] = true;
+ }
if (isset($GLOBALS['premiere_revision']["$table:" . $id_objet])) {
$GLOBALS['premiere_revision']["$table:" . $id_objet] = 0;
} // ex : si le champ jointure_articles est versionnable sur les mots