/photos/rss.php |
---|
0,0 → 1,76 |
<?php |
require '../_taios.php'; |
header("Content-type: application/rss+xml"); |
$page = new Taios_Page('Photos RSS Feed', '../'); |
$dirName = $_GET['dir']; |
if (empty($dirName)) |
{ |
$dirName = "Lassitor"; |
} |
write('<?xml version="1.0" encoding="UTF-8" ?>'); |
write('<rss version="2.0">'); |
write('<channel>'); |
write('<title>Tim32 Photo RSS ' . $dirName . '</title>'); |
write('<description>This is the RSS feed for the Tim32 Photos.</description>'); |
write('<link>http://tim32.org/photos/album.php?dir=' . $dirName . '</link>'); |
$directory = "albums/" . $dirName . "/"; |
$sortOrder = "newestFirst"; |
$results = array(); |
$handler = opendir($directory); |
while ($file = readdir($handler)) |
{ |
if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess" && getimagesize($directory . $file)) |
{ |
$currentModified = filectime($directory . $file); |
$file_names[] = $file; |
$file_dates[] = $currentModified; |
} |
} |
closedir($handler); |
if ($sortOrder == "newestFirst") |
{ |
arsort($file_dates); |
} |
else |
{ |
asort($file_dates); |
} |
$file_names_Array = array_keys($file_dates); |
foreach ($file_names_Array as $idx => $name) $name=$file_names[$name]; |
$file_dates = array_merge($file_dates); |
$indexInArray = 0; |
foreach ($file_dates as $date) |
{ |
$j = $file_names_Array[$indexInArray]; |
$file = $file_names[$j]; |
$filename = $directory . $file; |
write('<item>'); |
write('<title>' . $file . '</title>'); |
write('<link>http://tim32.org/photos/' . $filename . '</link>'); |
write('<guid>' . $indexInArray . '</guid>'); |
write('<pubDate>' . date('D, d M Y H:i:s O', $date). '</pubDate>'); |
write('<description><img src="' . $filename . '" /></description>'); |
write('</item>'); |
$indexInArray++; |
} |
write('</channel>'); |
write('</rss>'); |
?> |
/photos/album.php |
---|
0,0 → 1,112 |
<?php |
require '../_taios.php'; |
function getImageSizes($sourceImageFilePath, $maxResizeWidth, $maxResizeHeight) { |
$size = getimagesize($sourceImageFilePath); |
$origWidth = $size[0]; |
$origHeight = $size[1]; |
$resizedWidth = $origWidth; |
$resizedHeight = $origHeight; |
if ($resizedWidth > $maxResizeWidth) |
{ |
$aspectRatio = $maxResizeWidth / $resizedWidth; |
$resizedWidth = round($aspectRatio * $resizedWidth); |
$resizedHeight = round($aspectRatio * $resizedHeight); |
} |
if ($resizedHeight > $maxResizeHeight) |
{ |
$aspectRatio = $maxResizeHeight / $resizedHeight; |
$resizedWidth = round($aspectRatio * $resizedWidth); |
$resizedHeight = round($aspectRatio * $resizedHeight); |
} |
return array($resizedWidth, $resizedHeight); |
} |
$page = new Taios_Page('Photo Albums', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$dirName = $_GET['dir']; |
if (empty($dirName)) |
{ |
$page->redirect('index.php'); |
} |
write('<p class="bold"><a href="index.php">Back to Photos</a></p><br />'); |
if (file_exists("albums/" . $dirName . "/description.txt")) |
{ |
write('<p>' . $page->replaceBBCode(file_get_contents("albums/" . $dirName . "/description.txt")) . '</p><br />'); |
} |
write('<table>'); |
write('<tr>'); |
$directory = "albums/" . $dirName . "/"; |
$sortOrder = "newestFirst"; |
$results = array(); |
$handler = opendir($directory); |
while ($file = readdir($handler)) |
{ |
if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess" && getimagesize($directory . $file)) |
{ |
$currentModified = filectime($directory . $file); |
$file_names[] = $file; |
$file_dates[] = $currentModified; |
} |
} |
closedir($handler); |
if ($sortOrder == "newestFirst") |
{ |
arsort($file_dates); |
} |
else |
{ |
asort($file_dates); |
} |
$file_names_Array = array_keys($file_dates); |
foreach ($file_names_Array as $idx => $name) $name=$file_names[$name]; |
$file_dates = array_merge($file_dates); |
$i = 0; |
$indexInArray = 0; |
$i = 0; |
foreach ($file_dates as $$file_dates) |
{ |
$j = $file_names_Array[$indexInArray]; |
$file = $file_names[$j]; |
if ($i >= 3) |
{ |
write('</tr><tr>'); |
$i = 0; |
} |
$filename = $directory . $file; |
$size = getImageSizes($filename, 280, 260); |
write('<td><a href="' . str_replace(" ", "%20", $filename) . '"><img width="' . $size[0] . '" height="' . $size[1] . '" src="' . str_replace(" ", "%20", $filename) . '" /></a></td>'); |
$i++; |
$indexInArray++; |
} |
write('</tr>'); |
write('</table>'); |
$page->drawFooter(); |
?> |
/photos/index.php |
---|
0,0 → 1,31 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Photo Albums', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
write('<p>Here we have all sorts of photos from Tim32.</p><br />'); |
$dirs = array(); |
$dir = dir('albums/'); |
while (($file = $dir->read()) !== false) |
{ |
array_push($dirs, $file); |
} |
asort($dirs); |
foreach ($dirs as $file) |
{ |
if ($file[0] != '.') |
{ |
write('<p><a href="album.php?dir=' . $file . '">' . $file . '</a></p>'); |
} |
} |
$page->drawFooter(); |
?> |
/photos/albums/Lassitor/Lassitor.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/photos/albums/Lassitor/Lassitor.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: photos/albums/Lassitor/Lassitor-3d.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: photos/albums/Lassitor/Lassitor-3d.png |
=================================================================== |
--- photos/albums/Lassitor/Lassitor-3d.png (nonexistent) |
+++ photos/albums/Lassitor/Lassitor-3d.png (revision 439) |
/photos/albums/Lassitor/Lassitor-3d.png | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Property changes: | ||||||||||||||||||||||||||||||||
Added: svn:mime-type | ||||||||||||||||||||||||||||||||
## -0,0 +1 ## | ||||||||||||||||||||||||||||||||
+application/octet-stream | ||||||||||||||||||||||||||||||||
\ No newline at end of property | ||||||||||||||||||||||||||||||||
Index: _taios.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- _taios.php (revision 1) | ||||||||||||||||||||||||||||||||
+++ _taios.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -1,290 +1,584 @@ | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-class Taios_Page | ||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||
- function __construct($title, $url = "") | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $this->title = $title; | ||||||||||||||||||||||||||||||||
- $this->url = $url; | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- $this->drawnHeader = false; | ||||||||||||||||||||||||||||||||
- $this->drawnMiddle = false; | ||||||||||||||||||||||||||||||||
- $this->drawnFooter = false; | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- $this->db = mysql_connect('localhost', 'root', 'puppylinux'); | ||||||||||||||||||||||||||||||||
- if (!$this->db) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $this->drawError('Failed to connect to database: ' . mysql_error()); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- if (!mysql_select_db('Tim32')) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $this->drawError('Failed to select database: ' . mysql_error()); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function drawHeader() | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if (!$this->drawnHeader) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(' | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(' | ||||||||||||||||||||||||||||||||
- write(' | ||||||||||||||||||||||||||||||||
- write('Tim32'); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(' | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Home', 'index.php'); | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Blog', 'blog/'); | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Projects', 'projects/'); | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Forums', 'forums/'); | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Wiki', 'wiki/'); | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Photos', 'photos/'); | ||||||||||||||||||||||||||||||||
- write(' '); | ||||||||||||||||||||||||||||||||
- if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Manage Account', 'admim/?id=' . $this->getLoggedInUser()->ID); | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Logout', 'logout-do.php'); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- else | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Login', 'login.php'); | ||||||||||||||||||||||||||||||||
- $this->drawMenuItem('Register', 'register.php'); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- write(' '); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- $this->drawnHeader = true; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function drawMenuItem($t, $u) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function drawMiddle() | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if (!$this->drawnMiddle) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- write(' '); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(' '); | ||||||||||||||||||||||||||||||||
- write('' . $this->title . ''); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- $this->drawnMiddle = true; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function drawFooter() | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if (!$this->drawnFooter) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- $this->drawnFooter = true; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- die(); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function drawError($text, $die = true) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $this->drawHeader(); | ||||||||||||||||||||||||||||||||
- $this->drawMiddle(); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- write('Error: ' . $text . ''); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- if ($die) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $this->drawFooter(); | ||||||||||||||||||||||||||||||||
- die(); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function redirect($url) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- header('Location: ' . $url); | ||||||||||||||||||||||||||||||||
- die(); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function isLoggedIn() | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $cookie = $_COOKIE['Tim32_Login']; | ||||||||||||||||||||||||||||||||
- if (!empty($cookie)) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $clist = explode('|~|', $cookie); | ||||||||||||||||||||||||||||||||
- $user = $this->getUserByUsername($clist[0]); | ||||||||||||||||||||||||||||||||
- if ($user) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if ($user->password == $clist[1]) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- return true; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return false; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function isUserAdmin() | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if ($this->getLoggedInUser()->accessID <= 0) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- return true; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return false; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function isUserGM() | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if ($this->getLoggedInUser()->accessID <= 1) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- return true; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return false; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function isUserNormal() | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if ($this->getLoggedInUser()->accessID <= 2) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- return true; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return false; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function query($query) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $result = mysql_query($query); | ||||||||||||||||||||||||||||||||
- if (!$result) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $this->drawError('MySQL Error: ' . mysql_error()); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return $result; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function findIDs($table, $query = '') | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $array = array(); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- $result = $this->query('SELECT ID FROM ' . $table . ' ' . $query); | ||||||||||||||||||||||||||||||||
- while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- array_push($array, $row['ID']); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return $array; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function getUserByID($id) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $result = $this->query('SELECT * FROM Users WHERE ID = ' . $id); | ||||||||||||||||||||||||||||||||
- while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $user = new User; | ||||||||||||||||||||||||||||||||
- $user->ID = $row['ID']; | ||||||||||||||||||||||||||||||||
- $user->accessID = $row['AccessID']; | ||||||||||||||||||||||||||||||||
- $user->username = $row['Username']; | ||||||||||||||||||||||||||||||||
- $user->password = $row['Password']; | ||||||||||||||||||||||||||||||||
- $user->emailAddress = $row['EmailAddress']; | ||||||||||||||||||||||||||||||||
- $user->name = $row['Name']; | ||||||||||||||||||||||||||||||||
- $user->challengeID = $row['ChallengeID']; | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return $user; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return false; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function getUserByUsername($username) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $result = $this->query('SELECT * FROM Users WHERE Username = "' . $username . '"'); | ||||||||||||||||||||||||||||||||
- while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- return $this->getUserByID($row['ID']); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return false; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function getLoggedInUser() | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $clist = explode('|~|', $_COOKIE['Tim32_Login']); | ||||||||||||||||||||||||||||||||
- return $this->getUserByUsername($clist[0]); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return false; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- function getBlogPost($id) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $result = $this->query('SELECT * FROM BlogPosts WHERE ID = ' . $id); | ||||||||||||||||||||||||||||||||
- while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
- { | ||||||||||||||||||||||||||||||||
- $post = new BlogPost; | ||||||||||||||||||||||||||||||||
- $post->ID = $row['ID']; | ||||||||||||||||||||||||||||||||
- $post->user = $this->getUserByID($row['AuthorID']); | ||||||||||||||||||||||||||||||||
- $post->title = $row['Title']; | ||||||||||||||||||||||||||||||||
- $post->content = $row['Content']; | ||||||||||||||||||||||||||||||||
- $post->datePosted = strtotime($row['DatePosted']); | ||||||||||||||||||||||||||||||||
- $post->category = $row['Category']; | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- return $post; | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- $this->drawError('Cannot find blog post, #' . $id); | ||||||||||||||||||||||||||||||||
- } | ||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-class User | ||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||
- public $ID; | ||||||||||||||||||||||||||||||||
- public $accessID; | ||||||||||||||||||||||||||||||||
- public $username; | ||||||||||||||||||||||||||||||||
- public $password; | ||||||||||||||||||||||||||||||||
- public $emailAddress; | ||||||||||||||||||||||||||||||||
- public $name; | ||||||||||||||||||||||||||||||||
- public $challengeID; | ||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-class BlogPost | ||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||
- public $ID; | ||||||||||||||||||||||||||||||||
- public $author; | ||||||||||||||||||||||||||||||||
- public $title; | ||||||||||||||||||||||||||||||||
- public $content; | ||||||||||||||||||||||||||||||||
- public $datePosted; | ||||||||||||||||||||||||||||||||
- public $category; | ||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-function write($str) | ||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||
- echo $str; | ||||||||||||||||||||||||||||||||
- echo "\n"; | ||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '_config.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+class Taios_Page | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ function __construct($title, $url = "") | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->title = $title; | ||||||||||||||||||||||||||||||||
+ $this->url = $url; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $this->drawnHeader = false; | ||||||||||||||||||||||||||||||||
+ $this->drawnMiddle = false; | ||||||||||||||||||||||||||||||||
+ $this->drawnFooter = false; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $this->db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD); | ||||||||||||||||||||||||||||||||
+ if (!$this->db) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawError('Failed to connect to database: ' . mysql_error()); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ if (!mysql_select_db('Tim32')) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawError('Failed to select database: ' . mysql_error()); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function drawHeader() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if (!$this->drawnHeader) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ write('Tim32'); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Home', 'index.php'); | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Blog', 'blog/'); | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Projects', 'projects/'); | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Forums', 'forums/'); | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Wiki', 'wiki/'); | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Photos', 'photos/'); | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+ if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Administration', 'admin/'); | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Logout', 'logout-do.php'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Login', 'login.php'); | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem('Register', 'register.php'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $this->drawnHeader = true; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function drawMenuItem($t, $u) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function drawMiddle() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if (!$this->drawnMiddle) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+ write('' . $this->title . ''); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $this->drawnMiddle = true; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function drawFooter() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if (!$this->drawnFooter) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ write(' © 2011 Tim32 · HTML5 Valid '); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $this->drawnFooter = true; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ die(); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function drawError($text, $die = true) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawHeader(); | ||||||||||||||||||||||||||||||||
+ $this->drawMiddle(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ write('Error: ' . $text . ''); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ if ($die) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawFooter(); | ||||||||||||||||||||||||||||||||
+ die(); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function drawBlogPostTree($id, $first = false) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $post = $this->getBlogPost($id); | ||||||||||||||||||||||||||||||||
+ if ($first) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ write('' . $post->title. ' ^'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ write('' . $post->title. ''); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ write('Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . $post->user->name . ' (' . $post->user->username . ')'); | ||||||||||||||||||||||||||||||||
+ write(' ' . $this->replaceBBCode($post->content) . ' '); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ if ($this->isUserNormal($this->getLoggedInUser())) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ echo ' | ||||||||||||||||||||||||||||||||
+ if ($this->isUserAdmin($this->getLoggedInUser()) || $this->getLoggedInUser()->ID == $post->author->ID) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ echo ' · Edit Post'; | ||||||||||||||||||||||||||||||||
+ echo ' · Delete Post'; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $ids = $this->findIDs('BlogPosts', 'WHERE ParentID=' . $id); | ||||||||||||||||||||||||||||||||
+ for ($i = 0; $i < count($ids); $i++) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+ $this->drawBlogPostTree($ids[$i]); | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function drawBlogCategoriesMenu() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $cats = array(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $ids = $this->findIDs('BlogPosts', 'WHERE ParentID = -1'); | ||||||||||||||||||||||||||||||||
+ for ($i = 0; $i < count($ids); $i++) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $cat = $this->getBlogPost($ids[$i])->category; | ||||||||||||||||||||||||||||||||
+ if (!in_array($cat, $cats)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ array_push($cats, $cat); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ write('Categories'); | ||||||||||||||||||||||||||||||||
+ for ($i = 0; $i < count($cats); $i++) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawMenuItem($cats[$i], 'blog/index.php?cat=' . $cats[$i]); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function replaceBBCode($str) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ /*$newstrarray = explode("\n", $str); | ||||||||||||||||||||||||||||||||
+ $newstr = ""; | ||||||||||||||||||||||||||||||||
+ foreach ($newstrarray as $line) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($line == "\n" || $line == " \n" || $line == "\n " || $line == "\n\r") | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $line = " "; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $newstr .= ($line . "\n"); | ||||||||||||||||||||||||||||||||
+ }*/ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $newstr = $str; | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace("<", "[", $newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(">", "]", $newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace("\n", " ", $newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace("\\'", "'", $newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace("\\\"",'"', $newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' ', ' ', $newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :)', ' ', $newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :p', ' ', $newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :P', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :|', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :D', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' =D', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :(', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :0', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :o', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :O', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' :/', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ $newstr = str_replace(' ;)', ' ',$newstr); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $bbcode = array( | ||||||||||||||||||||||||||||||||
+ '/\[b\](.+?)\[\/b\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[i\](.+?)\[\/i\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[u\](.+?)\[\/u\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[url\](.+?)\[\/url\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[url=(.+?)\](.+?)\[\/url\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[code\](.+?)\[\/code\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[img\](.+?)\[\/img\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[ul\](.+?)\[\/ul\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[ol\](.+?)\[\/ol\]/is', | ||||||||||||||||||||||||||||||||
+ '/\[li\](.+?)\[\/li\]/is' | ||||||||||||||||||||||||||||||||
+ ); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $html = array( | ||||||||||||||||||||||||||||||||
+ '$1', | ||||||||||||||||||||||||||||||||
+ '$1', | ||||||||||||||||||||||||||||||||
+ '$1', | ||||||||||||||||||||||||||||||||
+ '$1', | ||||||||||||||||||||||||||||||||
+ '$2', | ||||||||||||||||||||||||||||||||
+ ' $1 ', | ||||||||||||||||||||||||||||||||
+ '', | ||||||||||||||||||||||||||||||||
+ '
| ||||||||||||||||||||||||||||||||
+ '
| ||||||||||||||||||||||||||||||||
+ ' | ||||||||||||||||||||||||||||||||
+ ); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $newstr = preg_replace($bbcode, $html, $newstr); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $newstr; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function redirect($u) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ header('Location: ' . $u); | ||||||||||||||||||||||||||||||||
+ die(); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function isLoggedIn() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $cookie = $_COOKIE['Tim32_Login']; | ||||||||||||||||||||||||||||||||
+ if (!empty($cookie)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $clist = explode('|~|', $cookie); | ||||||||||||||||||||||||||||||||
+ $user = $this->getUserByUsername($clist[0]); | ||||||||||||||||||||||||||||||||
+ if ($user) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($user->password == $clist[1]) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ return true; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function isUserAdmin() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($this->getLoggedInUser()->accessID <= 0) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ return true; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function isUserGM() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($this->getLoggedInUser()->accessID <= 1) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ return true; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function isUserNormal() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($this->getLoggedInUser()->accessID <= 2) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ return true; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function checkChallengeStatus($challengeID, $previous, $next) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $currentChallengeID = $this->getLoggedInUser()->challengeID; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ if (!$this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->redirect('index.php'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else if ($currentChallengeID > $challengeID) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->redirect($next . '.php'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else if ($currentChallengeID < $challengeID) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->redirect($previous . '.php'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function checkLoggedIn() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if (!$this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawError('You need to be logged in.'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function query($query) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $result = mysql_query($query); | ||||||||||||||||||||||||||||||||
+ if (!$result) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->drawError('Query Failed: ' . $query . "\n" . 'MySQL Error: ' . mysql_error()); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $result; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function findIDs($table, $query = '') | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $array = array(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $result = $this->query('SELECT ID FROM ' . $table . ' ' . $query); | ||||||||||||||||||||||||||||||||
+ while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ array_push($array, $row['ID']); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $array; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getUserByID($id) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $result = $this->query('SELECT * FROM Users WHERE ID = ' . $id); | ||||||||||||||||||||||||||||||||
+ while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $user = new User; | ||||||||||||||||||||||||||||||||
+ $user->ID = $row['ID']; | ||||||||||||||||||||||||||||||||
+ $user->accessID = $row['AccessID']; | ||||||||||||||||||||||||||||||||
+ $user->username = $row['Username']; | ||||||||||||||||||||||||||||||||
+ $user->password = $row['Password']; | ||||||||||||||||||||||||||||||||
+ $user->emailAddress = $row['EmailAddress']; | ||||||||||||||||||||||||||||||||
+ $user->name = $row['Name']; | ||||||||||||||||||||||||||||||||
+ $user->challengeID = $row['ChallengeID']; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $user; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getUserByUsername($username) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $result = $this->query('SELECT * FROM Users WHERE Username = "' . $username . '"'); | ||||||||||||||||||||||||||||||||
+ while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ return $this->getUserByID($row['ID']); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getLoggedInUser() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($this->isLoggedIn()) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $clist = explode('|~|', $_COOKIE['Tim32_Login']); | ||||||||||||||||||||||||||||||||
+ return $this->getUserByUsername($clist[0]); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getBlogPost($id) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $result = $this->query('SELECT * FROM BlogPosts WHERE ID = ' . $id); | ||||||||||||||||||||||||||||||||
+ while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $post = new BlogPost; | ||||||||||||||||||||||||||||||||
+ $post->ID = $row['ID']; | ||||||||||||||||||||||||||||||||
+ if ($row['ParentID'] == -1) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $post->parent = -1; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $post->parent = $this->getBlogPost($row['ParentID']); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ $post->author = $this->getUserByID($row['AuthorID']); | ||||||||||||||||||||||||||||||||
+ $post->user = $this->getUserByID($row['AuthorID']); // For some older pages | ||||||||||||||||||||||||||||||||
+ $post->title = $row['Title']; | ||||||||||||||||||||||||||||||||
+ $post->content = $row['Content']; | ||||||||||||||||||||||||||||||||
+ $post->datePosted = strtotime($row['DatePosted']); | ||||||||||||||||||||||||||||||||
+ $post->category = $row['Category']; | ||||||||||||||||||||||||||||||||
+ $post->spam = $row['Spam']; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $post; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $this->drawError('Cannot find blog post, #' . $id); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getProject($id) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $result = $this->query('SELECT * FROM Projects WHERE ID = ' . $id); | ||||||||||||||||||||||||||||||||
+ while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $project = new Project; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $project->ID = $row['ID']; | ||||||||||||||||||||||||||||||||
+ $project->author = $this->getUserByID($row['AuthorID']); | ||||||||||||||||||||||||||||||||
+ $project->title = $row['Title']; | ||||||||||||||||||||||||||||||||
+ $project->description = $row['Description']; | ||||||||||||||||||||||||||||||||
+ $project->logoURL = $row['LogoURL']; | ||||||||||||||||||||||||||||||||
+ $project->downloadURL = $row['DownloadURL']; | ||||||||||||||||||||||||||||||||
+ $project->websiteURL = $row['WebsiteURL']; | ||||||||||||||||||||||||||||||||
+ $project->latestVersion = $row['LatestVersion']; | ||||||||||||||||||||||||||||||||
+ $project->lastUpdate = strtotime($row['LastUpdate']); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $project; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getForumCategory($id) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $result = $this->query('SELECT * FROM ForumCategories WHERE ID = ' . $id); | ||||||||||||||||||||||||||||||||
+ while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $f = new ForumCategory; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $f->ID = $row['ID']; | ||||||||||||||||||||||||||||||||
+ $f->parent = $this->getForumCategory($row['ParentID']); | ||||||||||||||||||||||||||||||||
+ $f->title = $row['Title']; | ||||||||||||||||||||||||||||||||
+ $f->description = $row['Description']; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $f; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getForumPost($id) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $result = $this->query('SELECT * FROM ForumPosts WHERE ID = ' . $id); | ||||||||||||||||||||||||||||||||
+ while ($row = mysql_fetch_array($result)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $f = new ForumPost; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $f->ID = $row['ID']; | ||||||||||||||||||||||||||||||||
+ $f->author = $this->getUserByID($row['AuthorID']); | ||||||||||||||||||||||||||||||||
+ $f->category = $this->getForumCategory($row['CategoryID']); | ||||||||||||||||||||||||||||||||
+ $f->parent = $this->getForumPost($row['ParentID']); | ||||||||||||||||||||||||||||||||
+ $f->title = $row['Title']; | ||||||||||||||||||||||||||||||||
+ $f->content = $row['Content']; | ||||||||||||||||||||||||||||||||
+ $f->datePosted = strtotime($row['DatePosted']); | ||||||||||||||||||||||||||||||||
+ $f->spam = $row['Spam']; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $f; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function delBlogPost($id) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $ids = $this->findIDs('BlogPosts', 'WHERE ParentID=' . $id); | ||||||||||||||||||||||||||||||||
+ for ($i = 0; $i < count($ids); $i++) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $this->delBlogPost($ids[$i]); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $this->query('DELETE FROM BlogPosts WHERE ID=' . $id); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getGetID() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $id = $_GET['id']; | ||||||||||||||||||||||||||||||||
+ if (empty($id)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $id = 1; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $id; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ function getPostID() | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $id = $_POST['id']; | ||||||||||||||||||||||||||||||||
+ if (empty($id)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $id = 1; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ return $id; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+class User | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ public $ID; | ||||||||||||||||||||||||||||||||
+ public $accessID; | ||||||||||||||||||||||||||||||||
+ public $username; | ||||||||||||||||||||||||||||||||
+ public $password; | ||||||||||||||||||||||||||||||||
+ public $emailAddress; | ||||||||||||||||||||||||||||||||
+ public $name; | ||||||||||||||||||||||||||||||||
+ public $challengeID; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+class BlogPost | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ public $ID; | ||||||||||||||||||||||||||||||||
+ public $parent; | ||||||||||||||||||||||||||||||||
+ public $author; | ||||||||||||||||||||||||||||||||
+ public $title; | ||||||||||||||||||||||||||||||||
+ public $content; | ||||||||||||||||||||||||||||||||
+ public $datePosted; | ||||||||||||||||||||||||||||||||
+ public $category; | ||||||||||||||||||||||||||||||||
+ public $spam; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+class Project | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ public $ID; | ||||||||||||||||||||||||||||||||
+ public $author; | ||||||||||||||||||||||||||||||||
+ public $title; | ||||||||||||||||||||||||||||||||
+ public $description; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ public $logoURL; | ||||||||||||||||||||||||||||||||
+ public $downloadURL; | ||||||||||||||||||||||||||||||||
+ public $websiteURL; | ||||||||||||||||||||||||||||||||
+ public $latestVersion; | ||||||||||||||||||||||||||||||||
+ public $lastUpdate; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+class ForumCategory | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ public $ID; | ||||||||||||||||||||||||||||||||
+ public $parent; | ||||||||||||||||||||||||||||||||
+ public $title; | ||||||||||||||||||||||||||||||||
+ public $description; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+class ForumPost | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ public $id; | ||||||||||||||||||||||||||||||||
+ public $author; | ||||||||||||||||||||||||||||||||
+ public $category; | ||||||||||||||||||||||||||||||||
+ public $parent; | ||||||||||||||||||||||||||||||||
+ public $title; | ||||||||||||||||||||||||||||||||
+ public $content; | ||||||||||||||||||||||||||||||||
+ public $datePosted; | ||||||||||||||||||||||||||||||||
+ public $spam; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+function write($str) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ echo $str; | ||||||||||||||||||||||||||||||||
+ echo "\n"; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
Index: blog/rss.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- blog/rss.php (nonexistent) | ||||||||||||||||||||||||||||||||
+++ blog/rss.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,34 @@ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+header("Content-type: application/rss+xml"); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Blog RSS Feed', '../'); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+write(''); | ||||||||||||||||||||||||||||||||
+write(' | ||||||||||||||||||||||||||||||||
+write(' | ||||||||||||||||||||||||||||||||
+write(' | ||||||||||||||||||||||||||||||||
+write(' | ||||||||||||||||||||||||||||||||
+write('http://tim32.org/blog/'); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$ids = $page->findIDs('BlogPosts', 'WHERE ParentID = -1 ORDER BY DatePosted DESC'); | ||||||||||||||||||||||||||||||||
+for ($i = 0; $i < count($ids); $i++) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $id = $ids[$i]; | ||||||||||||||||||||||||||||||||
+ $post = $page->getBlogPost($id); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ write('http://tim32.org/blog/post.php?id=' . $id . ''); | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+write(''); | ||||||||||||||||||||||||||||||||
+write(''); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
Index: blog/index.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- blog/index.php (revision 1) | ||||||||||||||||||||||||||||||||
+++ blog/index.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -1,30 +1,42 @@ | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-require '../_taios.php'; | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-$page = new Taios_Page('Blog Posts', '../'); | ||||||||||||||||||||||||||||||||
-$page->drawHeader(); | ||||||||||||||||||||||||||||||||
-write('Blog'); | ||||||||||||||||||||||||||||||||
-$page->drawMenuItem('Computing', 'index.php?cat=Computing'); | ||||||||||||||||||||||||||||||||
-$page->drawMiddle(); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||
- write(''); | ||||||||||||||||||||||||||||||||
- write(' '); | ||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-$ids = $page->findIDs('BlogPosts'); | ||||||||||||||||||||||||||||||||
-for ($i = 0; $i < count($ids); $i++) | ||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||
- $id = $ids[$i]; | ||||||||||||||||||||||||||||||||
- $post = $page->getBlogPost($id); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
- write('' . $post->title. ''); | ||||||||||||||||||||||||||||||||
- write('Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . $post->user->name . ' (' . $post->user->username . ')'); | ||||||||||||||||||||||||||||||||
- write(' ' . $post->content . ' '); | ||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-$page->drawFooter(); | ||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Blog Posts', '../'); | ||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||
+$page->drawBlogCategoriesMenu(); | ||||||||||||||||||||||||||||||||
+write('RSS'); | ||||||||||||||||||||||||||||||||
+$page->drawMenuItem('RSS Feed', 'blog/rss.php'); | ||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$query = 'WHERE ParentID = -1'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if (isset($_GET['cat'])) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $query = $query . ' AND Category = "' . $_GET['cat'] . '"'; | ||||||||||||||||||||||||||||||||
+ write(' Only showing blog posts from the ' . $_GET['cat'] . ' category. Reset Filtering '); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$query = $query . " ORDER BY DatePosted DESC"; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$ids = $page->findIDs('BlogPosts', $query); | ||||||||||||||||||||||||||||||||
+for ($i = 0; $i < count($ids); $i++) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $id = $ids[$i]; | ||||||||||||||||||||||||||||||||
+ $post = $page->getBlogPost($id); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ write('' . $post->title. ''); | ||||||||||||||||||||||||||||||||
+ write('Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . $post->user->name . ' (' . $post->user->username . ')'); | ||||||||||||||||||||||||||||||||
+ write(' ' . $page->replaceBBCode($post->content) . ' '); | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
Index: blog/edit-post.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- blog/edit-post.php (nonexistent) | ||||||||||||||||||||||||||||||||
+++ blog/edit-post.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,93 @@ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Edit Post', '../'); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if (isset($_GET['id'])) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $id = $_GET['id']; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+else if (isset($_POST['id'])) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $id = $_POST['id']; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $page->drawError('No ID set.'); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$post = $page->getBlogPost($id); | ||||||||||||||||||||||||||||||||
+if (!$page->isUserAdmin($page->getLoggedInUser()) && $page->getLoggedInUser()->ID != $post->author->ID) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$error = ''; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if (isset($_POST['id'])) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $title = $_POST['title']; | ||||||||||||||||||||||||||||||||
+ $content = $_POST['content']; | ||||||||||||||||||||||||||||||||
+ $category = $_POST['category']; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ if (empty($title)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $error = "No Title Specified"; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else if (empty($content)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $error = "No Content Specified"; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $page->query('UPDATE BlogPosts SET Content = "' . $content . '", Title = "' . $title . '", Category = "' . $category . '" WHERE ID = ' . $id); | ||||||||||||||||||||||||||||||||
+ $page->redirect('post.php?id=' . $id); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||
+$page->drawBlogCategoriesMenu(); | ||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if (!empty($error)) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $page->drawError($error, false); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
Index: blog/post.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- blog/post.php (nonexistent) | ||||||||||||||||||||||||||||||||
+++ blog/post.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,21 @@ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Blog Posts', '../'); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if (empty($_GET['id']) || $_GET['id'] == -1) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $page->redirect('index.php'); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||
+$page->drawBlogCategoriesMenu(); | ||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawBlogPostTree($page->getGetID(), true); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
Index: blog/add-post.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- blog/add-post.php (nonexistent) | ||||||||||||||||||||||||||||||||
+++ blog/add-post.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,96 @@ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+function getParentID() | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ if (isset($_GET['id'])) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ return $_GET['id']; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ return -1; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Add Post', '../'); | ||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$error = ''; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if (isset($_POST['post'])) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $title = $_POST['title']; | ||||||||||||||||||||||||||||||||
+ $content = $_POST['content']; | ||||||||||||||||||||||||||||||||
+ $parentID = $_POST['parentID']; | ||||||||||||||||||||||||||||||||
+ $category = $_POST['category']; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ if (empty($title)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $error = "No Title Specified"; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else if (empty($content)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $error = "No Content Specified"; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else if (empty($parentID)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $error = "No Parent ID Specified"; | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($page->getLoggedInUser()->accessID >= 2 && $parentID == -1) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $page->query('INSERT INTO BlogPosts VALUES(0, ' . $parentID . ', "' . $page->getLoggedInUser()->ID . '", "' . $title . '", "' . $content . '", NOW(), "' . $category . '", 0)'); | ||||||||||||||||||||||||||||||||
+ $page->redirect('post.php?id=' . $parentID); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||
+$page->drawBlogCategoriesMenu(); | ||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if (!empty($error)) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $page->drawError($error, false); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
Index: blog/del-post.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- blog/del-post.php (nonexistent) | ||||||||||||||||||||||||||||||||
+++ blog/del-post.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,27 @@ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Delete Blog Post', '../'); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$id = $_GET['id']; | ||||||||||||||||||||||||||||||||
+if ($id) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ if ($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $page->getBlogPost($id)->author->ID) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $page->delBlogPost($id); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $page->drawError('No ID Specified'); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->redirect('index.php'); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
Index: wiki/index.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- wiki/index.php (nonexistent) | ||||||||||||||||||||||||||||||||
+++ wiki/index.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,64 @@ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+function endswith($string, $test) { | ||||||||||||||||||||||||||||||||
+ $strlen = strlen($string); | ||||||||||||||||||||||||||||||||
+ $testlen = strlen($test); | ||||||||||||||||||||||||||||||||
+ if ($testlen > $strlen) return false; | ||||||||||||||||||||||||||||||||
+ return substr_compare($string, $test, -$testlen) === 0; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$pageName = $_GET['page']; | ||||||||||||||||||||||||||||||||
+if (empty($pageName)) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $pageName = 'Index'; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Wiki - ' . $pageName, '../'); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if (isset($_GET['random'])) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $results = array(); | ||||||||||||||||||||||||||||||||
+ $handler = opendir('pages/'); | ||||||||||||||||||||||||||||||||
+ while ($file = readdir($handler)) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ if ($file != '.' && $file != '..' && endswith($file, ".txt")) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $results[] = substr($file, 0, count($file) - 5); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $index = rand() % count($results); | ||||||||||||||||||||||||||||||||
+ $result = $results[$index]; | ||||||||||||||||||||||||||||||||
+ $page->redirect('index.php?page=' . $result); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||
+write('Wiki'); | ||||||||||||||||||||||||||||||||
+$page->drawMenuItem('Index', 'wiki/index.php'); | ||||||||||||||||||||||||||||||||
+$page->drawMenuItem('Random Page', 'wiki/index.php?random'); | ||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$filename = 'pages/' . $pageName . '.txt'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$fp = @fopen($filename, 'r'); | ||||||||||||||||||||||||||||||||
+if ($fp) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ write(' ' . $page->replaceBBCode(fread($fp, filesize($filename))) . ' '); | ||||||||||||||||||||||||||||||||
+ fclose($fp); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ write(' This page is empty. '); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
Index: wiki/edit-do.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- wiki/edit-do.php (nonexistent) | ||||||||||||||||||||||||||||||||
+++ wiki/edit-do.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,40 @@ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$pageName = $_POST['page']; | ||||||||||||||||||||||||||||||||
+if (empty($pageName)) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $pageName = 'Index'; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Edit Page - ' . $pageName, '../'); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $filename = 'pages/' . $pageName . '.txt'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $fp = @fopen($filename, 'w'); | ||||||||||||||||||||||||||||||||
+ if ($fp) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ fwrite($fp, $_POST['content']); | ||||||||||||||||||||||||||||||||
+ fclose($fp); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $page->redirect('index.php?page=' . $pageName); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $page->drawError('Failed to write file.'); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
Index: wiki/edit.php | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- wiki/edit.php (nonexistent) | ||||||||||||||||||||||||||||||||
+++ wiki/edit.php (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,54 @@ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$pageName = $_GET['page']; | ||||||||||||||||||||||||||||||||
+if (empty($pageName)) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $pageName = 'Index'; | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Edit Page - ' . $pageName, '../'); | ||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $filename = 'pages/' . $pageName . '.txt'; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $content = ""; | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ $fp = @fopen($filename, 'r'); | ||||||||||||||||||||||||||||||||
+ if ($fp) | ||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||
+ $content = fread($fp, filesize($filename)); | ||||||||||||||||||||||||||||||||
+ fclose($fp); | ||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
Index: wiki/pages/Index.txt | ||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||
--- wiki/pages/Index.txt (nonexistent) | ||||||||||||||||||||||||||||||||
+++ wiki/pages/Index.txt (revision 439) | ||||||||||||||||||||||||||||||||
@@ -0,0 +1,4 @@ | ||||||||||||||||||||||||||||||||
+[b]Welcome to the Tim32 Wiki![/b] | ||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||
+Here you can talk about pretty much anything! | ||||||||||||||||||||||||||||||||
+ |
/wiki/pages/Index.txt |
---|
Property changes: |
Added: svn:executable |
## -0,0 +1 ## |
+* |
\ No newline at end of property |
Index: styles.css |
=================================================================== |
--- styles.css (revision 1) |
+++ styles.css (revision 439) |
@@ -3,20 +3,23 @@ |
color: #000000; |
font-family: Droid Sans, Tahoma, sans-serif; |
- font-size: 11pt; |
+ font-size: 10pt; |
+ |
+ margin: 0px; |
+ padding: 0px; |
} |
h1 { |
font-size: 28pt; |
- margin: 6px; |
+ margin: 8px; |
margin-top: 0px; |
- color: #000089; |
- border-bottom: 1px solid #000000; |
+ color: #FFFFFF; |
+ border-bottom: 1px solid #FFFFFF; |
} |
h2 { |
font-size: 20pt; |
- margin: 6px; |
+ margin: 8px; |
margin-left: 8px; |
color: #00004B; |
} |
@@ -23,7 +26,7 @@ |
h3 { |
font-size: 16pt; |
- margin: 6px; |
+ margin: 8px; |
margin-left: 10px; |
color: #000055; |
} |
@@ -30,7 +33,7 @@ |
h4 { |
font-size: 12pt; |
- margin: 6px; |
+ margin: 8px; |
margin-left: 12px; |
color: #00005F; |
} |
@@ -37,14 +40,14 @@ |
h5 { |
font-size: 10pt; |
- margin: 6px; |
+ margin: 8px; |
margin-left: 14px; |
color: #000069; |
} |
p, table, span { |
- font-size: 11pt; |
- margin: 6px; |
+ font-size: 10pt; |
+ margin: 8px; |
margin-left: 16px; |
} |
@@ -61,24 +64,43 @@ |
border: 1px solid #000000; |
color: #000000; |
background-color: #B5D7FF; |
+ width: 500px; |
} |
+table { |
+ border: 1px solid #222222; |
+} |
+ |
+td { |
+ padding: 3px; |
+ border: 1px solid #888888; |
+} |
+ |
+img { |
+ border: 2px solid #333333; |
+} |
+ |
+textarea { |
+ width: 500px; |
+ height: 300px; |
+} |
+ |
+.smiley { |
+ border: 0px; |
+ vertical-align: middle; |
+} |
+ |
.sidebar { |
- left: 0px; |
- top: 0px; |
- position: fixed; |
+ float: left; |
+ width: 156px; |
padding: 0px; |
padding-left: 32px; |
- border-right: 1px solid #000089; |
- background-color: #FFFF73; |
- background-image: url('data/sidebar-gradient.png'); |
- background-repeat: repeat-x; |
- background-position: center bottom; |
- |
+ border-right: 0px solid #000089; |
+ background-color: #032865; |
+ color: #FFFFFF; |
} |
.sidebar-header { |
- left: 0px; |
width: 140px; |
padding: 6px; |
text-align: right; |
@@ -87,10 +109,12 @@ |
.sidebar-menu { |
text-align: right; |
padding: 6px; |
+ color: #FFFFFF; |
} |
.sidebar-menu h3 { |
margin: 6px; |
+ color: #FFFFFF; |
} |
.sidebar-menu p { |
@@ -98,11 +122,14 @@ |
margin: 4px; |
} |
+.sidebar-menu a { |
+ color: #FFFFFF; |
+} |
+ |
.content { |
- left: 200px; |
top: 0px; |
+ left: 190px; |
position: absolute; |
- width: 720px; |
margin-right: 32px; |
} |
@@ -109,3 +136,46 @@ |
.bold { |
font-weight: bold; |
} |
+ |
+.italic { |
+ font-style: italic; |
+} |
+ |
+.indent { |
+ margin-left: 14px; |
+ border-left: 1px solid #BBBBBB; |
+} |
+ |
+.code { |
+ border-top: 2px solid #999999; |
+ border-bottom: 2px solid #999999; |
+ margin: 14px; |
+ background-color: #DDDDDD; |
+ font-family: Droid Sans Mono, Monospace, Fixed; |
+ font-size: 9px; |
+ line-height: 80%; |
+} |
+ |
+.copyright { |
+ color: #BBBBBB; |
+ text-align: left; |
+ font-size: 9pt; |
+} |
+ |
+.copyright a { |
+ color: #BBBBBB; |
+} |
+ |
+.recaptchatable .recaptcha_image_cell, #recaptcha_table { |
+ background-color: #4B9DE0 !important; //reCaptcha widget background color |
+} |
+ |
+#recaptcha_table { |
+ border-color: #3874A4 !important; //reCaptcha widget border color |
+} |
+ |
+#recaptcha_response_field { |
+ border-color: #000000 !important; //Text input field border color |
+ background-color:#FFFFFF !important; //Text input field background color |
+} |
+ |
/index.php |
---|
1,45 → 1,42 |
<?php |
require '_taios.php'; |
$page = new Taios_Page('Home'); |
$page->drawHeader(); |
write('<h3>Pages</h3>'); |
$page->drawMenuItem('Biggles', '/~biggles/'); |
$page->drawMenuItem('Freddie', '/~freddie/'); |
$page->drawMenuItem('Muzer', '/~muzer/'); |
$page->drawMenuItem('Sh4rk', '/~szabot/'); |
$page->drawMenuItem('Tom', '/~tom/'); |
$page->drawMiddle(); |
?> |
<p class="bold">Welcome to Tim32!</p> |
<p>Tim32 is a 10 year-old laptop running Ubuntu Server Edition 10.04.</p> |
<br /> |
<h3>Latest Blog Posts</h3> |
<?php |
$ids = $page->findIDs('BlogPosts'); |
for ($i = 0; $i < 5 && $i < count($ids); $i++) |
{ |
$id = $ids[$i]; |
$post = $page->getBlogPost($id); |
write('<h4>' . $post->title. '</h4>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . $post->user->name . ' (' . $post->user->username . ')</h5>'); |
write('<p>' . $post->content . '</p>'); |
write('<br />'); |
} |
if ($page->isLoggedIn()) |
{ |
write('<h3>Actions</h3>'); |
write('<h4><a href="admin/account.php?id=' . $page->getLoggedInUser()->ID . '">Manage Account</a></h4>'); |
} |
$page->drawFooter(); |
?> |
<?php |
require '_taios.php'; |
$page = new Taios_Page('Home'); |
$page->drawHeader(); |
write('<h3>Pages</h3>'); |
$page->drawMenuItem('Biggles', '/~biggles/'); |
$page->drawMenuItem('Freddie (FredFace)', '/~freddie/'); |
$page->drawMenuItem('Muzer', '/~muzer/'); |
$page->drawMenuItem('Sh4rk', '/~szabot/'); |
$page->drawMenuItem('Tom (TomMan)', '/~tom/'); |
write('<br /><h3>Downtime-o-meter</h3>'); |
write('<p>No planned down.</p>'); |
$page->drawMiddle(); |
?> |
<p class="bold">Welcome to Tim32!</p> |
<p>Tim32 is a 10 year-old laptop running Ubuntu Server Edition 10.04.</p> |
<br /> |
<h3 title="Take the Tim32 challenge: http://tim32.org/challenge/">Latest Blog Posts</h3> |
<p><a href="blog/rss.php">Rss Feed</a></p> |
<?php |
$ids = $page->findIDs('BlogPosts', 'WHERE ParentID = -1 ORDER BY DatePosted DESC'); |
for ($i = 0; $i < 4 && $i < count($ids); $i++) |
{ |
$id = $ids[$i]; |
$post = $page->getBlogPost($id); |
write('<h4><a href="blog/post.php?id=' . $post->ID . '">' . $post->title. '</a></h4>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . $post->user->name . ' (' . $post->user->username . ')</h5>'); |
write('<p>' . $page->replaceBBCode($post->content) . '</p>'); |
write('<br />'); |
} |
$page->drawFooter(); |
?> |
/register.php |
---|
1,56 → 1,69 |
<?php |
require '_taios.php'; |
$page = new Taios_Page('Register'); |
$page->drawHeader(); |
$page->drawMiddle(); |
?> |
<p class="bold">Here you can create an account with Tim32.</p> |
<br /> |
<?php |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
?> |
<form action="register-do.php" method="POST"> |
<table> |
<tr> |
<td class="bold">Username: </td> |
<td><input type="text" name="username" /></td> |
</tr> |
<tr> |
<td class="bold">Password: </td> |
<td><input type="password" name="password" /></td> |
</tr> |
<tr> |
<td class="bold">Repeat Password: </td> |
<td><input type="password" name="password2" /></td> |
</tr> |
<tr> |
<td class="bold">Email Address</td>: </td> |
<td><input type="text" name="email" /></td> |
</tr> |
<tr> |
<td class="bold">Name</td>: </td> |
<td><input type="text" name="name" /></td> |
</tr> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Register" /></td> |
</tr> |
</table> |
</form> |
<?php |
$page->drawFooter(); |
?> |
<?php |
require '_taios.php'; |
require_once '_recaptchalib.php'; |
$page = new Taios_Page('Register'); |
$page->drawHeader(); |
$page->drawMiddle(); |
?> |
<p class="bold">Here you can create an account with Tim32.</p> |
<br /> |
<?php |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
?> |
<script type="text/javascript"> |
var RecaptchaOptions = { |
theme : 'clean' |
}; |
</script> |
<form action="register-do.php" method="POST"> |
<table> |
<tr> |
<td class="bold">Username: </td> |
<td><input type="text" name="username" /></td> |
</tr> |
<tr> |
<td class="bold">Password: </td> |
<td><input type="password" name="password" /></td> |
</tr> |
<tr> |
<td class="bold">Repeat Password: </td> |
<td><input type="password" name="password2" /></td> |
</tr> |
<tr> |
<td class="bold">Email Address: </td> |
<td><input type="text" name="email" /></td> |
</tr> |
<tr> |
<td class="bold">Name: </td> |
<td><input type="text" name="name" /></td> |
</tr> |
<tr> |
<td class="bold"></td> |
<td><?php echo recaptcha_get_html(RECAPTCHA_PUBLICKEY); ?></td> |
</tr> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Register" /></td> |
</tr> |
</table> |
<p style="text-align: center; color: #666666">By registering to Tim32, you agree to be reasonable in all your suggestion/accusations and advoid subjectivity. Suvbjective posts/comments are subject to removal by a Subject of the Tim32 Admins.</p> |
</form> |
<?php |
$page->drawFooter(); |
?> |
/challenge/index.php |
---|
0,0 → 1,23 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Tim32 Challenge', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
if ($page->isLoggedIn()) |
{ |
write('<p class="bold">Take the Tim32 challenge here!</p>'); |
write('<p class="italic">Once you\'ve passed a challenge, your progress will automatically be saved.</p>'); |
write('<br /><br /><a href="00.php"><h2 style="text-align: center">Enter!</h2></a>'); |
} |
else |
{ |
write('<p class="bold">You need to be logged in to take the Tim32 challenge.</p>'); |
} |
$page->drawFooter(); |
?> |
/challenge/00.php |
---|
0,0 → 1,37 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Challenge - 00', '../'); |
$page->checkChallengeStatus(0, "index", "01"); |
$page->drawHeader(); |
write('<h3>Challenge</h3>'); |
$page->drawMenuItem('Index', 'challenge/index.php'); |
$page->drawMiddle(); |
?> |
<form action="00-do.php" method="POST"> |
<table> |
<tr> |
<td class="bold">Morse: </td> |
<td style="color: #FFFFFF">.. .-.. .. -.- . -- --- --- ... . </td> |
</tr> |
<tr> |
<td class="bold">Moose: </td> |
<td><input type="text" name="moose" /></td> |
</tr> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Submit" /></td> |
</tr> |
</table> |
</form> |
<?php |
$page->drawFooter(); |
?> |
/challenge/01.php |
---|
0,0 → 1,18 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Challenge - 01', '../'); |
$page->checkChallengeStatus(1, "index", "02"); |
$page->drawHeader(); |
write('<h3>Challenge</h3>'); |
$page->drawMenuItem('Index', 'challenge/index.php'); |
$page->drawMiddle(); |
$page->drawFooter(); |
?> |
/challenge/00-do.php |
---|
0,0 → 1,19 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Challenge - 00', '../'); |
$page->checkChallengeStatus(0, "index", "01"); |
if ($_POST['moose'] == 'i like moose') |
{ |
$page->query('UPDATE Users SET ChallengeID = 1 WHERE ID = ' . $page->getLoggedInUser()->ID); |
$page->redirect('01.php'); |
} |
else |
{ |
$page->redirect('index.php'); |
} |
?> |
/404.php |
---|
0,0 → 1,30 |
<?php |
require '_taios.php'; |
$page = new Taios_Page('404 - Pagee not found', '/'); |
$page->drawHeader(); |
write('<h3>Pages</h3>'); |
$page->drawMenuItem('Biggles', '/~biggles/'); |
$page->drawMenuItem('Freddie', '/~freddie/'); |
$page->drawMenuItem('Muzer', '/~muzer/'); |
$page->drawMenuItem('Sh4rk', '/~szabot/'); |
$page->drawMenuItem('Tom', '/~tom/'); |
$page->drawMiddle(); |
?> |
<p class="bold">404 - Page not found</p> |
<p>The page you requested could not be found.</p> |
<br /> |
<h4>Useful Links</h4> |
<?php |
$page->drawMenuItem('Tim32 Homepage', 'index.php'); |
$page->drawMenuItem('Youfail.org', 'http://youfail.org'); |
$page->drawFooter(); |
?> |
/register-do.php |
---|
1,34 → 1,44 |
<?php |
require '_taios.php'; |
$page = new Taios_Page('Login'); |
$username = $_POST['username']; |
$password = $_POST['password']; |
$password2 = $_POST['password2']; |
$email = $_POST['email']; |
$name = $_POST['name']; |
if (empty($username)) |
{ |
$page->redirect('register.php?error=No Username Specified'); |
} |
if (empty($password)) |
{ |
$page->redirect('register.php?error=No Password Specified'); |
} |
if (empty($password2)) |
{ |
$page->redirect('register.php?error=No Repeat Password Specified'); |
} |
if ($password != $password2) |
{ |
$page->redirect('register.php?error=Passwords do not match'); |
} |
$page->query('INSERT INTO Users (AccessID, Username, Password, EmailAddress, Name, ChallengeID) VALUES (2, "' . $username . '", "' . sha1($password) . '", "' . $email . '", "' . $name . '", 0)'); |
$page->redirect('login.php'); |
?> |
<?php |
require '_taios.php'; |
require_once '_recaptchalib.php'; |
$page = new Taios_Page('Login'); |
$username = $_POST['username']; |
$password = $_POST['password']; |
$password2 = $_POST['password2']; |
$email = $_POST['email']; |
$name = $_POST['name']; |
if (empty($username)) |
{ |
$page->redirect('register.php?error=No Username Specified'); |
} |
if (empty($password)) |
{ |
$page->redirect('register.php?error=No Password Specified'); |
} |
if (empty($password2)) |
{ |
$page->redirect('register.php?error=No Repeat Password Specified'); |
} |
if ($password != $password2) |
{ |
$page->redirect('register.php?error=Passwords do not match'); |
} |
$resp = recaptcha_check_answer(RECAPTCHA_PRIVATEKEY, $_SERVER["REMOTE_ADDR"], |
$_POST["recaptcha_challenge_field"], |
$_POST["recaptcha_response_field"]); |
if (!$resp->is_valid) |
{ |
$page->redirect('register.php?error=Incorrect reCAPTCHA response'); |
} |
$page->query('INSERT INTO Users (AccessID, Username, Password, EmailAddress, Name, ChallengeID) VALUES (2, "' . $username . '", "' . sha1($password) . '", "' . $email . '", "' . $name . '", 0)'); |
$page->redirect('login.php'); |
?> |
/_recaptchalib.php |
---|
0,0 → 1,277 |
<?php |
/* |
* This is a PHP library that handles calling reCAPTCHA. |
* - Documentation and latest version |
* http://recaptcha.net/plugins/php/ |
* - Get a reCAPTCHA API Key |
* https://www.google.com/recaptcha/admin/create |
* - Discussion group |
* http://groups.google.com/group/recaptcha |
* |
* Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net |
* AUTHORS: |
* Mike Crawford |
* Ben Maurer |
* |
* Permission is hereby granted, free of charge, to any person obtaining a copy |
* of this software and associated documentation files (the "Software"), to deal |
* in the Software without restriction, including without limitation the rights |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
* copies of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included in |
* all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
* THE SOFTWARE. |
*/ |
/** |
* The reCAPTCHA server URL's |
*/ |
define("RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api"); |
define("RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api"); |
define("RECAPTCHA_VERIFY_SERVER", "www.google.com"); |
/** |
* Encodes the given data into a query string format |
* @param $data - array of string elements to be encoded |
* @return string - encoded request |
*/ |
function _recaptcha_qsencode ($data) { |
$req = ""; |
foreach ( $data as $key => $value ) |
$req .= $key . '=' . urlencode( stripslashes($value) ) . '&'; |
// Cut the last '&' |
$req=substr($req,0,strlen($req)-1); |
return $req; |
} |
/** |
* Submits an HTTP POST to a reCAPTCHA server |
* @param string $host |
* @param string $path |
* @param array $data |
* @param int port |
* @return array response |
*/ |
function _recaptcha_http_post($host, $path, $data, $port = 80) { |
$req = _recaptcha_qsencode ($data); |
$http_request = "POST $path HTTP/1.0\r\n"; |
$http_request .= "Host: $host\r\n"; |
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n"; |
$http_request .= "Content-Length: " . strlen($req) . "\r\n"; |
$http_request .= "User-Agent: reCAPTCHA/PHP\r\n"; |
$http_request .= "\r\n"; |
$http_request .= $req; |
$response = ''; |
if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) { |
die ('Could not open socket'); |
} |
fwrite($fs, $http_request); |
while ( !feof($fs) ) |
$response .= fgets($fs, 1160); // One TCP-IP packet |
fclose($fs); |
$response = explode("\r\n\r\n", $response, 2); |
return $response; |
} |
/** |
* Gets the challenge HTML (javascript and non-javascript version). |
* This is called from the browser, and the resulting reCAPTCHA HTML widget |
* is embedded within the HTML form it was called from. |
* @param string $pubkey A public key for reCAPTCHA |
* @param string $error The error given by reCAPTCHA (optional, default is null) |
* @param boolean $use_ssl Should the request be made over ssl? (optional, default is false) |
* @return string - The HTML to be embedded in the user's form. |
*/ |
function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false) |
{ |
if ($pubkey == null || $pubkey == '') { |
die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>"); |
} |
if ($use_ssl) { |
$server = RECAPTCHA_API_SECURE_SERVER; |
} else { |
$server = RECAPTCHA_API_SERVER; |
} |
$errorpart = ""; |
if ($error) { |
$errorpart = "&error=" . $error; |
} |
return '<script type="text/javascript" src="'. $server . '/challenge?k=' . $pubkey . $errorpart . '"></script> |
<noscript> |
<iframe src="'. $server . '/noscript?k=' . $pubkey . $errorpart . '" height="300" width="500" frameborder="0"></iframe><br/> |
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea> |
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/> |
</noscript>'; |
} |
/** |
* A ReCaptchaResponse is returned from recaptcha_check_answer() |
*/ |
class ReCaptchaResponse { |
var $is_valid; |
var $error; |
} |
/** |
* Calls an HTTP POST function to verify if the user's guess was correct |
* @param string $privkey |
* @param string $remoteip |
* @param string $challenge |
* @param string $response |
* @param array $extra_params an array of extra variables to post to the server |
* @return ReCaptchaResponse |
*/ |
function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array()) |
{ |
if ($privkey == null || $privkey == '') { |
die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>"); |
} |
if ($remoteip == null || $remoteip == '') { |
die ("For security reasons, you must pass the remote ip to reCAPTCHA"); |
} |
//discard spam submissions |
if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) { |
$recaptcha_response = new ReCaptchaResponse(); |
$recaptcha_response->is_valid = false; |
$recaptcha_response->error = 'incorrect-captcha-sol'; |
return $recaptcha_response; |
} |
$response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify", |
array ( |
'privatekey' => $privkey, |
'remoteip' => $remoteip, |
'challenge' => $challenge, |
'response' => $response |
) + $extra_params |
); |
$answers = explode ("\n", $response [1]); |
$recaptcha_response = new ReCaptchaResponse(); |
if (trim ($answers [0]) == 'true') { |
$recaptcha_response->is_valid = true; |
} |
else { |
$recaptcha_response->is_valid = false; |
$recaptcha_response->error = $answers [1]; |
} |
return $recaptcha_response; |
} |
/** |
* gets a URL where the user can sign up for reCAPTCHA. If your application |
* has a configuration page where you enter a key, you should provide a link |
* using this function. |
* @param string $domain The domain where the page is hosted |
* @param string $appname The name of your application |
*/ |
function recaptcha_get_signup_url ($domain = null, $appname = null) { |
return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname)); |
} |
function _recaptcha_aes_pad($val) { |
$block_size = 16; |
$numpad = $block_size - (strlen ($val) % $block_size); |
return str_pad($val, strlen ($val) + $numpad, chr($numpad)); |
} |
/* Mailhide related code */ |
function _recaptcha_aes_encrypt($val,$ky) { |
if (! function_exists ("mcrypt_encrypt")) { |
die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed."); |
} |
$mode=MCRYPT_MODE_CBC; |
$enc=MCRYPT_RIJNDAEL_128; |
$val=_recaptcha_aes_pad($val); |
return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); |
} |
function _recaptcha_mailhide_urlbase64 ($x) { |
return strtr(base64_encode ($x), '+/', '-_'); |
} |
/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */ |
function recaptcha_mailhide_url($pubkey, $privkey, $email) { |
if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) { |
die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " . |
"you can do so at <a href='http://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>"); |
} |
$ky = pack('H*', $privkey); |
$cryptmail = _recaptcha_aes_encrypt ($email, $ky); |
return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail); |
} |
/** |
* gets the parts of the email to expose to the user. |
* eg, given johndoe@example,com return ["john", "example.com"]. |
* the email is then displayed as john...@example.com |
*/ |
function _recaptcha_mailhide_email_parts ($email) { |
$arr = preg_split("/@/", $email ); |
if (strlen ($arr[0]) <= 4) { |
$arr[0] = substr ($arr[0], 0, 1); |
} else if (strlen ($arr[0]) <= 6) { |
$arr[0] = substr ($arr[0], 0, 3); |
} else { |
$arr[0] = substr ($arr[0], 0, 4); |
} |
return $arr; |
} |
/** |
* Gets html to display an email address given a public an private key. |
* to get a key, go to: |
* |
* http://www.google.com/recaptcha/mailhide/apikey |
*/ |
function recaptcha_mailhide_html($pubkey, $privkey, $email) { |
$emailparts = _recaptcha_mailhide_email_parts ($email); |
$url = recaptcha_mailhide_url ($pubkey, $privkey, $email); |
return htmlentities($emailparts[0]) . "<a href='" . htmlentities ($url) . |
"' onclick=\"window.open('" . htmlentities ($url) . "', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" . htmlentities ($emailparts [1]); |
} |
?> |
/admin/all-accounts.php |
---|
0,0 → 1,51 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Accounts', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the accounts on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">AccessID</td>'); |
write('<td class="bold">Username</td>'); |
write('<td class="bold">SHA1 Password</td>'); |
write('<td class="bold">Name</td>'); |
write('<td class="bold">Email Address</td>'); |
write('<td class="bold">Challenge ID</td>'); |
write('</tr>'); |
$ids = $page->findIDs('Users'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$user = $page->getUserByID($ids[$i]); |
write('<tr>'); |
write('<td><a href="account.php?id=' . $user->ID . '">' . $user->ID . '</a></td>'); |
write('<td>' . $user->accessID . '</td>'); |
write('<td>' . $user->username . '</td>'); |
write('<td>' . $user->password . '</td>'); |
write('<td>' . $user->name . '</td>'); |
write('<td>' . $user->emailAddress . '</td>'); |
write('<td>' . $user->challengeID . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/all-forum-posts.php |
---|
0,0 → 1,67 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Forum Posts', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the forum categories on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Author</td>'); |
write('<td class="bold">Category</td>'); |
write('<td class="bold">Parent</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Content</td>'); |
write('<td class="bold">Date Posted</td>'); |
write('<td class="bold">Spam</td>'); |
write('</tr>'); |
$ids = $page->findIDs('ForumPosts'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$post = $page->getForumPost($ids[$i]); |
write('<tr>'); |
write('<td><a href="../forums/post.php?id=' . $post->ID . '">' . $post->ID . '</a></td>'); |
write('<td><a href="account.php?id=' . $post->author->ID . '">' . $post->author->name . '</a></td>'); |
if (!$post->category) |
{ |
write('<td style="color: #444444;">No Category</td>'); |
} |
else |
{ |
write('<td>' . $post->category->title . '</td>'); |
} |
if (!$post->parent) |
{ |
write('<td style="color: #444444;">No Parent</td>'); |
} |
else |
{ |
write('<td>' . $post->parent->title . '</td>'); |
} |
write('<td>' . $post->title . '</td>'); |
write('<td>' . str_replace("\n", ' ', $post->content) . '</td>'); |
write('<td>' . date('j/m/Y H:i', $post->datePosted) . '</td>'); |
write('<td>' . $post->spam . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/all-forum-categories.php |
---|
0,0 → 1,52 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Forum Categories', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the forum categories on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Parent</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Description</td>'); |
write('</tr>'); |
$ids = $page->findIDs('ForumCategories'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$cat = $page->getForumCategory($ids[$i]); |
write('<tr>'); |
write('<td><a href="../forums/index.php?parentID=' . $cat->ID . '">' . $cat->ID . '</a></td>'); |
if (!$cat->parent) |
{ |
write('<td style="color: #444444;">No Parent</td>'); |
} |
else |
{ |
write('<td>' . $cat->parent->title . '</td>'); |
} |
write('<td>' . $cat->title . '</td>'); |
write('<td>' . $cat->description . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/index.php |
---|
0,0 → 1,26 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Administration', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$user = $page->getLoggedInUser(); |
write('<h4><a href="account.php?id=' . $user->ID. '">Manage Account</a></h4>'); |
if ($page->isUserAdmin($user)) |
{ |
write('<h4><a href="all-accounts.php">Manage All Accounts</a></h4>'); |
write('<h4><a href="all-blog-posts.php">Manage All Blog Posts</a></h4>'); |
write('<h4><a href="all-projects.php">Manage All Projects</a></h4>'); |
write('<h4><a href="all-forum-categories.php">Manage All Forum Categories</a></h4>'); |
write('<h4><a href="all-forum-posts.php">Manage All Forum Posts</a></h4>'); |
} |
$page->drawFooter(); |
?> |
/admin/all-projects.php |
---|
0,0 → 1,55 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Projects', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the projects on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Author</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Description</td>'); |
write('<td class="bold">Logo</td>'); |
write('<td class="bold">Download</td>'); |
write('<td class="bold">Website</td>'); |
write('<td class="bold">Latest Version</td>'); |
write('<td class="bold">Last Update</td>'); |
write('</tr>'); |
$ids = $page->findIDs('Projects'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$project = $page->getProject($ids[$i]); |
write('<tr>'); |
write('<td><a href="../projects/edit-project.php?id=' . $project->ID . '">' . $project->ID . '</a></td>'); |
write('<td><a href="account.php?id=' . $project->author->ID . '">' . $project->author->name . '</a></td>'); |
write('<td>' . $project->title . '</td>'); |
write('<td>' . str_replace("\n", '<br />', $project->description) . '</td>'); |
write('<td><img src="' . $project->logoURL . '" /></td>'); |
write('<td><a href="' . $project->downloadURL . '">Link</a></td>'); |
write('<td><a href="' . $project->websiteURL . '">Link</a></td>'); |
write('<td>' . $project->latestVersion . '</td>'); |
write('<td>' . date('j/m/Y H:i', $project->lastUpdate) . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/all-blog-posts.php |
---|
0,0 → 1,60 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Blog Posts', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the blog posts on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Parent</td>'); |
write('<td class="bold">Author</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Content</td>'); |
write('<td class="bold">Date Posted</td>'); |
write('<td class="bold">Category</td>'); |
write('<td class="bold">Spam</td>'); |
write('</tr>'); |
$ids = $page->findIDs('BlogPosts', 'ORDER BY DatePosted DESC'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$post = $page->getBlogPost($ids[$i]); |
write('<tr>'); |
write('<td><a href="../blog/edit-post.php?id=' . $post->ID . '">' . $post->ID . '</a></td>'); |
if ($post->parent == -1) |
{ |
write('<td style="color: #444444;">No Parent</td>'); |
} |
else |
{ |
write('<td>' . $post->parent->title . '</td>'); |
} |
write('<td><a href="account.php?id=' . $post->author->ID . '">' . $post->author->name . '</a></td>'); |
write('<td>' . $post->title . '</td>'); |
write('<td>' . str_replace("\n", '<br />', $post->content) . '</td>'); |
write('<td>' . date('j/m/Y H:i', $post->datePosted) . '</td>'); |
write('<td>' . $post->category . '</td>'); |
write('<td>' . $post->spam . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/account.php |
---|
0,0 → 1,60 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage Account', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$userID = $page->getGetID(); |
$user = $page->getUserByID($userID); |
if (($page->getLoggedInUser()->ID == $userID || $page->isUserAdmin($page->getLoggedInUser())) && $user) |
{ |
?> |
<p class="bold">Here you can edit your account.</p> |
<p>Only change the password value if you want to change your password.</p> |
<br /> |
<form action="account-do.php" method="POST"> |
<table> |
<tr><td class="bold">ID: </td><td><input type="hidden" name="id" value="<?php echo $user->ID; ?>" /><?php echo $user->ID; ?></td></tr> |
<?php |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<tr><td class="bold">AccessID: </td><td><input type="text" name="accessID" value="' . $user->accessID . '" /></td></tr>'); |
} |
else |
{ |
write('<tr><td class="bold">AccessID: </td><td>' . $user->accessID . '</td></tr>'); |
} |
?> |
<tr><td class="bold">Username: </td><td><?php echo $user->username; ?></td></tr> |
<tr><td class="bold">Password: </td><td><input type="password" name="password" /></td></tr> |
<tr><td class="bold">Email Address: </td><td><input type="text" name="email" value="<?php echo $user->emailAddress; ?>" /></td></tr> |
<tr><td class="bold">Name: </td><td><input type="text" name="name" value="<?php echo $user->name; ?>" /></td></tr> |
<tr><td></td><td><input type="submit" value="Update Account" /></td></tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
if (!$user) |
{ |
$page->drawError('No such user, #' . $userID); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
$page->drawFooter(); |
?> |
/admin/account-do.php |
---|
0,0 → 1,53 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Update Account', '../'); |
$userID = $page->getPostID(); |
$page->checkLoggedIn(); |
$accessID = $_POST['accessID']; |
$password = $_POST['password']; |
$email = $_POST['email']; |
$name = $_POST['name']; |
$user = $page->getUserByID($userID); |
if (($page->getLoggedInUser()->ID == $userID || $page->isUserAdmin($page->getLoggedInUser())) && $user) |
{ |
if (isset($accessID) && $page->isUserAdmin($page->getLoggedInUser())) |
{ |
$page->query('UPDATE Users SET AccessID = "' . $accessID . '" WHERE ID = ' . $userID); |
} |
if (!empty($password)) |
{ |
$page->query('UPDATE Users SET Password = "' . sha1($password) . '" WHERE ID = ' . $userID); |
} |
if (!empty($email)) |
{ |
$page->query('UPDATE Users SET EmailAddress = "' . $email . '" WHERE ID = ' . $userID); |
} |
if (!empty($name)) |
{ |
$page->query('UPDATE Users SET Name = "' . $name . '" WHERE ID = ' . $userID); |
} |
} |
else |
{ |
if (!$user) |
{ |
$page->drawError('No such user, #' . $userID); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
$page->redirect('account.php?id=' . $userID); |
?> |
/forums/index.php |
---|
0,0 → 1,81 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Forums', '../'); |
$parentID = $_GET['parentID']; |
if (empty($parentID)) |
{ |
$parentID = -1; |
} |
else if ($parentID != -1) |
{ |
$page->title = $page->getForumCategory($parentID)->title; |
} |
$page->drawHeader(); |
$page->drawMiddle(); |
write('<p><i>The forums are still under construction.</i></p>'); |
write('<p class="bold">'); |
if ($parentID != -1) |
{ |
write('<a href="index.php?parentID=-1">Back to root</a>'); |
} |
if ($page->isLoggedIn()) |
{ |
if ($parentID != -1) |
{ |
write(' · '); |
} |
write('<a href="add-post.php?categoryID=' . $parentID . '">Add Post</a>'); |
} |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
if ($page->isLoggedIn()) |
{ |
write(' · '); |
} |
write('<a href="add-category.php?parentID=' . $parentID . '">Add Category</a>'); |
} |
write('</p><br />'); |
$ids = $page->findIDs('ForumCategories', 'WHERE ParentID = ' . $parentID . ' ORDER BY Title ASC'); |
if (count($ids) >= 1) |
{ |
write('<h3>Categories</h3>'); |
} |
for ($i = 0; $i < count($ids); $i++) |
{ |
$forumCategory = $page->getForumCategory($ids[$i]); |
write('<h4><a href="index.php?parentID=' . $forumCategory->ID . '">' . $forumCategory->title . '</a></h4>'); |
write('<p>' . $forumCategory->description . '</p>'); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold"><a href="edit-category.php?id=' . $forumCategory->ID . '">Edit Category</a> · <a href="delete-category-do.php?id=' . $forumCategory->ID . '">Delete Category</a></p>'); |
} |
write('<br />'); |
} |
$ids = $page->findIDs('ForumPosts', 'WHERE CategoryID = ' . $parentID . ' AND ParentID = -1 ORDER BY Title ASC'); |
if (count($ids) >= 1) |
{ |
write('<h3>Topics</h3>'); |
} |
for ($i = 0; $i < count($ids); $i++) |
{ |
$forumPost = $page->getForumPost($ids[$i]); |
write('<h4><a href="post.php?id=' . $forumPost->ID . '">' . $forumPost->title . '</a></h4>'); |
write('<br />'); |
} |
$page->drawFooter(); |
?> |
/forums/post.php |
---|
0,0 → 1,45 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Forum Post', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$id = $page->getGetID(); |
$forumPost = $page->getForumPost($id); |
write('<p class="bold"><a href="index.php?parentID=' . $forumPost->category->ID . '">Back to Topics</a></p><br />'); |
write('<h3>' . $forumPost->title . '</h3>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $forumPost->datePosted) . ' by ' . $forumPost->author->name . ' (' . $forumPost->author->username . ')</h5>'); |
write('<p>' . $page->replaceBBCode($forumPost->content) . '</p>'); |
if ($page->isLoggedIn()) |
{ |
write('<p class="bold"><a href="add-post.php?parentID=' . $id . '">Post Reply</a>'); |
if ($page->isUserAdmin($page->getLoggedInUser()) || $forumPost->author->ID == $page->getLoggedInUser()->ID) |
{ |
write(' · <a href="edit-post.php?id=' . $id . '">Edit Post</a>'); |
write(' · <a href="delete-post-do.php?id=' . $id . '">Delete Post</a>'); |
} |
write('</p>'); |
} |
write('<br />'); |
$ids = $page->findIDs('ForumPosts', 'WHERE ParentID = ' . $id . ' ORDER BY DatePosted ASC'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$forumPost = $page->getForumPost($ids[$i]); |
write('<h4>' . $forumPost->title . '</h4>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $forumPost->datePosted) . ' by ' . $forumPost->author->name . ' (' . $forumPost->author->username . ')</h5>'); |
write('<p>' . $page->replaceBBCode($forumPost->content) . '</p>'); |
if ($page->isUserAdmin($page->getLoggedInUser()) || $forumPost->author->ID == $page->getLoggedInUser()->ID) |
{ |
write('<p class="bold"><a href="edit-post.php?id=' . $ids[$i] . '">Edit Post</a>'); |
write(' · <a href="delete-post-do.php?id=' . $ids[$i] . '">Delete Post</a></p>'); |
} |
write('<br />'); |
} |
$page->drawFooter(); |
?> |
/forums/delete-post-do.php |
---|
0,0 → 1,30 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Delete Post', '../'); |
$page->checkLoggedIn(); |
$id = $page->getGetID(); |
$post = $page->getForumPost($id); |
if (($page->isUserAdmin($page->getLoggedInUser()) || $post->author->ID == $page->getLoggedInUser()->ID) && $post) |
{ |
$page->query('DELETE FROM ForumPosts WHERE ID = ' . $id); |
$page->redirect('index.php'); |
} |
else |
{ |
if (!$post) |
{ |
$page->drawError('No such forum post, #' . $id); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
?> |
/forums/add-post-do.php |
---|
0,0 → 1,36 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Category', '../'); |
$page->checkLoggedIn(); |
$parentID = $_POST['parentID']; |
if (empty($parentID)) |
{ |
$parentID = -1; |
} |
$categoryID = $_POST['categoryID']; |
if (empty($categoryID)) |
{ |
$parentID = -1; |
} |
$title = $_POST['title']; |
$content = $_POST['content']; |
if (empty($title)) |
{ |
$page->redirect('add-post.php?error=No Title Specified'); |
} |
if (empty($title)) |
{ |
$page->redirect('add-post.php?error=No Content Specified'); |
} |
$page->query('INSERT INTO ForumPosts VALUES (0, ' .$page->getLoggedInUser()->ID . ', ' . $categoryID . ', ' . $parentID . ', "' . $title . '", "' . $content . '", NOW(), FALSE)'); |
$page->redirect('index.php?parentID=' . $categoryID); |
?> |
/forums/add-post.php |
---|
0,0 → 1,62 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Post', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$parentID = $_GET['parentID']; |
if (empty($parentID)) |
{ |
$parentID = -1; |
} |
$categoryID = $_GET['categoryID']; |
if (empty($categoryID)) |
{ |
$categoryID = -1; |
} |
if ($page->isLoggedIn()) |
{ |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
?> |
<form action="add-post-do.php" method="POST"> |
<input type="hidden" name="parentID" value="<?php echo $parentID; ?>" /> |
<input type="hidden" name="categoryID" value="<?php echo $categoryID; ?>" /> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" /></td> |
</tr> |
<tr> |
<td class="bold">Content: </td> |
<td><textarea name="content"></textarea></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" value="Add" /></td> |
</tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/forums/edit-category.php |
---|
0,0 → 1,59 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Edit Category', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$id = $page->getGetID(); |
$cat = $page->getForumCategory($id); |
if ($page->isUserAdmin($page->getLoggedInUser()) && $cat) |
{ |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
?> |
<form action="edit-category-do.php" method="POST"> |
<input type="hidden" name="id" value="<?php echo $id; ?>" /> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" value="<?php echo $cat->title; ?>" /></td> |
</tr> |
<tr> |
<td class="bold">Description: </td> |
<td><input type="text" name="description" value="<?php echo $cat->description; ?>" /></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" value="Edit" /></td> |
</tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
if (!$cat) |
{ |
$page->drawError('No such Forum Category, #' . $id); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
$page->drawFooter(); |
?> |
/forums/edit-category-do.php |
---|
0,0 → 1,30 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Edit Category', '../'); |
$page->checkLoggedIn(); |
$id = $page->getPostID(); |
$title = $_POST['title']; |
$description = $_POST['description']; |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
if (empty($title)) |
{ |
$page->redirect('edit-category.php?error=No Title Specified'); |
} |
$page->query('UPDATE ForumCategories SET Title = "' . $title . '", Description = "' . $description . '" WHERE ID = ' . $id); |
$page->redirect('index.php'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
?> |
/forums/delete-category-do.php |
---|
0,0 → 1,22 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Delete Category', '../'); |
$page->checkLoggedIn(); |
$id = $page->getGetID(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
$page->query('DELETE FROM ForumCategories WHERE ID = ' . $id); |
$page->redirect('index.php'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
?> |
/forums/add-category-do.php |
---|
0,0 → 1,34 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Category', '../'); |
$page->checkLoggedIn(); |
$parentID = $_POST['parentID']; |
if (empty($parentID)) |
{ |
$parentID = -1; |
} |
$title = $_POST['title']; |
$description = $_POST['description']; |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
if (empty($title)) |
{ |
$page->redirect('add-category.php?error=No Title Specified'); |
} |
$page->query('INSERT INTO ForumCategories VALUES (0, ' . $parentID . ', "' . $title . '", "' . $description . '")'); |
$page->redirect('index.php?parentID=' . $parentID); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
?> |
/forums/add-category.php |
---|
0,0 → 1,55 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Category', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$parentID = $_GET['parentID']; |
if (empty($parentID)) |
{ |
$parentID = -1; |
} |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
?> |
<form action="add-category-do.php" method="POST"> |
<input type="hidden" name="parentID" value="<?php echo $parentID; ?>" /> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" /></td> |
</tr> |
<tr> |
<td class="bold">Description: </td> |
<td><input type="text" name="description" /></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" value="Add" /></td> |
</tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/projects/edit-project.php |
---|
0,0 → 1,77 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Edit Project', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$project = $page->getProject($page->getGetID()); |
if (!$project) |
{ |
$page->drawError('No such project, #' . $page->getGetID()); |
} |
?> |
<p class="bold">Here you can edit a project from the Tim32 database.</p> |
<p>Leave an input blank to keep it as it is.</p> |
<br /> |
<?php |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
if ($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $project->author->ID) |
{ |
?> |
<form action="edit-project-do.php" method="POST"> |
<input type="hidden" name="id" value="<?php echo $project->ID; ?>" /> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" value="<?php echo $project->title; ?>" /></td> |
</tr> |
<tr> |
<td class="bold">Description: </td> |
<td><textarea name="description"><?php echo $project->description; ?></textarea></td> |
</tr> |
<tr> |
<td class="bold">Logo URL: </td> |
<td><input type="text" name="logourl" value="<?php echo $project->logoURL; ?>" /></td> |
</tr> |
<tr> |
<td class="bold">Website URL: </td> |
<td><input type="text" name="websiteurl" value="<?php echo $project->websiteURL; ?>" /></td> |
</tr> |
<tr> |
<td class="bold">DownloadURL: </td> |
<td><input type="text" name="downloadurl" value="<?php echo $project->downloadURL; ?>" /></td> |
</tr> |
<tr> |
<td class="bold">Latest Version: </td> |
<td><input type="text" name="latestversion" value="<?php echo $project->latestVersion; ?>" /></td> |
</tr> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Edit Project" /></td> |
</tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/projects/index.php |
---|
0,0 → 1,60 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Projects', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
write('<p class="bold">Here you can find all the projects that are created by members of Tim32!</p><br />'); |
if ($page->isUserGM($page->getLoggedInUser())) |
{ |
write('<p class="bold"><a href="add-project.php">Add Project</a></p>'); |
write('<br />'); |
} |
$ids = $page->findIDs('Projects', 'ORDER BY LastUpdate DESC'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$id = $ids[$i]; |
$project = $page->getProject($id); |
write('<h3>' . $project->title . '</h3>'); |
write('<table style="border: 0px;">'); |
write('<tr>'); |
write('<td style="border: 0px; vertical-align: top;"><img class="smiley" src="' . $project->logoURL . '" /></td>'); |
write('<td style="border: 0px;">'); |
if (empty($project->latestVersion)) |
{ |
write('<h4>No Releases</h4>'); |
} |
else |
{ |
write('<h4>Latest Version: ' . $project->latestVersion . '</h4>'); |
} |
write('<p>Project Author: ' . $project->author->name . '</p>'); |
write('<p>' . $page->replaceBBCode($project->description) . '</p>'); |
write('<p>'); |
if (!empty($project->websiteURL)) |
{ |
write('<a href="' . $project->websiteURL . '">Website</a>'); |
} |
if (!empty($project->downloadURL)) |
{ |
write(' · <a href="' . $project->downloadURL . '">Download</a>'); |
} |
write('</p>'); |
write('</td>'); |
write('</tr>'); |
write('</table>'); |
if ($page->isUserAdmin($page->getLoggedInUser()) || $user->ID == $project->author->ID) |
{ |
write('<p class="bold"><a href="edit-project.php?id=' . $project->ID . '">Edit Project</a> · <a href="delete-project-do.php?id=' . $project->ID . '">Delete Project</a></p>'); |
} |
write('<br />'); |
} |
$page->drawFooter(); |
?> |
/projects/edit-project-do.php |
---|
0,0 → 1,59 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Edit Project', '../'); |
$project = $page->getProject($page->getPostID()); |
if (!$project) |
{ |
$page->drawError('No such project, #' . $page->getPostID()); |
} |
$title = $_POST['title']; |
$description = $_POST['description']; |
$logoURL = $_POST['logourl']; |
$websiteURL = $_POST['websiteurl']; |
$downloadURL = $_POST['downloadurl']; |
$latestVersion = $_POST['latestversion']; |
$page->checkLoggedIn(); |
$user = $page->getLoggedInUser(); |
if ($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $project->author->ID) |
{ |
if (!empty($title)) |
{ |
$page->query('UPDATE Projects SET Title = "' . $title . '" WHERE ID = ' . $project->ID); |
} |
if (!empty($description)) |
{ |
$page->query('UPDATE Projects SET Description = "' . $description . '" WHERE ID = ' . $project->ID); |
} |
if (!empty($logoURL)) |
{ |
$page->query('UPDATE Projects SET LogoURL = "' . $logoURL . '" WHERE ID = ' . $project->ID); |
} |
if (!empty($websiteURL)) |
{ |
$page->query('UPDATE Projects SET WebsiteURL = "' . $websiteURL . '" WHERE ID = ' . $project->ID); |
} |
if (!empty($downloadURL)) |
{ |
$page->query('UPDATE Projects SET DownloadURL = "' . $downloadURL . '" WHERE ID = ' . $project->ID); |
} |
if (!empty($latestVersion)) |
{ |
$page->query('UPDATE Projects SET LatestVersion = "' . $latestVersion . '" WHERE ID = ' . $project->ID); |
} |
$page->query('UPDATE Projects SET LastUpdate = NOW() WHERE ID = ' . $project->ID); |
$page->redirect('index.php'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
?> |
/projects/delete-project-do.php |
---|
0,0 → 1,28 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Delete Project', '../'); |
$page->checkLoggedIn(); |
$id = $page->getGetID(); |
$project = $page->getProject($id); |
if (($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $project->author->ID) && $project) |
{ |
$page->query('DELETE FROM Projects WHERE ID = ' . $id); |
$page->redirect('index.php'); |
} |
else |
{ |
if (!$project) |
{ |
$page->drawError('No such project, #' . $id); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
?> |
/projects/add-project-do.php |
---|
0,0 → 1,36 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Project', '../'); |
$title = $_POST['title']; |
$description = $_POST['description']; |
$logoURL = $_POST['logourl']; |
$websiteURL = $_POST['websiteurl']; |
$downloadURL = $_POST['downloadurl']; |
$latestVersion = $_POST['latestversion']; |
$page->checkLoggedIn(); |
$user = $page->getLoggedInUser(); |
if (empty($title)) |
{ |
$page->redirect('add-project.php?error=No Title Specified'); |
} |
if (empty($description)) |
{ |
$page->redirect('add-project.php?error=No Title Specified'); |
} |
if ($page->isUserGM($user)) |
{ |
$page->query('INSERT INTO Projects VALUES (0, ' . $user->ID . ', "' . $title . '", "' . $description . '", "' . $logoURL . '", "' . $downloadURL . '", "' . $websiteURL . '", "' . $latestVersion . '", NOW())'); |
$page->redirect('index.php'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
?> |
/projects/add-project.php |
---|
0,0 → 1,69 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Project', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
?> |
<p class="bold">Here you can add a project to the Tim32 database.</p> |
<br /> |
<?php |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
$page->checkLoggedIn(); |
if ($page->isUserGM($page->getLoggedInUser())) |
{ |
?> |
<form action="add-project-do.php" method="POST"> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" /></td> |
</tr> |
<tr> |
<td class="bold">Description: </td> |
<td><textarea name="description"></textarea></td> |
</tr> |
<tr> |
<td class="bold">Logo URL: </td> |
<td><input type="text" name="logourl" /></td> |
</tr> |
<tr> |
<td class="bold">Website URL: </td> |
<td><input type="text" name="websiteurl" /></td> |
</tr> |
<tr> |
<td class="bold">DownloadURL: </td> |
<td><input type="text" name="downloadurl" /></td> |
</tr> |
<tr> |
<td class="bold">Latest Version: </td> |
<td><input type="text" name="latestversion" /></td> |
</tr> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Add Project" /></td> |
</tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/install.sql |
---|
1,30 → 1,72 |
DROP DATABASE Tim32; |
CREATE DATABASE Tim32; |
USE Tim32; |
CREATE TABLE Users |
( |
ID INT NOT NULL AUTO_INCREMENT, |
AccessID INT, |
Username TEXT, |
Password TEXT, |
EmailAddress TEXT, |
Name TEXT, |
ChallengeID INT, |
PRIMARY KEY(ID) |
); |
CREATE TABLE BlogPosts |
( |
ID INT NOT NUll AUTO_INCREMENT, |
AuthorID INT, |
Title TEXT, |
Content TEXT, |
DatePosted DATETIME, |
Category TEXT, |
PRIMARY KEY(ID) |
); |
INSERT INTO Users VALUES (1, 0, "admin", SHA1("password"), "admins@tim32.org", "Tim32 Admin", 0); |
INSERT INTO BlogPosts VALUES(1, 1, "Welcome to Tim32!", "Welcome to the new Tim32 website! It has had a complete design re-think to make it simpler and easier to use!", NOW(), "Tim32"); |
DROP DATABASE Tim32; |
CREATE DATABASE Tim32; |
USE Tim32; |
CREATE TABLE Users |
( |
ID INT NOT NULL AUTO_INCREMENT, |
AccessID INT, |
Username TEXT, |
Password TEXT, |
EmailAddress TEXT, |
Name TEXT, |
ChallengeID INT, |
PRIMARY KEY(ID) |
); |
CREATE TABLE BlogPosts |
( |
ID INT NOT NUll AUTO_INCREMENT, |
ParentID INT, |
AuthorID INT, |
Title TEXT, |
Content TEXT, |
DatePosted DATETIME, |
Category TEXT, |
Spam BOOLEAN, |
PRIMARY KEY(ID) |
); |
CREATE TABLE Projects |
( |
ID INT NOT NUll AUTO_INCREMENT, |
AuthorID INT, |
Title TEXT, |
Description TEXT, |
LogoURL TEXT, |
DownloadURL TEXT, |
WebsiteURL TEXT, |
LatestVersion TEXT, |
LastUpdate DATETIME, |
PRIMARY KEY(ID) |
); |
CREATE TABLE ForumCategories |
( |
ID INT NOT NUll AUTO_INCREMENT, |
ParentID INT, |
Title TEXT, |
Description TEXT, |
PRIMARY KEY(ID) |
); |
CREATE TABLE ForumPosts |
( |
ID INT NOT NUll AUTO_INCREMENT, |
AuthorID INT, |
CategoryID INT, |
ParentID INT, |
Title TEXT, |
Content TEXT, |
DatePosted DATETIME, |
Spam BOOLEAN, |
PRIMARY KEY(ID) |
); |
INSERT INTO Users VALUES (1, 0, "admin", SHA1("password"), "admins@tim32.org", "Tim32 Admin", 0); |
INSERT INTO BlogPosts VALUES(1, -1, 1, "Welcome to Tim32!", "Welcome to the new Tim32 website! It has had a complete design re-think to make it simpler and easier to use!", NOW(), "Tim32", FALSE); |
INSERT INTO Projects VALUES (1, 1, "TAIOS", "TAIOS (The All In One System) is a PHP based system to make the Tim32 website very self contained and altogether.", "http://websvn.kde.org/*checkout*/trunk/kdesupport/oxygen-icons/64x64/categories/applications-internet.png", "", "http://tim32.org/~tom/taios/", "SVN", NOW()); |
INSERT INTO ForumCategories VALUES (1, -1, "Tim32", "Talk about Tim32 in here"); |
INSERT INTO ForumCategories VALUES (2, 1, "TAIOS", "Talk about TAIOS in here"); |
INSERT INTO ForumPosts VALUES (1, 1, 2, -1, "TAIOS Almost Finished", "As I speak we are currently in the process of finilising TAIOS so it works perfectly! I'm pleased to accounce that TAIOS should be ready within the next week or so! :D", NOW(), FALSE); |
/data/smilies/face-laugh.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/data/smilies/face-laugh.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-plain.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-plain.png |
=================================================================== |
--- data/smilies/face-plain.png (nonexistent) |
+++ data/smilies/face-plain.png (revision 439) |
/data/smilies/face-plain.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-sad.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-sad.png |
=================================================================== |
--- data/smilies/face-sad.png (nonexistent) |
+++ data/smilies/face-sad.png (revision 439) |
/data/smilies/face-sad.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-uncertain.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-uncertain.png |
=================================================================== |
--- data/smilies/face-uncertain.png (nonexistent) |
+++ data/smilies/face-uncertain.png (revision 439) |
/data/smilies/face-uncertain.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-wink.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-wink.png |
=================================================================== |
--- data/smilies/face-wink.png (nonexistent) |
+++ data/smilies/face-wink.png (revision 439) |
/data/smilies/face-wink.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-raspberry.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-raspberry.png |
=================================================================== |
--- data/smilies/face-raspberry.png (nonexistent) |
+++ data/smilies/face-raspberry.png (revision 439) |
/data/smilies/face-raspberry.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-surprise.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-surprise.png |
=================================================================== |
--- data/smilies/face-surprise.png (nonexistent) |
+++ data/smilies/face-surprise.png (revision 439) |
/data/smilies/face-surprise.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-smile.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-smile.png |
=================================================================== |
--- data/smilies/face-smile.png (nonexistent) |
+++ data/smilies/face-smile.png (revision 439) |
/data/smilies/face-smile.png | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Property changes: | |||||||||||||||||||||||||
Added: svn:mime-type | |||||||||||||||||||||||||
## -0,0 +1 ## | |||||||||||||||||||||||||
+application/octet-stream | |||||||||||||||||||||||||
\ No newline at end of property | |||||||||||||||||||||||||
Index: login-do.php | |||||||||||||||||||||||||
=================================================================== | |||||||||||||||||||||||||
--- login-do.php (revision 1) | |||||||||||||||||||||||||
+++ login-do.php (revision 439) | |||||||||||||||||||||||||
@@ -1,37 +1,37 @@ | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-require '_taios.php'; | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-$page = new Taios_Page('Login'); | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-$username = $_POST['username']; | |||||||||||||||||||||||||
-$password = $_POST['password']; | |||||||||||||||||||||||||
-$remember = $_POST['remember'] == 'yes'; | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-if (empty($username)) | |||||||||||||||||||||||||
-{ | |||||||||||||||||||||||||
- $page->redirect('login.php?error=No Username Specified'); | |||||||||||||||||||||||||
-} | |||||||||||||||||||||||||
-if (empty($password)) | |||||||||||||||||||||||||
-{ | |||||||||||||||||||||||||
- $page->redirect('login.php?error=No Password Specified'); | |||||||||||||||||||||||||
-} | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-$user = $page->getUserByUsername($username); | |||||||||||||||||||||||||
-if (!$user || $user->password != sha1($password)) | |||||||||||||||||||||||||
-{ | |||||||||||||||||||||||||
- $page->redirect('login.php?error=Incorrect Username or Password'); | |||||||||||||||||||||||||
-} | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-$expires = -1; | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-if ($remember) | |||||||||||||||||||||||||
-{ | |||||||||||||||||||||||||
- $expires = time() + 60 * 60 * 24 * 30; | |||||||||||||||||||||||||
-} | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-setcookie('Tim32_Login', $user->username . '|~|' . $user->password, $expires, '/'); | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-$page->redirect('index.php'); | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+require '_taios.php'; | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+$page = new Taios_Page('Login'); | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+$username = $_POST['username']; | |||||||||||||||||||||||||
+$password = $_POST['password']; | |||||||||||||||||||||||||
+$remember = $_POST['remember'] == 'yes'; | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+if (empty($username)) | |||||||||||||||||||||||||
+{ | |||||||||||||||||||||||||
+ $page->redirect('login.php?error=No Username Specified'); | |||||||||||||||||||||||||
+} | |||||||||||||||||||||||||
+if (empty($password)) | |||||||||||||||||||||||||
+{ | |||||||||||||||||||||||||
+ $page->redirect('login.php?error=No Password Specified'); | |||||||||||||||||||||||||
+} | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+$user = $page->getUserByUsername($username); | |||||||||||||||||||||||||
+if (!$user || $user->password != sha1($password)) | |||||||||||||||||||||||||
+{ | |||||||||||||||||||||||||
+ $page->redirect('login.php?error=Incorrect Username or Password'); | |||||||||||||||||||||||||
+} | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+$expires = -1; | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+if ($remember) | |||||||||||||||||||||||||
+{ | |||||||||||||||||||||||||
+ $expires = time() + 60 * 60 * 24 * 30; | |||||||||||||||||||||||||
+} | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+setcookie('Tim32_Login', $user->username . '|~|' . $user->password, $expires, '/'); | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+$page->redirect('index.php'); | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+?> | |||||||||||||||||||||||||
Index: login.php | |||||||||||||||||||||||||
=================================================================== | |||||||||||||||||||||||||
--- login.php (revision 1) | |||||||||||||||||||||||||
+++ login.php (revision 439) | |||||||||||||||||||||||||
@@ -1,48 +1,48 @@ | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-require '_taios.php'; | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-$page = new Taios_Page('Login'); | |||||||||||||||||||||||||
-$page->drawHeader(); | |||||||||||||||||||||||||
-$page->drawMiddle(); | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- Here you can login to Tim32 using your Tim32 account. | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-if (isset($_GET['error'])) | |||||||||||||||||||||||||
-{ | |||||||||||||||||||||||||
- $page->drawError($_GET['error'], false); | |||||||||||||||||||||||||
-} | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-
| |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-$page->drawFooter(); | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+require '_taios.php'; | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+$page = new Taios_Page('Login'); | |||||||||||||||||||||||||
+$page->drawHeader(); | |||||||||||||||||||||||||
+$page->drawMiddle(); | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+?> | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ Here you can login to Tim32 using your Tim32 account. | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+if (isset($_GET['error'])) | |||||||||||||||||||||||||
+{ | |||||||||||||||||||||||||
+ $page->drawError($_GET['error'], false); | |||||||||||||||||||||||||
+} | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+?> | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+
| |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+$page->drawFooter(); | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+?> | |||||||||||||||||||||||||
Index: logout-do.php | |||||||||||||||||||||||||
=================================================================== | |||||||||||||||||||||||||
--- logout-do.php (revision 1) | |||||||||||||||||||||||||
+++ logout-do.php (revision 439) | |||||||||||||||||||||||||
@@ -1,6 +1,6 @@ | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-setcookie('Tim32_Login', '', -1, '/'); | |||||||||||||||||||||||||
-header('Location: index.php'); | |||||||||||||||||||||||||
- | |||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+setcookie('Tim32_Login', '', -1, '/'); | |||||||||||||||||||||||||
+header('Location: index.php'); | |||||||||||||||||||||||||
+ | |||||||||||||||||||||||||
+?> |