Example #1
0
 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;
 }
Example #2
0
 function domID()
 {
     return 'post-' . $this->published->utcformat('%Y-%m-%d-') . gb_strtodomid($this->slug);
 }