. */ /* */ /*************************************************************************************/ /** * Vérification de l'existence d'une url * @param string url l'URL à vérifier * @return boolean true si l'URL existe et est lisible, false sinon. */ function url_exists($url) { if ($handle = @fopen($url, "r")) { fclose($handle); return true; } return false; } /** * Redirige vers une URL, et termine le script * @param string url l'URL de destination */ function redirige($url){ ActionsModules::instance()->appel_module("redirige", $url); if (! Tlog::instance()->afficher_redirections($url)) header("Location: " . $url); exit; } /** * * Retourne l'URL du site en fonction de la configuration et de la langue courante, ou de la langue indiquée * @param int $idlang ID de la langue dont on cherche l'URL * @return l'URL du iste pour la langue donnée. */ function urlsite($idlang = false) { if ($idlang === false) $lang = new Lang(ActionsLang::instance()->get_id_langue_courante()); else $lang = new Lang($idlang); if (empty($lang->url) || (Variable::lire('un_domaine_par_langue') == 0)) return Variable::lire('urlsite'); else return $lang->url; } /** * Calculer une URL à partir d'un nom de fond. * * @param string fond le nom du fond * @param string parametres les parametres éventuels à ajouter à l'URL * @param boolean escape si true, on sépoare l'URL et les paramètres par &. Si false, par '&' */ function urlfond($fond="", $parametres = false, $escape = false) { $urlsite = urlsite(); if (! empty($fond)) { if (Variable::lire("rewrite") != 0) { // Trouver une éventuelle reecriture $rw = new Reecriture(); if ($rw->charger_param($fond, $parametres == false ? '' : "&".$parametres , ActionsLang::instance()->get_id_langue_courante(), 1)) { return "$urlsite/$rw->url"; } } $urlsite = sprintf("%s/?fond=%s", $urlsite, $fond); } if ($parametres !== false) { if ($escape) $parametres = escape_ampersand($parametres); $urlsite .= ($escape ? "&" : "&") . $parametres; } return $urlsite; } /** * Supprime le paramètre "déconnexion" d'une URL * * @param string url l'url a traiter * @return string l'URL sans le paramètre déconnexion */ function supprimer_deconnexion($url) { // Supprimer l'éventuel paramètre de déconnexion, en, préservant les éventuels autres. $url = preg_replace("/\?action=deconnexion\&(.+)$/", "?\\1", $url); $url = preg_replace("/(\?action=deconnexion$)|((\&)*action=deconnexion)/", "", $url); return $url; } /* * Permet de transformer les "&" d'une URL en & en évitant les double encodages * * @param string url l'url ou la fraction d'url a traiter * @return string l'URL avec les & transformés en & */ function escape_ampersand($url) { // Pas de double encodage $url = str_replace("&", "&", $url); return str_replace("&", "&", $url); } /** * @return string l'URL complète de la page courante. Si le rewriting est activé, il * s'agit de l'URL ré-écrite. */ function url_page_courante() { $uri = $_SERVER['REQUEST_URI']; // Si on est a la racine, s'assurer qu'on a une url avec fichier if (substr($uri, -1) == '/') $uri = $uri . 'index.php'; // On utilise ensuite basename() pour retirer l'éventuel chemin comme dans http://www.maboutique.com/path/to/maboutique/mapage.html return urlfond() . '/' . basename($uri); } ?>