gb_admin::render_menu PHP Méthode

render_menu() public méthode

public render_menu ( $menu_disabled = false, $items = null, $baseurl = null, $currurlpath = null, $liststart = '<ul>', $listend = '</ul>' )
    function render_menu($menu_disabled = false, $items = null, $baseurl = null, $currurlpath = null, $liststart = '<ul>', $listend = '</ul>')
    {
        if ($items === null) {
            $items = self::$menu;
        }
        if ($baseurl === null) {
            $baseurl = gb_admin::$url;
        }
        if ($currurlpath === null) {
            $currurlpath = gb::url()->path;
        }
        $accesskey_prefix = '';
        $is_osx = isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'Mac OS X') !== false;
        if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') !== false) {
            if ($is_osx) {
                $accesskey_prefix = '&#x2303;&#x2325;';
            }
        }
        $s = $liststart;
        foreach ($items as $k => $item) {
            $uri = $url = '';
            $is_curr = $is_todo = false;
            $accesskey = is_string($k) ? strtoupper($k) : '';
            if (isset($item[1]) && is_string($item[1])) {
                $uri = $item[1];
                $url = $uri && ($uri[0] === '/' || strpos($uri, '://') !== false) ? $uri : $baseurl . $uri;
                $url_st = GBURL::parse($url);
                $actual_currpath = $url_st->path;
                $is_todo = strpos($url_st->fragment, 'todo:') === 0;
                $is_curr = !$is_todo && $actual_currpath === substr($currurlpath, 0, strlen($actual_currpath));
                if ($uri === '') {
                    $is_curr = gb::url()->path === GBURL::parse(gb_admin::$url)->path;
                }
            }
            $dom_id = $uri ? gb_strtodomid(gb_filenoext($item[1])) : $k;
            $s .= '<li id="menu-item-' . $dom_id . '"';
            $css_class = '';
            if ($is_curr) {
                $css_class .= 'selected';
                self::$current_domid = $dom_id;
            }
            if ($is_todo) {
                $css_class .= ' todo';
            }
            if ($css_class) {
                $s .= ' class="' . $css_class . '"';
            }
            $s .= '><a';
            if ($url && !$is_todo && !$menu_disabled) {
                $s .= ' href="' . h($url) . '"';
            }
            if ($accesskey && !$menu_disabled) {
                $s .= ' accesskey="' . $accesskey . '"';
            }
            $s .= '><span class="title">' . h($item[0]) . '</span>';
            if ($accesskey && !$menu_disabled) {
                $s .= '<span class="accesskey-hint">' . $accesskey_prefix . $accesskey . '</span>';
            }
            $s .= '</a>';
            if (isset($item[2]) && $item[2]) {
                $s .= self::render_menu($menu_disabled, $item[2], $baseurl, $currurlpath, $liststart, $listend);
            }
            $s .= '</li>';
        }
        $s .= $listend;
        return $s;
    }

Usage Example

Exemple #1
0
					title="Hide this message"><span>X</span></a>
				<div class="icon"></div>
				<ul>
					<li class="title">
						<?php 
echo count(gb::$errors) === 1 ? 'An error occured' : counted(count(gb::$errors), '', 'errors occured');
?>
					</li>
				<?php 
foreach (gb::$errors as $error) {
    ?>
					<li><?php 
    echo h($error);
    ?>
</li>
				<?php 
}
?>
				</ul>
			</div>
		</div>
		<div id="menu" <?php 
if ($integrity == 2) {
    echo 'class="disabled"';
}
?>
>
			<?php 
echo gb_admin::render_menu($integrity == 2);
?>
		</div>