Rev 499 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
169 | tom | 1 | <?php |
2 | |||
365 | tom | 3 | function endswith($string, $test) { |
4 | $strlen = strlen($string); |
||
5 | $testlen = strlen($test); |
||
6 | if ($testlen > $strlen) return false; |
||
7 | return substr_compare($string, $test, -$testlen) === 0; |
||
8 | } |
||
9 | |||
169 | tom | 10 | require '../_taios.php'; |
496 | muzer | 11 | if (get_magic_quotes_gpc()) { |
12 | $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); |
||
13 | while (list($key, $val) = each($process)) { |
||
14 | foreach ($val as $k => $v) { |
||
15 | unset($process[$key][$k]); |
||
16 | if (is_array($v)) { |
||
17 | $process[$key][stripslashes($k)] = $v; |
||
18 | $process[] = &$process[$key][stripslashes($k)]; |
||
19 | } else { |
||
20 | $process[$key][stripslashes($k)] = stripslashes($v); |
||
21 | } |
||
22 | } |
||
23 | } |
||
24 | unset($process); |
||
25 | } |
||
224 | tom | 26 | $pageName = $_GET['page']; |
225 | tom | 27 | if (empty($pageName)) |
221 | tom | 28 | { |
224 | tom | 29 | $pageName = 'Index'; |
221 | tom | 30 | } |
169 | tom | 31 | |
522 | muzer | 32 | $page = new Taios_Page('Wiki · ' . htmlentities($pageName, ENT_QUOTES), '../'); |
365 | tom | 33 | |
34 | if (isset($_GET['random'])) |
||
35 | { |
||
36 | $results = array(); |
||
366 | tom | 37 | $handler = opendir('pages/'); |
365 | tom | 38 | while ($file = readdir($handler)) |
39 | { |
||
40 | if ($file != '.' && $file != '..' && endswith($file, ".txt")) |
||
41 | { |
||
367 | tom | 42 | $results[] = substr($file, 0, count($file) - 5); |
365 | tom | 43 | } |
44 | } |
||
45 | |||
46 | $index = rand() % count($results); |
||
47 | $result = $results[$index]; |
||
48 | $page->redirect('index.php?page=' . $result); |
||
49 | } |
||
50 | |||
227 | tom | 51 | $page->drawHeader(); |
361 | tom | 52 | write('<h3>Wiki</h3>'); |
364 | tom | 53 | $page->drawMenuItem('Index', 'wiki/index.php'); |
54 | $page->drawMenuItem('Random Page', 'wiki/index.php?random'); |
||
227 | tom | 55 | $page->drawMiddle(); |
56 | |||
228 | tom | 57 | if ($page->isUserGM($page->getLoggedInUser())) |
58 | { |
||
522 | muzer | 59 | write('<p class="bold"><a href="edit.php?page=' . htmlentities($pageName, ENT_QUOTES) . '">Edit Page</a></p><br />'); |
228 | tom | 60 | } |
61 | |||
522 | muzer | 62 | while (strpos($pageName, '../') !== false) { |
63 | $pageName = str_replace("../", "/", $pageName); |
||
64 | } |
||
486 | muzer | 65 | |
225 | tom | 66 | $filename = 'pages/' . $pageName . '.txt'; |
67 | |||
230 | tom | 68 | $fp = @fopen($filename, 'r'); |
221 | tom | 69 | if ($fp) |
70 | { |
||
226 | tom | 71 | write('<p>' . $page->replaceBBCode(fread($fp, filesize($filename))) . '</p>'); |
221 | tom | 72 | fclose($fp); |
73 | } |
||
74 | else |
||
75 | { |
||
76 | write('<p>This page is empty.</p>'); |
||
77 | } |
||
78 | |||
486 | muzer | 79 | if(is_dir('pages/' . $pageName)) |
80 | { |
||
522 | muzer | 81 | write('<p>Directory listing of ' . htmlentities($pageName, ENT_QUOTES) . ':</p>'); |
486 | muzer | 82 | write('<ul>'); |
83 | $dir = opendir('pages/' . $pageName); |
||
84 | if($dir) |
||
85 | { |
||
86 | while (($file = readdir($dir)) !== false) |
||
87 | { |
||
88 | if($file != '.' && $file != '..' && (preg_match('/\.txt$/', $file) || is_dir('pages/' . $pageName . '/' . $file))) |
||
89 | { |
||
90 | $file = preg_replace('/\.txt$/', '', $file); |
||
522 | muzer | 91 | write('<li><a href="index.php?page=' . htmlentities($pageName, ENT_QUOTES) . '/' . htmlentities($file, ENT_QUOTES) . '">' . htmlentities($file, ENT_QUOTES) . '</a></li>'); |
486 | muzer | 92 | } |
93 | } |
||
94 | } |
||
95 | write('</ul>'); |
||
96 | write('<p>End of directory listing</p>'); |
||
97 | } |
||
98 | |||
169 | tom | 99 | $page->drawFooter(); |
100 | |||
101 | ?> |
||
102 |