summaryrefslogtreecommitdiffstats
path: root/code/links.inc.php
blob: 2eddb7758161de6e3bfdf7e778e76333fd5580ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?PHP
  require_once('code/user.inc.php');
  
  class Links {
    function GetNeonLink($page, $extra = '', $html = true) {
      if($GLOBALS['pages']->HasAccess($page, 'c')) {
        if($GLOBALS['user']->login_type == 'url')
          $ret = 'index.php?page=' . $page . '&login=' . $GLOBALS['user']->login_key
               . ($extra ? '&' . $extra : '');
        
        else
          $ret = 'index.php?page=' . $page . ($extra ? '&' . $extra : '');
        
        if($html) return htmlspecialchars($ret);
        else return $ret;
      }
      	
      return '';
    }
    
    function GetExternalLink($link) {
      return $link;
    }
    
    function GetMailtoLink($address) {
      return 'mailto:' . $address;
    }
    
    function GetNavPage($page) {
      if($GLOBALS['pages']->HasAccess($page, 'n')) {
        $page = $GLOBALS['pages']->Get($page, 'n');
        return $page['content'];
      }
      
      return '';
    }
    
    function ParseNavLink($text, $link) {
      if(!$link) return $text;
    	  
      switch($link[0]) {
        case ':':
          $ret = $this->GetNeonLink(substr($link, 1));
          
          if($ret)
            return '<a href="' . $ret . '">' . $text . '</a>';
          
          return $text;
        case '@':
          return '<a href="' . $this->GetMailtoLink(substr($link, 1)) . '">' . $text . '</a>';
        case '!':
          $ret = $this->GetNavPage(substr($link, 1));
          
          if($ret)
            return $ret;
          
          return $text;
        default:
          return '<a href="' . $this->GetExternalLink($link) . '">' . $text . '</a>';
      }
    }
  }
    
  $GLOBALS['links'] = new Links;
?>