1 | <?php |
---|
2 | |
---|
3 | /***************************************************************************\ |
---|
4 | * SPIP, Systeme de publication pour l'internet * |
---|
5 | * * |
---|
6 | * Copyright (c) 2001-2015 * |
---|
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 | if (!defined('_ECRIRE_INC_VERSION')) { |
---|
14 | return; |
---|
15 | } |
---|
16 | |
---|
17 | /** |
---|
18 | * Chargement des donnees du formulaire |
---|
19 | * |
---|
20 | * @param string $type |
---|
21 | * @param int $id |
---|
22 | * @return array |
---|
23 | */ |
---|
24 | function formulaires_editer_url_objet_charger($type, $id) { |
---|
25 | $valeurs = array('url' => '', '_objet' => $type, '_id_objet' => $id); |
---|
26 | |
---|
27 | return $valeurs; |
---|
28 | } |
---|
29 | |
---|
30 | function formulaires_editer_url_objet_verifier($type, $id) { |
---|
31 | $erreurs = array(); |
---|
32 | include_spip('action/editer_url'); |
---|
33 | if (!$url = _request('url')) { |
---|
34 | $erreurs['url'] = _T('info_obligatoire'); |
---|
35 | } else { |
---|
36 | $type_urls = (isset($GLOBALS['type_urls']) ? $GLOBALS['type_urls'] : $GLOBALS['meta']['type_urls']); |
---|
37 | if ($type_urls == 'arbo' AND strpos($url, '/') !== false) { |
---|
38 | $url = explode('/', $url); |
---|
39 | if (count($url) > 2) { |
---|
40 | $erreurs['url'] = _T('urls:erreur_arbo_2_segments_max'); |
---|
41 | } else { |
---|
42 | foreach ($url as $u) { |
---|
43 | $url_clean[] = url_nettoyer($u, 255); |
---|
44 | } |
---|
45 | $url = implode('/', $url); |
---|
46 | $url_clean = implode('/', $url_clean); |
---|
47 | } |
---|
48 | } else { |
---|
49 | $url_clean = url_nettoyer($url, 255); |
---|
50 | } |
---|
51 | if (!isset($erreurs['url']) AND $url != $url_clean) { |
---|
52 | set_request('url', $url_clean); |
---|
53 | $erreurs['url'] = _T('urls:verifier_url_nettoyee'); |
---|
54 | } |
---|
55 | } |
---|
56 | |
---|
57 | return $erreurs; |
---|
58 | } |
---|
59 | |
---|
60 | /** |
---|
61 | * Traitement |
---|
62 | * |
---|
63 | * @param string $type |
---|
64 | * @param int $id |
---|
65 | * @return array |
---|
66 | */ |
---|
67 | function formulaires_editer_url_objet_traiter($type, $id) { |
---|
68 | $valeurs = array('editable' => true); |
---|
69 | |
---|
70 | include_spip('action/editer_url'); |
---|
71 | // les urls manuelles sont toujours permanentes |
---|
72 | $set = array('url' => _request('url'), 'type' => $type, 'id_objet' => $id, 'perma' => 1); |
---|
73 | |
---|
74 | $type_urls = (isset($GLOBALS['type_urls']) ? $GLOBALS['type_urls'] : $GLOBALS['meta']['type_urls']); |
---|
75 | if (include_spip("urls/$type_urls") |
---|
76 | AND function_exists($renseigner_url = "renseigner_url_$type_urls") |
---|
77 | AND $r = $renseigner_url($type, $id) |
---|
78 | AND isset($r['parent']) |
---|
79 | ) { |
---|
80 | $set['id_parent'] = $r['parent']; |
---|
81 | } |
---|
82 | |
---|
83 | $separateur = "-"; |
---|
84 | if (defined('_url_sep_id')) { |
---|
85 | $separateur = _url_sep_id; |
---|
86 | } |
---|
87 | |
---|
88 | if (url_insert($set, false, $separateur)) { |
---|
89 | set_request('url'); |
---|
90 | $valeurs['message_ok'] = _T("urls:url_ajoutee"); |
---|
91 | } else { |
---|
92 | $valeurs['message_erreur'] = _T("urls:url_ajout_impossible"); |
---|
93 | } |
---|
94 | |
---|
95 | return $valeurs; |
---|
96 | } |
---|