source: spip-zone/_core_/plugins/urls_etendues/urls/html.php @ 93092

Last change on this file since 93092 was 93092, checked in by gilles.vincent@…, 5 years ago

Mise en forme plus homegene et plus lisible, pour les declarations des fonctions
Regles :

  • un espace après chaque virgule
  • un espace avant et apres chaque '='
File size: 3.6 KB
Line 
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/*
14
15- Comment utiliser ce jeu d'URLs ?
16
17Recopiez le fichier "htaccess.txt" du repertoire de base du site SPIP sous
18le sous le nom ".htaccess" (attention a ne pas ecraser d'autres reglages
19que vous pourriez avoir mis dans ce fichier) ; si votre site est en
20"sous-repertoire", vous devrez aussi editer la ligne "RewriteBase" ce fichier.
21Les URLs definies seront alors redirigees vers les fichiers de SPIP.
22
23Dans les pages de configuration, choisissez 'html' comme type d'url
24
25SPIP calculera alors ses liens sous la forme "article123.html".
26
27Note : si le fichier htaccess.txt se revele trop "puissant", car trop
28generique, et conduit a des problemes (en lien par exemple avec d'autres
29applications installees dans votre repertoire, a cote de SPIP), vous
30pouvez l'editer pour ne conserver que la partie concernant les URLS 'html'.
31
32*/
33
34if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
35
36# donner un exemple d'url pour le formulaire de choix
37define('URLS_HTML_EXEMPLE', 'article12.html');
38
39// http://code.spip.net/@_generer_url_html
40function _generer_url_html($type, $id, $args = '', $ancre = '') {
41        if ($generer_url_externe = charger_fonction("generer_url_$type",'urls',true)) {
42                $url = $generer_url_externe($id, $args, $ancre);
43                if (NULL != $url) return $url;
44        }
45
46        return _DIR_RACINE . $type . $id . '.html' . ($args ? "?$args" : '') .($ancre ? "#$ancre" : '');
47}
48
49// retrouver les parametres d'une URL dite "html"
50// http://code.spip.net/@urls_html_dist
51function urls_html_dist($i, $entite, $args = '', $ancre = '') {
52
53        if (is_numeric($i))
54                return _generer_url_html($entite, $i, $args, $ancre);
55
56        // recuperer les &debut_xx;
57        if (is_array($args))
58                $contexte = $args;
59        else
60                parse_str($args,$contexte);
61
62
63        // traiter les injections du type domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
64        if ($GLOBALS['profondeur_url']>0 AND $entite=='sommaire'){
65                return array(array(),'404');
66        }
67
68        // voir s'il faut recuperer le id_* implicite et les &debut_xx;
69        include_spip('inc/urls');
70        $r = nettoyer_url_page($i, $contexte);
71        if ($r) {
72                array_pop($r); // nettoyer_url_page renvoie un argument de plus inutile ici
73                // il n'est pas necessaire de forcer le fond en 4eme arg car l'url n'est pas query string
74                // sauf si pas de fond connu
75                if ($entite)
76                        array_pop($r);
77                return $r;
78        }
79
80        /*
81         * Le bloc qui suit sert a faciliter les transitions depuis
82         * le mode 'urls-propres' vers les modes 'urls-standard' et 'url-html'
83         * Il est inutile de le recopier si vous personnalisez vos URLs
84         * et votre .htaccess
85         */
86        // Si on est revenu en mode html, mais c'est une ancienne url_propre
87        // on ne redirige pas, on assume le nouveau contexte (si possible)
88        $url_propre = $i;
89        if ($url_propre) {
90                if ($GLOBALS['profondeur_url']<=0)
91                        $urls_anciennes = charger_fonction('propres','urls');
92                else
93                        $urls_anciennes = charger_fonction('arbo','urls');
94                return $urls_anciennes($url_propre, $entite, $contexte);
95        }
96        /* Fin du bloc compatibilite url-propres */
97}
98
99?>
Note: See TracBrowser for help on using the repository browser.