3dbc625121b107d436e9505bd501783fc5781b3a
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) {
18 * Chargement des donnees du formulaire
24 function formulaires_editer_url_objet_charger_dist($type, $id) {
25 $valeurs = array('url' => '', '_objet' => $type, '_id_objet' => $id);
31 * Verifier la saisie de l'URL
32 * on peut prefixer par une langue au format
35 * pour specifier la langue de l'URL (mais il faut que le module d'URL la prenne en charge)
40 function formulaires_editer_url_objet_verifier_dist($type, $id) {
42 include_spip('action/editer_url');
44 if (!$url = _request('url')) {
45 $erreurs['url'] = _T('info_obligatoire');
47 if (preg_match(";^([a-z_]{2,9}):;", $url, $m)
48 and url_verifier_langue($m[1])) {
49 $langue = trim($m[1]);
50 $url = substr($url, strlen($m[0]));
53 $type_urls = (isset($GLOBALS['type_urls']) ?
$GLOBALS['type_urls'] : $GLOBALS['meta']['type_urls']);
54 if ($type_urls == 'arbo' and strpos($url, '/') !== false) {
55 $url = explode('/', $url);
56 if (count($url) > 2) {
57 $erreurs['url'] = _T('urls:erreur_arbo_2_segments_max');
59 foreach ($url as $u) {
60 $url_clean[] = url_nettoyer($u, 255);
62 $url = implode('/', $url);
63 $url_clean = implode('/', $url_clean);
66 $url_clean = url_nettoyer($url, 255);
68 if (!isset($erreurs['url']) and $url != $url_clean) {
69 set_request('url', ($langue?
"$langue:":"") . $url_clean);
70 $erreurs['url'] = _T('urls:verifier_url_nettoyee');
84 function formulaires_editer_url_objet_traiter_dist($type, $id) {
85 $valeurs = array('editable' => true);
86 include_spip('action/editer_url');
88 $url = _request('url');
90 if (preg_match(";^([a-z_]{2,9}):;", $url, $m)
91 and url_verifier_langue($m[1])) {
92 $langue = trim($m[1]);
93 $url = substr($url, strlen($m[0]));
96 // les urls manuelles sont toujours permanentes
97 $set = array('url' => $url, 'type' => $type, 'id_objet' => $id, 'perma' => 1, 'langue' => $langue);
99 $type_urls = (isset($GLOBALS['type_urls']) ?
$GLOBALS['type_urls'] : $GLOBALS['meta']['type_urls']);
100 if (include_spip("urls/$type_urls")
101 and function_exists($renseigner_url = "renseigner_url_$type_urls")
102 and $r = $renseigner_url($type, $id)
103 and isset($r['parent'])
105 $set['id_parent'] = $r['parent'];
109 if (defined('_url_sep_id')) {
110 $separateur = _url_sep_id
;
113 if (url_insert($set, false, $separateur)) {
115 $valeurs['message_ok'] = _T("urls:url_ajoutee");
117 $valeurs['message_erreur'] = _T("urls:url_ajout_impossible");