source: spip-zone/_plugins_/selection_articles/trunk/action/selection_interface.php @ 107378

Last change on this file since 107378 was 107378, checked in by erational@…, 2 years ago

Nettoyage pour respecter les conventions d'installation / désinstallation de SPIP 3

File size: 4.2 KB
Line 
1<?php
2if (!defined("_ECRIRE_INC_VERSION")) {
3        return;
4}
5
6function action_selection_interface() {
7        $id_rubrique = _request("id_rubrique");
8        if (!autoriser('modifier','rubrique', $id_rubrique)) die ("Interdit");
9
10
11        // Bouton REMONTER
12        if ($_GET["remonter_ordre"] > 0) {
13       
14                $remonter = _request("remonter_ordre");
15                $result = sql_select("*", "spip_pb_selection", "id_rubrique=$id_rubrique", "", "ordre");
16               
17                while ($row = sql_fetch($result)) {
18                        $article = $row["id_article"];
19                        $ordre = $row["ordre"];
20                       
21                       
22                        if ($article == $remonter) break;
23                        else {
24                                $ordre_prec = $ordre;
25                                $art_prec = $article;
26                        }
27                }
28                sql_updateq("spip_pb_selection", array("ordre" => $ordre_prec), "id_rubrique = '$id_rubrique' AND id_article='$remonter'");
29                sql_updateq("spip_pb_selection", array("ordre" => $ordre), "id_rubrique = '$id_rubrique' AND id_article='$art_prec'");
30                // invalider les caches
31                include_spip('inc/invalideur');
32                suivre_invalideur("id='id_rubrique/$id_rubrique'");
33        }
34
35
36        if ($_GET["descendre_ordre"] > 0) {
37                $descendre = _request("descendre_ordre");
38
39                if (!autoriser('modifier','rubrique', $id_rubrique)) die ("Interdit");
40
41                $result = sql_select("ordre", "spip_pb_selection", "id_rubrique=$id_rubrique AND id_article=$descendre", "", "ordre");
42
43                if ($row = sql_fetch($result)) {
44                        $ordre = $row["ordre"];
45                       
46                        $result2 = sql_select("*", "spip_pb_selection", "id_rubrique=$id_rubrique AND ordre>$ordre", "ordre LIMIT 0,1");
47                        if ($row2 = sql_fetch($result2)) {
48                                $ordre_suiv = $row2["ordre"];
49                                $art_suiv = $row2["id_article"];
50       
51                                sql_updateq("spip_pb_selection", array("ordre" => $ordre_suiv), "id_rubrique = '$id_rubrique' AND id_article='$descendre'");
52                                sql_updateq("spip_pb_selection", array("ordre" => $ordre), "id_rubrique = '$id_rubrique' AND id_article='$art_suiv'");
53                                // invalider les caches
54                                include_spip('inc/invalideur');
55                                suivre_invalideur("id='id_rubrique/$id_rubrique'");
56                        }
57               
58                }
59       
60        }
61
62        if ($_GET["ajouter_selection"] > 0) {
63                $ajouter = _request("ajouter_selection");
64
65                if (!autoriser('modifier','rubrique', $id_rubrique)) die ("Interdit");
66       
67                $result = sql_select("id_article", "spip_articles", "id_article=$ajouter");
68                if ($row = sql_fetch($result)) {
69                        $result_test = sql_select("id_article", "spip_pb_selection", "id_rubrique=$id_rubrique AND id_article=$ajouter");
70                        if ($row_test = sql_fetch($result_test)) {
71                                echo "Cet article est déjà sélectionné.";
72                        } else {
73                                // Pas moyen de faire fonctionner le LIMIT 0,1 et l'ordre inverse avec sqlite
74                                $result_num = sql_select("ordre", "spip_pb_selection", "id_rubrique=$id_rubrique", "ordre");
75                                $ordre = 0;
76                                while ($row_num = sql_fetch($result_num)) {
77                                        $ordre = $row_num["ordre"];
78                                }
79                                $ordre ++;
80                                sql_insertq("spip_pb_selection", array('id_rubrique' => $id_rubrique, 'id_article'=>$ajouter, 'ordre'=>$ordre));
81                                // invalider les caches
82                                include_spip('inc/invalideur');
83                                suivre_invalideur("id='id_rubrique/$id_rubrique'");
84                        }
85       
86                } else {
87                        echo "Cet article n'existe pas.";
88                }
89       
90       
91        }
92
93        if ($_GET["supprimer_ordre"] > 0) {
94                $supprimer = _request("supprimer_ordre");
95               
96                if (!autoriser('modifier','rubrique', $id_rubrique)) die ("Interdit");
97                sql_delete("spip_pb_selection", "id_rubrique=$id_rubrique AND id_article=$supprimer");
98                // invalider les caches
99                include_spip('inc/invalideur');
100                suivre_invalideur("id='id_rubrique/$id_rubrique'");
101        }
102
103        if ($_GET["nouvel_ordre"]) {
104                $nouvel_ordre = explode(",", $_GET["nouvel_ordre"]);
105                if (count($nouvel_ordre) > 0) {
106                        sql_delete("spip_pb_selection", "id_rubrique=$id_rubrique");
107                        $ordre = 0;
108                        foreach($nouvel_ordre AS $id_article) {
109                                $ordre++;
110                                $id_article = substr($id_article, 9, 1000);
111                                        sql_insertq(
112                                                "spip_pb_selection", 
113                                                array(
114                                                        'id_rubrique' => $id_rubrique, 
115                                                        'id_article'=>$id_article, 
116                                                        'ordre'=>$ordre)
117                                                );
118                        }
119                        // invalider les caches
120                        include_spip('inc/invalideur');
121                        suivre_invalideur("id='id_rubrique/$id_rubrique'");
122                }
123        }
124
125        include_spip("inc/utils");
126        include_spip("public/assembler");
127        $contexte = array('id_rubrique'=>$_GET["id_rubrique"]);
128
129        $p = evaluer_fond("selection_interface", $contexte);
130        echo $p["texte"];
131}
Note: See TracBrowser for help on using the repository browser.