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

Last change on this file since 93651 was 93651, checked in by marcimat@…, 5 years ago

Meilleure compatibilité avec PSR-2 et nos règles d'écriture, en appliquant
différents fix avec php-cs-fixers. Fixers appliqués ici :

'encoding', utf8
'eof_ending',
un saut de ligne en fin de fichier
'elseif', elseif plutôt que else if
'function_call_space',
espaces sur fonctions
'function_declaration', espaces sur fonctions
'function_typehint_space',
espaces sur fonctions
'linefeed', sauts de ligne \n uniquement
'lowercase_constants',
true, false, null en munuscule
'lowercase_keywords', mots clés PHP en lowercase
'method_argument_space',
espaces sur appels de fonctions
'multiple_use', use unique sur fonctions anonymes
'newline_after_open_tag',
ouverture de php… et c'est tout sur cette ligne
'operators_spaces', espaces de part et d'autres des opérateurs binaires
'parenthesis',
pas d'espace juste après parenthèse ouvrante, ou avant parenthèse fermante
'php_closing_tag', pas de fermeture de php
'short_tag',
tag PHP corrects
'trailing_spaces', pas d'espace qui traîne en fin de ligne
'visibility',
déclarer 'public / private / protected' sur les méthodes

File size: 3.6 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")) {
14        return;
15}
16
17include_spip('base/abstract_sql');
18
19function trouver_version_inf($objet, $id_objet, $cond = "") {
20        return sql_getfetsel(
21                'id_version',
22                'spip_versions',
23                ($cond ? "$cond AND " : "") . "objet=" . sql_quote($objet) . " AND id_objet=" . intval($id_objet),
24                '',
25                'id_version DESC',
26                '0,1'
27        );
28}
29
30function check_version_diff($objet, $id_objet, $id_version, $id_diff, $last_version = 0) {
31        if (!$last_version) {
32                $last_version = trouver_version_inf($objet, $id_objet);
33        }
34
35        // si pas de diff possible, on renvoi 0,0
36        if (!$last_version) {
37                return array(0, 0);
38        }
39
40        if ($last_version == 1) {
41                return array(1, 0);
42        }
43
44        $id_version = max($id_version, 2);
45        $id_version = min($id_version, $last_version);
46
47        // verifier id_version
48        $id_version = trouver_version_inf($objet, $id_objet, "id_version<=" . intval($id_version));
49
50        // si rien trouve on prend la derniere
51        if (!$id_version) {
52                $id_version = $last_version;
53        }
54
55        // minorer id_diff en fonction de id_version
56        $id_diff = min($id_diff, $id_version - 1);
57        // verifier id_diff
58        $id_diff = trouver_version_inf($objet, $id_objet, "id_version<=" . intval($id_diff));
59
60        if (!$id_diff) {
61                $id_diff = trouver_version_inf($objet, $id_objet, "id_version<" . intval($id_version));
62        }
63
64        // echec, on renvoi ce qu'on peut
65        if (!$id_diff) {
66                $id_diff = $id_version - 1;
67        }
68
69        return array($id_version, $id_diff);
70}
71
72function formulaires_reviser_charger_dist($objet, $id_objet, $id_version, $id_diff) {
73        if (!$objets = unserialize($GLOBALS['meta']['objets_versions'])) {
74                $objets = array();
75        }
76
77        if (!in_array(table_objet_sql($objet), $objets)) {
78                return false;
79        }
80
81        $last_version = trouver_version_inf($objet, $id_objet);
82        list($id_version, $id_diff) = check_version_diff($objet, $id_objet, $id_version, $id_diff, $last_version);
83        if (!$id_version) {
84                return false;
85        }
86
87        $valeurs = array(
88                '_last_version' => $last_version,
89                '_objet' => $objet,
90                '_id_objet' => $id_objet,
91                'id_version' => $id_version,
92                'id_diff' => $id_diff,
93        );
94
95        return $valeurs;
96}
97
98function formulaires_reviser_verifier_dist($objet, $id_objet, $id_version, $id_diff) {
99        $erreurs = array();
100        list($id_version, $id_diff) = check_version_diff($objet, $id_objet, _request('id_version'), _request('id_diff'));
101        set_request('id_version', $id_version);
102        set_request('id_diff', $id_diff);
103
104        return $erreurs;
105}
106
107function formulaires_reviser_traiter_dist($objet, $id_objet, $id_version, $id_diff) {
108        $res = array('message_ok' => '', 'editable' => true);
109
110        $id_version = _request('id_version');
111        $id_diff = _request('id_diff');
112
113        if (_AJAX) {
114                $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>";
115        } else {
116                $res['redirect'] = parametre_url(parametre_url(self(), 'id_version', $id_version), 'id_diff', $id_diff, '&');
117        }
118
119        return $res;
120}
Note: See TracBrowser for help on using the repository browser.