source: spip-zone/_plugins_/pays/trunk/formulaires/editer_pays.php @ 91032

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

On ajoute la possibilité de lier un ou plusieurs pays à des objets SPIP.

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