source: spip-zone/_core_/plugins/sites/formulaires/editer_site.php @ 94396

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

bonne année.

File size: 7.2 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2016                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13/**
14 * Gestion du formulaire de d'édition d'un site
15 *
16 * @package SPIP\Sites\Formulaires
17 **/
18
19if (!defined("_ECRIRE_INC_VERSION")) {
20        return;
21}
22
23include_spip('inc/actions');
24include_spip('inc/editer');
25include_spip('inc/filtres'); // pour vider_url()
26
27/**
28 * Chargement du formulaire d'édition d'un site
29 *
30 * @uses formulaires_editer_objet_charger()
31 *
32 * @param int|string $id_syndic
33 *     Identifiant du site. 'new' pour un nouveau site.
34 * @param int $id_rubrique
35 *     Identifiant de la rubrique parente (si connue)
36 * @param string $retour
37 *     URL de redirection après le traitement
38 * @param int $lier_trad
39 *     Identifiant éventuel d'un site source de traduction
40 * @param string $config_fonc
41 *     Nom de la fonction ajoutant des configurations particulières au formulaire
42 * @param array $row
43 *     Valeurs de la ligne SQL du mot, si connu
44 * @param string $hidden
45 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
46 * @return array
47 *     Environnement du formulaire
48 **/
49function formulaires_editer_site_charger_dist(
50        $id_syndic = 'new',
51        $id_rubrique = 0,
52        $retour = '',
53        $lier_trad = 0,
54        $config_fonc = 'sites_edit_config',
55        $row = array(),
56        $hidden = ''
57) {
58        $valeurs = formulaires_editer_objet_charger('site', $id_syndic, $id_rubrique, $lier_trad, $retour, $config_fonc, $row,
59                $hidden);
60        # pour recuperer le logo issu d'analyse auto
61        $valeurs['logo'] = '';
62        $valeurs['format_logo'] = '';
63
64        return $valeurs;
65}
66
67/**
68 * Identifier le formulaire en faisant abstraction des paramètres qui
69 * ne représentent pas l'objet edité
70 *
71 * @param int|string $id_syndic
72 *     Identifiant du site. 'new' pour un nouveau site.
73 * @param int $id_rubrique
74 *     Identifiant de la rubrique parente (si connue)
75 * @param string $retour
76 *     URL de redirection après le traitement
77 * @param int $lier_trad
78 *     Identifiant éventuel d'un site source de traduction
79 * @param string $config_fonc
80 *     Nom de la fonction ajoutant des configurations particulières au formulaire
81 * @param array $row
82 *     Valeurs de la ligne SQL du mot, si connu
83 * @param string $hidden
84 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
85 * @return string
86 *     Hash du formulaire
87 */
88function formulaires_editer_site_identifier_dist(
89        $id_syndic = 'new',
90        $id_rubrique = 0,
91        $retour = '',
92        $lier_trad = 0,
93        $config_fonc = 'sites_edit_config',
94        $row = array(),
95        $hidden = ''
96) {
97        return serialize(array(intval($id_syndic), $lier_trad));
98}
99
100/**
101 * Choix par défaut des options de présentation
102 *
103 * @param array $row
104 *     Valeurs de la ligne SQL d'un site, si connu
105 * return array
106 *     Configuration pour le formulaire
107 */
108function sites_edit_config($row) {
109        global $spip_lang;
110
111        $config = $GLOBALS['meta'];
112        $config['lignes'] = 8;
113        $config['langue'] = $spip_lang;
114
115        $config['restreint'] = false;
116
117        return $config;
118}
119
120/**
121 * Vérifications du formulaire d'édition de site
122 *
123 * @uses formulaires_editer_objet_verifier()
124 *
125 * @param int|string $id_syndic
126 *     Identifiant du site. 'new' pour un nouveau site.
127 * @param int $id_rubrique
128 *     Identifiant de la rubrique parente (si connue)
129 * @param string $retour
130 *     URL de redirection après le traitement
131 * @param int $lier_trad
132 *     Identifiant éventuel d'un site source de 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 mot, 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 *     Erreurs du formulaire
141 */
142function formulaires_editer_site_verifier_dist(
143        $id_syndic = 'new',
144        $id_rubrique = 0,
145        $retour = '',
146        $lier_trad = 0,
147        $config_fonc = 'sites_edit_config',
148        $row = array(),
149        $hidden = ''
150) {
151        include_spip('inc/filtres');
152        include_spip('inc/site');
153        $oblis = array('nom_site', 'url_site', 'id_parent');
154        // Envoi depuis le formulaire d'analyse automatique d'un site
155        if (_request('ajoute_url_auto') and strlen(vider_url($u = _request('url_auto')))) {
156                if ($auto = analyser_site($u)) {
157                        // Si pas de logo, on va le chercher dans le ou les feeds
158                        if (isset($auto['url_syndic'])
159                                && !(isset($auto['logo']) and $auto['logo'])
160                                && ($auto['url_syndic'] != _request('ajouter_url_auto'))
161                                && preg_match(',^select: (.+),', $auto['url_syndic'], $regs)
162                        ) {
163                                $url_syndic = str_replace('select: ', '', $auto['url_syndic']);
164                                $feeds = explode(' ', $regs[1]);
165                                foreach ($feeds as $feed) {
166                                        if (($auto_syndic = analyser_site($feed)) && isset($auto_syndic['format_logo'])) {
167                                                $auto['format_logo'] = $auto_syndic['format_logo'];
168                                                $auto['logo'] = $auto_syndic['logo'];
169                                                break;
170                                        }
171                                }
172                        }
173                        foreach ($auto as $k => $v) {
174                                set_request($k, $v);
175                        }
176                        $erreurs['verif_url_auto'] = _T('sites:texte_referencement_automatique_verifier', array('url' => $u));
177                        $erreurs['message_erreur'] = '';
178                } else {
179                        $erreurs['url_auto'] = _T('sites:avis_site_introuvable');
180                }
181        } else {
182                // auto-renseigner le titre si il n'existe pas
183                // d'abord a partir du descriptif en coupant
184                titre_automatique('nom_site', array('descriptif'));
185                // et sinon l'url du site, sans couper
186                titre_automatique('nom_site', array('url_site'), 255);
187                $erreurs = formulaires_editer_objet_verifier('site', $id_syndic, $oblis);
188        }
189
190        return $erreurs;
191}
192
193/**
194 * Traitements du formulaire d'édition de site
195 *
196 * @uses formulaires_editer_objet_traiter()
197 *
198 * @param int|string $id_syndic
199 *     Identifiant du site. 'new' pour un nouveau site.
200 * @param int $id_rubrique
201 *     Identifiant de la rubrique parente (si connue)
202 * @param string $retour
203 *     URL de redirection après le traitement
204 * @param int $lier_trad
205 *     Identifiant éventuel d'un site source de traduction
206 * @param string $config_fonc
207 *     Nom de la fonction ajoutant des configurations particulières au formulaire
208 * @param array $row
209 *     Valeurs de la ligne SQL du mot, si connu
210 * @param string $hidden
211 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
212 * @return array
213 *     Erreurs du formulaire
214 */
215function formulaires_editer_site_traiter_dist(
216        $id_syndic = 'new',
217        $id_rubrique = 0,
218        $retour = '',
219        $lier_trad = 0,
220        $config_fonc = 'sites_edit_config',
221        $row = array(),
222        $hidden = ''
223) {
224        // netoyer les entrees
225        if (!is_null(_request('url_site'))) {
226                set_request('url_site', vider_url(_request('url_site')));
227        }
228
229        return formulaires_editer_objet_traiter('site', $id_syndic, $id_rubrique, $lier_trad, $retour, $config_fonc, $row,
230                $hidden);
231}
Note: See TracBrowser for help on using the repository browser.