source: spip-zone/_plugins_/court-circuit/trunk/inc/courtcircuit.php @ 53418

Last change on this file since 53418 was 53418, checked in by yffic@…, 8 years ago

if (!defined("_ECRIRE_INC_VERSION")) return; sur tout fichier PHP pour sécurité future principalement

File size: 2.0 KB
Line 
1<?php
2if (!defined("_ECRIRE_INC_VERSION")) return;
3
4function courtcircuit_url_redirection($id_rubrique) {
5        $url = '';
6        include_spip('inc/utils');
7        include_spip('inc/headers');
8        if (isset($GLOBALS['meta']['courtcircuit']))
9                $config = unserialize($GLOBALS['meta']['courtcircuit']);
10        else $config = array();
11        // Tester d'abord les variantes de squelettes (si on ne les court-circuite pas)
12        if (!isset($config['variantes_squelettes']) || $config['variantes_squelettes']=='oui') {
13                $squelette_rubrique = substr(find_in_path('rubrique.html'),0,-5);
14                $flux = array(
15                        'data' => $squelette_rubrique,
16                        'args' => array(
17                                'ext' => 'html',
18                                'id_rubrique' => $id_rubrique
19                        )
20                );
21                include_spip('public/styliser');
22                $flux = styliser_par_rubrique($flux);
23                if ($flux['data'] != $squelette_rubrique)
24                        return '';
25        }
26        // Tester ensuite si la rubrique a une composition (si on ne court-circuite pas les compositions)
27        if ((!isset($config['composition_rubrique']) || $config['composition_rubrique']=='oui') && defined('_DIR_PLUGIN_COMPOSITIONS')) {
28                if (strlen(compositions_determiner('rubrique', $id_rubrique)))
29                        return '';
30        }
31        // On teste si on doit rediriger
32        $redirect_article = recuperer_fond(
33                'courtcircuit_selection_article', 
34                array_merge(array('id_rubrique' => $id_rubrique),$config)
35                );
36        if (intval($redirect_article))
37                $url = generer_url_entite(intval($redirect_article), 'article', '', '', true);
38        else {
39                $redirect_rubrique = recuperer_fond(
40                        'courtcircuit_selection_rubrique', 
41                        array_merge(array('id_rubrique' => $id_rubrique),$config)
42                        );
43                if (intval($redirect_rubrique)) {
44                        // On applique à nouveau les règles de sélection à la sous-rubrique
45                        // Si pas de redirectio on pointe sur la sous-rubrique
46                        $redirection_sous_rubrique = courtcircuit_url_redirection(intval($redirect_rubrique));
47                        if ($redirection_sous_rubrique != '')
48                                $url = $redirection_sous_rubrique;
49                        else
50                                $url = generer_url_entite(intval($redirect_rubrique), 'rubrique', '', '', true);
51                }
52        }
53        return $url;
54}
55
56?>
Note: See TracBrowser for help on using the repository browser.