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

Last change on this file since 51984 was 51984, checked in by joseph@…, 10 years ago

Ajout de la règle sur les compositions des rubriques, Possibilité d'activer ou non la surcharge d'#URL_RUBRIQUE, réorganisation du formulaire de config, modif des valeurs par défaut pour reproduire V1

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