source: spip-zone/_plugins_/adx_menu/spip_3/balise/adxmenu.php @ 65449

Last change on this file since 65449 was 65449, checked in by piero.wbmstr@…, 8 years ago

Evidemment !!!

  • Property svn:executable set to *
File size: 2.7 KB
Line 
1<?php
2if (!defined("_ECRIRE_INC_VERSION")) return;
3
4include_spip('base/abstract_sql');
5
6function balise_ADXMENU_dist($p) {
7    return calculer_balise_dynamique($p, ADXMENU, array('id_article', 'id_rubrique'));
8}
9
10function balise_ADXMENU_dyn($id_article=null,$id_rubrique=null,$_rub=false,$couper=30,$couper_car='.') {
11        $fond = 'adxmenu';
12        $rub = array();
13        if (empty($couper)) $couper=30;
14        if (empty($couper_car)) $couper_car='.';
15
16        // Configuration
17        $conf = function_exists('lire_config') ? lire_config('adxmenu') : false;
18        if (!$conf || !isset($conf['liste_rub'])) 
19                $conf = array('liste_rub' => tipafriend_transform_string(ADXMENU_RUB_DEFAUT));
20
21        // Parametres
22        $rub_demande = strlen(trim($_rub)) ? tipafriend_transform_string($_rub) : $conf['liste_rub'];
23        $rub_a_exclure = array();
24
25//echo '<br />arg : '.var_export($rub_demande,1);
26        // cas de "secteurs!x:y" ou "tout!x:y"
27        if (strpos($rub_demande, '!')) {
28                $_ex = explode('!', $rub_demande);
29                if (count($_ex>1)) {
30                        $rub_demande = $_ex[0];
31                        $rub_a_exclure = explode(':', tipafriend_transform_string($_ex[1]));
32                }
33        }
34
35        // explode en separant par ":"
36        if (!in_array($rub_demande, array('secteurs','tout'))) 
37                $rub_demande = explode(':', $rub_demande);
38
39//echo '<br />rub_demande : '.var_export($rub_demande,1);
40//echo '<br />rub_a_exclure : '.var_export($rub_a_exclure,1);
41
42        // Swith pour les ID rubriques
43        switch($rub_demande){
44                case 'secteurs' :
45                        $rub = tipafriend_get_secteurs( $rub_demande );
46                        break;
47                case 'tout' :
48                        $rub = tipafriend_get_tout( $rub_demande );
49                        break;
50                default :
51                        foreach($rub_demande as $k=>$id) 
52                                $rub[] = intval($id);
53                        break;
54        }
55
56        // exclusion si demande
57        if (!empty($rub_a_exclure)) {
58                foreach($rub_a_exclure as $_rubid)
59                        if (array_search($_rubid, $rub))
60                                unset($rub[array_search($_rubid, $rub)]);
61        }
62
63//echo '<br />rubs : '.var_export($rub,1);
64
65        // Renvoi du calcul du squelette
66        $contexte = array( 
67                'lang' => $GLOBALS['spip_lang'], 
68                'fond' => 'modeles/'.$fond,
69                'dir_racine' => _DIR_RACINE,
70                'adx_rub' => $rub,
71                'couper' => $couper,
72                'couper_car' => $couper_car,
73                'id_rubrique' => $id_rubrique,
74                'id_article' => $id_article
75        ); 
76        echo recuperer_fond('modeles/'.$fond, $contexte);
77}
78
79function tipafriend_get_secteurs( $str ) 
80{
81        $rub = array();
82        $req = sql_select("id_secteur", "spip_rubriques");
83        if(sql_count($req) > 0)
84                while($row=spip_fetch_array($req))
85                        $rub[] = $row['id_secteur'];
86        return $rub;
87}
88
89function tipafriend_get_tout( $str ) 
90{
91        $rub = array();
92        $req = sql_select("id_rubrique", "spip_rubriques");
93        if(sql_count($req) > 0)
94                while($row=spip_fetch_array($req))
95                        $rub[] = $row['id_rubrique'];
96        return $rub;
97}
98
99function tipafriend_transform_string( $str ) 
100{
101        return str_replace(array(',', ';', '.', ' ', '/', ':', '\'', '"'), ':', trim($str));
102}
103
104?>
Note: See TracBrowser for help on using the repository browser.