source: spip-zone/_plugins_/espaces/trunk/formulaires/editer_espace.php @ 114789

Last change on this file since 114789 was 114789, checked in by abelass@…, 5 months ago
  • empêcher de lier l'espace à un auteur lors de sa création
  • Salvatore
File size: 5.7 KB
Line 
1<?php
2/**
3 * Gestion du formulaire de d'édition de espace
4 *
5 * @plugin     Espaces
6 * @copyright  2018 - 2019
7 * @author     Rainer Müller
8 * @licence    GNU/GPL v3
9 * @package    SPIP\Espaces\Formulaires
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13  return;
14}
15
16include_spip('inc/actions');
17include_spip('inc/editer');
18
19
20/**
21 * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
22 *
23 * @param int|string $id_espace
24 *     Identifiant du espace. 'new' pour un nouveau espace.
25 * @param string $retour
26 *     URL de redirection après le traitement
27 * @param string $associer_objet
28 *     Éventuel `objet|x` indiquant de lier le espace créé à cet objet,
29 *     tel que `article|3`
30 * @param int $lier_trad
31 *     Identifiant éventuel d'un espace source d'une traduction
32 * @param string $config_fonc
33 *     Nom de la fonction ajoutant des configurations particulières au formulaire
34 * @param array $row
35 *     Valeurs de la ligne SQL du espace, si connu
36 * @param string $hidden
37 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
38 * @return string
39 *     Hash du formulaire
40 */
41function formulaires_editer_espace_identifier_dist($id_espace = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
42  return serialize(array(intval($id_espace), $associer_objet));
43}
44
45/**
46 * Chargement du formulaire d'édition de espace
47 *
48 * Déclarer les champs postés et y intégrer les valeurs par défaut
49 *
50 * @uses formulaires_editer_objet_charger()
51 *
52 * @param int|string $id_espace
53 *     Identifiant du espace. 'new' pour un nouveau espace.
54 * @param string $retour
55 *     URL de redirection après le traitement
56 * @param string $associer_objet
57 *     Éventuel `objet|x` indiquant de lier le espace créé à cet objet,
58 *     tel que `article|3`
59 * @param int $lier_trad
60 *     Identifiant éventuel d'un espace source d'une traduction
61 * @param string $config_fonc
62 *     Nom de la fonction ajoutant des configurations particulières au formulaire
63 * @param array $row
64 *     Valeurs de la ligne SQL du espace, si connu
65 * @param string $hidden
66 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
67 * @return array
68 *     Environnement du formulaire
69 */
70function formulaires_editer_espace_charger_dist($id_espace = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
71  $valeurs = formulaires_editer_objet_charger('espace', $id_espace, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
72
73  // Eviter d'associer un auteur.
74  $valeurs['_hidden'] .= '<input type="hidden" name="id_auteur" value="" />';
75
76  // Publier directement
77  if ($id_espace == 'oui') {
78    $valeurs['_hidden'] .= '<input type="hidden" name="statut" value="publie" />';
79  }
80
81  return $valeurs;
82}
83
84/**
85 * Vérifications du formulaire d'édition de espace
86 *
87 * Vérifier les champs postés et signaler d'éventuelles erreurs
88 *
89 * @uses formulaires_editer_objet_verifier()
90 *
91 * @param int|string $id_espace
92 *     Identifiant du espace. 'new' pour un nouveau espace.
93 * @param string $retour
94 *     URL de redirection après le traitement
95 * @param string $associer_objet
96 *     Éventuel `objet|x` indiquant de lier le espace créé à cet objet,
97 *     tel que `article|3`
98 * @param int $lier_trad
99 *     Identifiant éventuel d'un espace source d'une traduction
100 * @param string $config_fonc
101 *     Nom de la fonction ajoutant des configurations particulières au formulaire
102 * @param array $row
103 *     Valeurs de la ligne SQL du espace, si connu
104 * @param string $hidden
105 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
106 * @return array
107 *     Tableau des erreurs
108 */
109function formulaires_editer_espace_verifier_dist($id_espace = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
110  $erreurs = array();
111
112  $erreurs = formulaires_editer_objet_verifier('espace', $id_espace, array('titre'));
113
114  return $erreurs;
115}
116
117/**
118 * Traitement du formulaire d'édition de espace
119 *
120 * Traiter les champs postés
121 *
122 * @uses formulaires_editer_objet_traiter()
123 *
124 * @param int|string $id_espace
125 *     Identifiant du espace. 'new' pour un nouveau espace.
126 * @param string $retour
127 *     URL de redirection après le traitement
128 * @param string $associer_objet
129 *     Éventuel `objet|x` indiquant de lier le espace créé à cet objet,
130 *     tel que `article|3`
131 * @param int $lier_trad
132 *     Identifiant éventuel d'un espace source d'une traduction
133 * @param string $config_fonc
134 *     Nom de la fonction ajoutant des configurations particulières au formulaire
135 * @param array $row
136 *     Valeurs de la ligne SQL du espace, si connu
137 * @param string $hidden
138 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
139 * @return array
140 *     Retours des traitements
141 */
142function formulaires_editer_espace_traiter_dist($id_espace = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
143  $retours = formulaires_editer_objet_traiter('espace', $id_espace, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
144
145  // Un lien a prendre en compte ?
146  if ($associer_objet and $id_espace = $retours['id_espace']) {
147    list($objet, $id_objet) = explode('|', $associer_objet);
148
149    if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
150      include_spip('action/editer_liens');
151
152      objet_associer(array('espace' => $id_espace), array($objet => $id_objet));
153
154      if (isset($retours['redirect'])) {
155        $retours['redirect'] = parametre_url($retours['redirect'], 'id_lien_ajoute', $id_espace, '&');
156      }
157    }
158  }
159
160  return $retours;
161}
Note: See TracBrowser for help on using the repository browser.