Dotclear

source: plugins/simpleMenu/_public.php @ 534:1f53e1c7b4c9

Revision 534:1f53e1c7b4c9, 2.0 KB checked in by Franck <carnet.franck.paul@…>, 14 years ago (diff)

Mise en place du menu par défaut (Accueil et Archives), ajout d'item, affichage de la balise

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12if (!defined('DC_RC_PATH')) { return; }
13
14# Simple menu template functions
15$core->tpl->addValue('SimpleMenu',array('tplSimpleMenu','simpleMenu'));
16
17class tplSimpleMenu
18{
19     public static function simpleMenu($attr)
20     {
21          $class = isset($attr['class']) ? trim($attr['class']) : '';
22         
23          return '<?php echo tplSimpleMenu::displayMenu('.
24                    "'".addslashes($class)."'".
25               '); ?>';
26     }
27     
28     public static function displayMenu($class)
29     {
30          $ret = '';
31
32          $menu = $GLOBALS['core']->blog->settings->system->get('simpleMenu');
33          $menu = @unserialize($menu);
34
35          if (is_array($menu)) 
36          {
37               // Current relative URL
38               $url = $_SERVER['REQUEST_URI'];
39               $abs_url = http::getHost().$url;
40         
41               // Home recognition var
42               $home_url = html::stripHostURL($GLOBALS['core']->blog->url);
43               $home_directory = dirname($home_url);
44               if ($home_directory != '/')
45                    $home_directory = $home_directory.'/';
46
47               // Menu items loop
48               foreach ($menu as $i => $m) {
49                    # $href = lien de l'item de menu
50                    $href = $m['url'];
51                    $href = html::escapeHTML($href);
52
53                    # Active item test
54                    $active = false;
55                    if (($url == $href) || 
56                         ($abs_url == $href) || 
57                         ($_SERVER['URL_REQUEST_PART'] == $href) || 
58                         (($_SERVER['URL_REQUEST_PART'] == '') && (($href == $home_url) || ($href == $home_directory)))) {
59                         $active = true;
60                    }
61                    $ret .= '<li class="li'.$i.($active ? ' active' : '').'">'.
62                              '<a href="'.$href.'">'.$m['label'].($m['descr'] ? '<span>'.$m['descr'].'</span>' : '').'</a>'.
63                              '</li>';
64               }
65               
66               // Final rendering
67               if ($ret) {
68                    $ret = '<ul class="simple-menu'.($class ? ' '.$class : '').'">'."\n".$ret."\n".'</ul>';
69               }
70          }
71
72          return $ret;
73     }
74}
75
76?>
Note: See TracBrowser for help on using the repository browser.

Sites map