[SPIP] ~maj v3.0.14-->v3.0.17
[ptitvelo/web/www.git] / www / plugins-dist / urls_etendues / urls / standard.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
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 ## type d'URLs obsolete
15 ## depuis la 3.0.17 on ne la propose plus dans le menu de configuration
16 ## fichier sans doute à supprimer en 3.1
17
18 if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
19
20 # donner un exemple d'url pour le formulaire de choix
21 define('URLS_STANDARD_EXEMPLE', 'article.php3?id_article=12');
22
23 if (!function_exists('generer_url_article')) { // si la place n'est pas prise
24
25 // http://doc.spip.org/@generer_url_article
26 function generer_url_article($id_article) {
27 return _DIR_RACINE . "article.php3?id_article=$id_article";
28 }
29
30 // http://doc.spip.org/@generer_url_rubrique
31 function generer_url_rubrique($id_rubrique) {
32 return _DIR_RACINE . "rubrique.php3?id_rubrique=$id_rubrique";
33 }
34
35 // http://doc.spip.org/@generer_url_breve
36 function generer_url_breve($id_breve) {
37 return _DIR_RACINE . "breve.php3?id_breve=$id_breve";
38 }
39
40 // http://doc.spip.org/@generer_url_mot
41 function generer_url_mot($id_mot) {
42 return _DIR_RACINE . "mot.php3?id_mot=$id_mot";
43 }
44
45 // http://doc.spip.org/@generer_url_site
46 function generer_url_site($id_syndic) {
47 return _DIR_RACINE . "site.php3?id_syndic=$id_syndic";
48 }
49
50 // http://doc.spip.org/@generer_url_auteur
51 function generer_url_auteur($id_auteur) {
52 return _DIR_RACINE . "auteur.php3?id_auteur=$id_auteur";
53 }
54
55 // http://doc.spip.org/@generer_url_document
56 function generer_url_document($id_document) {
57 $generer_url_document = charger_fonction("generer_url_document","urls");
58 return $generer_url_document($id_document);
59 }
60
61 // http://doc.spip.org/@recuperer_parametres_url
62 function recuperer_parametres_url(&$fond, $url) {
63 global $contexte;
64
65 // traiter les injections du type domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
66 if ($GLOBALS['profondeur_url']>0 AND $fond=='sommaire'){
67 $fond = '404';
68 }
69
70 /*
71 * Le bloc qui suit sert a faciliter les transitions depuis
72 * le mode 'urls-propres' vers les modes 'urls-standard' et 'url-html'
73 * Il est inutile de le recopier si vous personnalisez vos URLs
74 * et votre .htaccess
75 */
76 // Si on est revenu en mode html, mais c'est une ancienne url_propre
77 // on ne redirige pas, on assume le nouveau contexte (si possible)
78 $url_propre = isset($_SERVER['REDIRECT_url_propre']) ?
79 $_SERVER['REDIRECT_url_propre'] :
80 (isset($_ENV['url_propre']) ?
81 $_ENV['url_propre'] :
82 '');
83
84 include_spip('inc/urls');
85 $objets = urls_liste_objets();
86 if ($url_propre
87 AND preg_match(",^($objets|type_urls|404)$,",$fond)) {
88 if ($GLOBALS['profondeur_url']<=0)
89 $urls_anciennes = charger_fonction('propres','urls');
90 else
91 $urls_anciennes = charger_fonction('arbo','urls');
92 $p = $urls_anciennes($url_propre,$fond,$contexte);
93 $contexte = $p[0];
94 }
95 /* Fin du bloc compatibilite url-propres */
96
97 /* Compatibilite urls-page */
98 else if ($GLOBALS['profondeur_url']<=0
99 AND preg_match(
100 ',[?/&]('.$objets.')[=]?([0-9]+),',
101 $url, $r)) {
102 $fond = $r[1];
103 $contexte[id_table_objet($r[1])] = $r[2];
104 }
105 /* Fin compatibilite urls-page */
106
107 return;
108 }
109
110 //
111 // le format de definition obsolete oblige a referencer explicitement les forums
112 // on prevoit leur inexistence possible par un test sur charger_fonction
113 // http://doc.spip.org/@generer_url_forum
114 function generer_url_forum($id, $show_thread=false) {
115 if ($generer_url_externe = charger_fonction("generer_url_forum",'urls',true))
116 return $generer_url_externe($id, $args, $ancre);
117 return '';
118 }
119 }
120 ?>