source: spip-zone/_plugins_/noizetier/trunk/formulaires/ajouter_noisette.php @ 95531

Last change on this file since 95531 was 95531, checked in by rastapopoulos@…, 4 years ago

Une bête de modif de plein de fichiers, mais qui normalement n'ajoute que peu de chose et sans rien changer à l'ancien.

On peut maintenant éditer les noisettes D'UN contenu PRÉCIS et uniquement lui.

Pour ça il faut aller configurer sur quels objets on accepte ça. Et ensuite sur le côté sous l'identifiant on a "Aucune noisette configurée" (ou "12 noisettes configurées" si on l'a déjà fait).

Ce qui amène à l'interface de composition de noisettes mais pour CET objet/id uniquement.

J'ai passé des heures à tout passer au peigne fin du comportement existant : à priori tout marche AUSSI pour toutes les modifs publiques avec voir=noisettes !

À tester !

File size: 1.8 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7include_spip('noizetier_fonctions');
8include_spip('base/abstract_sql');
9if (!function_exists('autoriser')) {
10        include_spip('inc/autoriser');
11}     // si on utilise le formulaire dans le public
12
13// Note : $retour indique la page à charger en cas d'ajout
14//        @id_noisette@ étant alors remplacer par la bonne valeur, connue seulement après ajout de la noisette
15
16function formulaires_ajouter_noisette_charger_dist($page, $bloc, $retour = '') {
17        $contexte = array(
18                'bloc' => $bloc,
19                'editable' => autoriser('configurer', 'noizetier') ? 'on' : '',
20        );
21       
22        if (is_array($page)) {
23                $contexte['objet'] = $page['objet'];
24                $contexte['id_objet'] = $page['id_objet'];
25        }
26        else {
27                $contexte['page'] = $page;
28        }
29       
30        return $contexte;
31}
32
33function formulaires_ajouter_noisette_traiter_dist($page, $bloc, $retour = '') {
34        if (!autoriser('configurer', 'noizetier')) {
35                return array('message_erreur' => _T('noizetier:probleme_droits'));
36        }
37
38        $res = array();
39        $noisette = _request('noisette');
40
41        if (!$noisette) {
42                return array('message_erreur' => _T('noizetier:erreur_aucune_noisette_selectionnee'));
43        }
44
45        if ($noisette) {
46                if ($id_noisette = noizetier_ajouter_noisette($noisette, $page, $bloc)) {
47                        $res['message_ok'] = _T('info_modification_enregistree');
48                        if ($retour) {
49                                $retour = str_replace('&amp;', '&', $retour); // Grrr, y a surement plus propre
50                                $retour = str_replace('@id_noisette@', $id_noisette, $retour);
51                                if (strncmp($retour, 'javascript:', 11) == 0) {
52                                        $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/'.substr($retour, 11).'/*]]>*/</script>';
53                                        $res['editable'] = true;
54                                } else {
55                                        $res['redirect'] = $retour;
56                                }
57                        }
58                } else {
59                        $res['message_erreur'] = _T('noizetier:erreur_mise_a_jour');
60                }
61        }
62
63        return $res;
64}
Note: See TracBrowser for help on using the repository browser.