source: spip-zone/_core_/plugins/revisions/formulaires/reviser.php @ 93092

Last change on this file since 93092 was 93092, checked in by gilles.vincent@…, 4 years ago

Mise en forme plus homegene et plus lisible, pour les declarations des fonctions
Regles :

  • un espace après chaque virgule
  • un espace avant et apres chaque '='
File size: 3.5 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2015                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15include_spip('base/abstract_sql');
16
17function trouver_version_inf($objet, $id_objet, $cond = ""){
18        return sql_getfetsel(
19                                'id_version',
20                                'spip_versions',
21                                ($cond?"$cond AND ":"")."objet=".sql_quote($objet)." AND id_objet=".intval($id_objet),
22                                '',
23                                'id_version DESC',
24                                '0,1'
25                          );
26}
27function check_version_diff($objet, $id_objet, $id_version, $id_diff, $last_version = 0){
28        if (!$last_version)
29                $last_version = trouver_version_inf($objet,$id_objet);
30
31        // si pas de diff possible, on renvoi 0,0
32        if (!$last_version)
33                return array(0,0);
34
35        if ($last_version==1)
36                return array(1,0);
37
38        $id_version = max($id_version,2);
39        $id_version = min($id_version,$last_version);
40
41        // verifier id_version
42        $id_version = trouver_version_inf($objet,$id_objet,"id_version<=".intval($id_version));
43
44        // si rien trouve on prend la derniere
45        if (!$id_version)
46                $id_version = $last_version;
47
48        // minorer id_diff en fonction de id_version
49        $id_diff = min($id_diff,$id_version-1);
50        // verifier id_diff
51        $id_diff = trouver_version_inf($objet,$id_objet,"id_version<=".intval($id_diff));
52
53        if (!$id_diff)
54                $id_diff = trouver_version_inf($objet,$id_objet,"id_version<".intval($id_version));
55
56        // echec, on renvoi ce qu'on peut
57        if (!$id_diff)
58                $id_diff = $id_version-1;
59
60        return array($id_version, $id_diff);
61}
62
63function formulaires_reviser_charger_dist($objet, $id_objet, $id_version, $id_diff){
64        if (!$objets = unserialize($GLOBALS['meta']['objets_versions']))
65                $objets = array();
66
67        if (!in_array(table_objet_sql($objet),$objets))
68                return false;
69
70        $last_version = trouver_version_inf($objet,$id_objet);
71        list($id_version,$id_diff) = check_version_diff($objet,$id_objet,$id_version,$id_diff,$last_version);
72        if (!$id_version)
73                return false;
74       
75        $valeurs = array(
76                '_last_version'=>$last_version,
77                '_objet'=>$objet,
78                '_id_objet'=>$id_objet,
79                'id_version'=>$id_version,
80                'id_diff'=>$id_diff,
81        );
82
83        return $valeurs;
84}
85
86function formulaires_reviser_verifier_dist($objet, $id_objet, $id_version, $id_diff){
87        $erreurs = array();
88        list($id_version,$id_diff) = check_version_diff($objet,$id_objet,_request('id_version'),_request('id_diff'));
89        set_request('id_version',$id_version);
90        set_request('id_diff',$id_diff);
91        return $erreurs;
92}
93
94function formulaires_reviser_traiter_dist($objet, $id_objet, $id_version, $id_diff){
95        $res = array('message_ok'=>'','editable'=>true);
96
97        $id_version = _request('id_version');
98        $id_diff = _request('id_diff');
99
100        if (_AJAX)
101                $res['message_ok'].="<script type='text/javascript'>if (window.jQuery) jQuery('#wysiwyg.revision').ajaxReload({args:{id_version:$id_version,id_diff:$id_diff},history:true});</script>";
102        else
103                $res['redirect'] = parametre_url(parametre_url(self(),'id_version',$id_version),'id_diff',$id_diff,'&');
104        return $res;
105}
Note: See TracBrowser for help on using the repository browser.