source: spip-zone/_plugins_/_dev_/widgets/action/widgets_html.php @ 5937

Last change on this file since 5937 was 5937, checked in by fil@…, 15 years ago

bouton un peu plus joli, help CSSsvn diff

File size: 2.6 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5// fonction d'API manquante a SPIP...
6function autoriser_modifs($quoi = 'article', $id = 0) {
7        if ($quoi != 'article') {
8                echo "pas implemente";
9                return false;
10        }
11
12        global $connect_id_auteur, $connect_statut;
13        $connect_id_auteur = intval($GLOBALS['auteur_session']['id_auteur']);
14        $connect_statut = $GLOBALS['auteur_session']['statut'];
15        include_spip('inc/auth');
16        auth_rubrique(); # definit $connect_toutes_rubriques (argh)
17        return acces_article($id);
18}
19
20function action_widgets_html_dist() {
21        include_spip('inc/widgets');
22        include_spip('inc/texte');
23        include_spip('inc/rubriques');
24
25        header("Content-Type: text/html; charset=".$GLOBALS['meta']['charset']);
26
27        // Est-ce qu'on a recu des donnees ?
28        if (isset($_POST['widgets'])) {
29                $modifs = post_widgets();
30                if (is_array($modifs)
31                AND count($modifs) >= 1) { // normalement, un seul pour l'instant...
32                        foreach($modifs as $m) {
33                                if (preg_match(
34                                ',(article)-(titre|surtitre|soustitre|descriptif|chapo|texte|ps)-(\d+),',
35                                $m[0], $regs)) {
36                                        // Enregistrer dans la base
37                                        if ($m[2]
38                                        AND autoriser_modifs('article', $regs[3])
39                                        // TODO: on pourrait tester aussi le md5 envoye contre celui
40                                        // qui correspond a la base actuelle : dans ce cas avertir
41                                        // que "le contenu a ete modifie entre temps", et renvoyer
42                                        // un formulaire ad-hoc.
43                                        ) {
44                                                include_spip('action/editer_article');
45                                                revisions_articles($regs[3], false,
46                                                        array($regs[2] => $m[1]));
47                                        }
48
49                                        // type du widget
50                                        if (in_array($regs[2], array('chapo', 'texte', 'descriptif')))
51                                                echo propre($m[1]);
52                                        else
53                                                echo typo($m[1]);
54                                }
55                        }
56                } else if ($modifs === false) {
57                        echo "erreur";
58                }
59        }
60
61        // sinon on affiche le formulaire demande
62        else if (preg_match(
63        ',(article)-(titre|surtitre|soustitre|descriptif|chapo|texte|ps)-(\d+),',
64        $_GET['class'], $regs)) {
65
66                // type du widget
67                if (in_array($regs[2], array('chapo', 'texte', 'descriptif')))
68                        $type = 'texte';
69                else
70                        $type = 'ligne';
71
72                $s = spip_query("SELECT ".$regs[2]." AS val FROM spip_".$regs[1]."s
73                WHERE id_".$regs[1]."=".$regs[3]);
74                if ($t = spip_fetch_array($s)) {
75                        echo "<form method='post' action='".self()."'>\n";
76                        $n = new SecureWidget($regs[0], $t['val']);
77                        echo $n->code();
78                        echo $n->input($type);
79                        echo '<div style="float:right; width:100px">';
80                        echo '<div style="position:absolute;">';
81                        echo '<input type="submit" value="ok" />'."\n";
82                        echo '<input class="cancel_widget" type="button" value="cancel" />'."\n";
83                        echo '</div>'."\n";
84                        echo '</div>'."\n";
85                        echo '</form>'."\n";
86                }
87        }
88}
89
90?>
Note: See TracBrowser for help on using the repository browser.