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

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

gestion de droits plus complete : widgets.js etablit la liste des class='titre-article-12' qui sont presents dans la page, et demande (par ahah) la liste des classes qui correspondent a ses droits ; ensuite seulement il les active

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