Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/aides/plugins-dist/urls_etendues/formulaires/ |
<?php /***************************************************************************\ * SPIP, Système de publication pour l'internet * * * * Copyright © avec tendresse depuis 2001 * * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribué sous licence GNU/GPL. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * Chargement des donnees du formulaire * * @param string $type * @param int $id * @return array */ function formulaires_editer_url_objet_charger_dist($type, $id) { $valeurs = ['url' => '', '_objet' => $type, '_id_objet' => $id]; return $valeurs; } /** * Verifier la saisie de l'URL * on peut prefixer par une langue au format * fr:Mon-URL-fr * en:My-english-url * pour specifier la langue de l'URL (mais il faut que le module d'URL la prenne en charge) * @param $type * @param $id * @return array */ function formulaires_editer_url_objet_verifier_dist($type, $id) { $url_clean = []; $erreurs = []; include_spip('action/editer_url'); $langue = ''; if (!$url = _request('url')) { $erreurs['url'] = _T('info_obligatoire'); } else { if ( preg_match(';^([a-z_]{2,9}):;', $url, $m) and url_verifier_langue($m[1]) ) { $langue = trim($m[1]); $url = substr($url, strlen($m[0])); } $type_urls = ($GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls']); if ($type_urls == 'arbo' and strpos($url, '/') !== false) { $url = explode('/', $url); if (count($url) > 2) { $erreurs['url'] = _T('urls:erreur_arbo_2_segments_max'); } else { foreach ($url as $u) { $url_clean[] = url_nettoyer($u, 255); } $url = implode('/', $url); $url_clean = implode('/', $url_clean); } } else { $url_clean = url_nettoyer($url, 255); } if (!isset($erreurs['url']) and $url != $url_clean) { set_request('url', ($langue ? "$langue:" : '') . $url_clean); $erreurs['url'] = _T('urls:verifier_url_nettoyee'); } } return $erreurs; } /** * Traitement * * @param string $type * @param int $id * @return array */ function formulaires_editer_url_objet_traiter_dist($type, $id) { $valeurs = ['editable' => true]; include_spip('action/editer_url'); $url = _request('url'); $langue = ''; if ( preg_match(';^([a-z_]{2,9}):;', $url, $m) and url_verifier_langue($m[1]) ) { $langue = trim($m[1]); $url = substr($url, strlen($m[0])); } // les urls manuelles sont toujours permanentes $set = ['url' => $url, 'type' => $type, 'id_objet' => $id, 'perma' => 1, 'langue' => $langue]; $type_urls = ($GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls']); if ( include_spip("urls/$type_urls") and function_exists($renseigner_url = "renseigner_url_$type_urls") and $r = $renseigner_url($type, $id) and isset($r['parent']) ) { $set['id_parent'] = $r['parent']; } $separateur = '-'; if (defined('_url_sep_id')) { $separateur = \_url_sep_id; } if (url_insert($set, false, $separateur)) { set_request('url'); $valeurs['message_ok'] = _T('urls:url_ajoutee'); } else { $valeurs['message_erreur'] = _T('urls:url_ajout_impossible'); } return $valeurs; }