source: spip-zone/_plugins_/roles_documents/trunk/formulaires/editer_roles_objet_lie.php @ 96366

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

Recharger le bloc des documents après avoir modifié un rôle. Cela permet
entre autres d'enlever un document de la liste lorsqu'on lui retire son
dernier rôle.

File size: 2.5 KB
Line 
1<?php
2
3/**
4 * Gestion du formulaire d'édition de rôles de liens
5 *
6 * @package SPIP\Formulaires
7 **/
8if (!defined('_ECRIRE_INC_VERSION')) return;
9
10/**
11 * Chargement du formulaire d'édition de rôles de liens
12 *
13 * `#FORMULAIRE_EDITER_ROLES_OBJET_LIE{document,2,article,3}`
14 * pour editer les roles du document 2 lié à l'article 3
15 *
16 * @param string $objet_source
17 *     objet étant associé
18 * @param string|int $id_objet_source
19 *     identifiant de l'objet associé
20 * @param string $objet
21 * @param int|string $id_objet
22 * @param array $options
23 *     tableau d'options, à toutes fins utiles
24 * @return array
25 */
26function formulaires_editer_roles_objet_lie_charger_dist($objet_source, $id_objet_source, $objet, $id_objet, $options=array()){
27
28        // retourner les valeurs de editer_liens
29        $table_source = table_objet($objet_source);
30        $editer_liens_charger = charger_fonction('charger', 'formulaires/editer_liens');
31        $valeurs = $editer_liens_charger($table_source, $objet, $id_objet); // documents, article, 2
32
33        // on a besoin de id_objet_source (= document) pour inc-editer_liens_actions_roles
34        if (is_array($valeurs)) {
35                $valeurs = array_merge($valeurs, array('id_objet_source' => $id_objet_source));
36        }
37
38        return $valeurs;
39}
40
41/**
42 * Traiter le post des informations d'édition de rôles de liens
43 *
44 * @param string $objet_source
45 *     objet étant associé
46 * @param string|int $id_objet_source
47 *     identifiant de l'objet associé
48 * @param string $objet
49 * @param int|string $id_objet
50 * @param array $options
51 *     tableau d'options, à toutes fins utiles
52 * @return array
53 */
54function formulaires_editer_roles_objet_lie_traiter_dist($objet_source, $id_objet_source, $objet, $id_objet, $options=array()){
55
56        // retourner les traitements de editer_liens
57        $table_source = table_objet($objet_source);
58        $editer_liens_traiter = charger_fonction('traiter','formulaires/editer_liens');
59        $res = $editer_liens_traiter($table_source, $objet, $id_objet); // documents, article, 2
60
61        // pour rechercher un ou plusieurs blocs après modification des roles
62        // ajaxReload est un sélecteur css, tel que '#documents'
63        if (!empty($options['ajaxReload'])) {
64                $js = 'if (window.jQuery) jQuery("' . $options['ajaxReload'] . '").ajaxReload();';
65                $js = "<script type='text/javascript'>$js</script>";
66
67                if (isset($res['message_erreur'])) {
68                        $res['message_erreur'] .= $js;
69                } elseif (isset($res['message_ok'])) {
70                        $res['message_ok'] .= $js;
71                } else {
72                        $res['message_ok'] = $js;
73                }
74        }
75
76        return $res;
77
78}
79
Note: See TracBrowser for help on using the repository browser.