source: spip-zone/_core_/plugins/urls_etendues/urls/simple.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.2 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
13if (!defined('_ECRIRE_INC_VERSION')) return;
14
15# donner un exemple d'url pour le formulaire de choix
16define('URLS_SIMPLE_EXEMPLE', 'spip.php?page=article&id_article=12');
17
18####### modifications possibles dans ecrire/mes_options
19# on peut indiquer '.html' pour faire joli
20define ('_terminaison_urls_simple', '');
21define ('_debut_urls_simple', get_spip_script('./').'?'._SPIP_PAGE.'=');
22#######
23
24
25function _generer_url_simple($type, $id, $args = '', $ancre = '') {
26
27        if ($generer_url_externe = charger_fonction("generer_url_$type",'urls',true)) {
28                $url = $generer_url_externe($id, $args, $ancre);
29                if (NULL != $url) return $url;
30        }
31
32        $url = _debut_urls_simple . $type
33          . "&" . id_table_objet($type) . "="
34          . $id . _terminaison_urls_page;
35
36        if ($args) $args = strpos($url,'?') ? "&$args" : "?$args";
37        return _DIR_RACINE . $url . $args . ($ancre ? "#$ancre" : '');
38}
39
40// retrouve le fond et les parametres d'une URL abregee
41// le contexte deja existant est fourni dans args sous forme de tableau ou query string
42// http://code.spip.net/@urls_page_dist
43function urls_simple_dist($i, &$entite, $args = '', $ancre = '')
44{
45        if (is_numeric($i)){
46                include_spip('urls/page');
47                return _generer_url_simple($entite, $i, $args, $ancre);
48        }
49        // traiter les injections du type domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
50        if ($GLOBALS['profondeur_url']>0 AND $entite=='sommaire'){
51                return array(array(),'404');
52        }
53
54        // voir s'il faut recuperer le id_* implicite et les &debut_xx;
55        if (is_array($args))
56                $contexte = $args;
57        else
58                parse_str($args,$contexte);
59        include_spip('inc/urls');
60        $r = nettoyer_url_page($i, $contexte);
61        if ($r) {
62                array_pop($r); // nettoyer_url_page renvoie un argument de plus inutile ici
63                return $r;
64        }
65
66        if ($type = _request(_SPIP_PAGE)
67          AND $_id = id_table_objet($type)
68          AND $id = _request($_id)){
69                $contexte[$_id] = $id;
70                return array($contexte, $type, null, $type);
71        }
72
73        /*
74         * Le bloc qui suit sert a faciliter les transitions depuis
75         * le mode 'urls-propres' vers les modes 'urls-standard' et 'url-html'
76         * Il est inutile de le recopier si vous personnalisez vos URLs
77         * et votre .htaccess
78         */
79        // Si on est revenu en mode html, mais c'est une ancienne url_propre
80        // on ne redirige pas, on assume le nouveau contexte (si possible)
81        $url_propre = $i;
82        if ($url_propre) {
83                if ($GLOBALS['profondeur_url']<=0)
84                        $urls_anciennes = charger_fonction('propres','urls',true);
85                else
86                        $urls_anciennes = charger_fonction('arbo','urls',true);
87                return $urls_anciennes?$urls_anciennes($url_propre, $entite, $contexte):'';
88        }
89        /* Fin du bloc compatibilite url-propres */
90}
91
92?>
Note: See TracBrowser for help on using the repository browser.