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

Last change on this file since 114065 was 114065, checked in by abelass@…, 7 months ago

Objet éditorial espaces. Par exemple les espaces d'un immeuble. Utilisé par location d'immeubles

File size: 5.6 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  // Publier directement
74  if ($id_espace == 'oui') {
75    $valeurs['_hidden'] .= '<input type="hidden" name="statut" value="publie" />';
76  }
77
78  return $valeurs;
79}
80
81/**
82 * Vérifications du formulaire d'édition de espace
83 *
84 * Vérifier les champs postés et signaler d'éventuelles erreurs
85 *
86 * @uses formulaires_editer_objet_verifier()
87 *
88 * @param int|string $id_espace
89 *     Identifiant du espace. 'new' pour un nouveau espace.
90 * @param string $retour
91 *     URL de redirection après le traitement
92 * @param string $associer_objet
93 *     Éventuel `objet|x` indiquant de lier le espace créé à cet objet,
94 *     tel que `article|3`
95 * @param int $lier_trad
96 *     Identifiant éventuel d'un espace source d'une traduction
97 * @param string $config_fonc
98 *     Nom de la fonction ajoutant des configurations particulières au formulaire
99 * @param array $row
100 *     Valeurs de la ligne SQL du espace, si connu
101 * @param string $hidden
102 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
103 * @return array
104 *     Tableau des erreurs
105 */
106function formulaires_editer_espace_verifier_dist($id_espace = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
107  $erreurs = array();
108
109  $erreurs = formulaires_editer_objet_verifier('espace', $id_espace, array('titre'));
110
111  return $erreurs;
112}
113
114/**
115 * Traitement du formulaire d'édition de espace
116 *
117 * Traiter les champs postés
118 *
119 * @uses formulaires_editer_objet_traiter()
120 *
121 * @param int|string $id_espace
122 *     Identifiant du espace. 'new' pour un nouveau espace.
123 * @param string $retour
124 *     URL de redirection après le traitement
125 * @param string $associer_objet
126 *     Éventuel `objet|x` indiquant de lier le espace créé à cet objet,
127 *     tel que `article|3`
128 * @param int $lier_trad
129 *     Identifiant éventuel d'un espace source d'une traduction
130 * @param string $config_fonc
131 *     Nom de la fonction ajoutant des configurations particulières au formulaire
132 * @param array $row
133 *     Valeurs de la ligne SQL du espace, si connu
134 * @param string $hidden
135 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
136 * @return array
137 *     Retours des traitements
138 */
139function formulaires_editer_espace_traiter_dist($id_espace = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
140  $retours = formulaires_editer_objet_traiter('espace', $id_espace, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
141
142  // Un lien a prendre en compte ?
143  if ($associer_objet and $id_espace = $retours['id_espace']) {
144    list($objet, $id_objet) = explode('|', $associer_objet);
145
146    if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
147      include_spip('action/editer_liens');
148
149      objet_associer(array('espace' => $id_espace), array($objet => $id_objet));
150
151      if (isset($retours['redirect'])) {
152        $retours['redirect'] = parametre_url($retours['redirect'], 'id_lien_ajoute', $id_espace, '&');
153      }
154    }
155  }
156
157  return $retours;
158}
Note: See TracBrowser for help on using the repository browser.