summaryrefslogtreecommitdiffstats
path: root/code/links.inc.php
blob: c207945181f6e7f2343572fe4a30b416872c4cdf (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
<?PHP
  if(!defined('LINKS_INC')) {
    define('LINKS_INC', 1);
    
    require_once('code/user.inc.php');
    
    class Links {
      function GetNeonLink($page) {
        if($GLOBALS['pages']->HasAccess($page, 'c')) {
      	  if($GLOBALS['user']->GetLoginType() == 'url')
      	    return 'index.php?page=' . $page . '&login=' . $GLOBALS['user']->GetLoginKey();
      	  
          return 'index.php?page=' . $page;
      	}
      	
        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>';
      	}
      }
    }
    
    $links = new Links;
  }
?>