Subversion Repositories taios

Compare Revisions

Ignore whitespace Rev 1 → Rev 337

/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/album.php
0,0 → 1,81
<?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>');
 
$i = 0;
 
$dir = dir('albums/' . $dirName);
while (($file = $dir->read()) !== false)
{
if (getimagesize('albums/' . $dirName . '/' . $file))
{
if ($file[0] != '.')
{
if ($i >= 4)
{
write('</tr><tr>');
$i = 0;
}
$filename = 'albums/' . $dirName . '/' . $file;
$size = getImageSizes($filename, 200, 200);
write('<td><a href="' . $filename . '"><img width="' . $size[0] . '" height="' . $size[1] . '" src="' . $filename . '" /></a></td>');
$i++;
}
}
}
 
write('</tr>');
write('<table>');
 
$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 337)
/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: mobile.css
===================================================================
--- mobile.css (nonexistent)
+++ mobile.css (revision 337)
@@ -0,0 +1,148 @@
+body {
+ background-color: #FFFFFF;
+ color: #000000;
+
+ font-family: Droid Sans, Tahoma, sans-serif;
+ font-size: 11pt;
+
+ margin: 0px;
+ padding: 0px;
+}
+
+h1 {
+ font-size: 28pt;
+ margin: 8px;
+ margin-top: 0px;
+ color: #FFFFFF;
+ border-bottom: 1px solid #FFFFFF;
+}
+
+h2 {
+ font-size: 20pt;
+ margin: 8px;
+ margin-left: 8px;
+ color: #00004B;
+}
+
+h3 {
+ font-size: 16pt;
+ margin: 8px;
+ margin-left: 10px;
+ color: #000055;
+}
+
+h4 {
+ font-size: 12pt;
+ margin: 8px;
+ margin-left: 12px;
+ color: #00005F;
+}
+
+h5 {
+ font-size: 10pt;
+ margin: 8px;
+ margin-left: 14px;
+ color: #000069;
+}
+
+p, table, span {
+ font-size: 11pt;
+ margin: 8px;
+ margin-left: 16px;
+}
+
+a {
+ text-decoration: none;
+ color: #000050;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+input {
+ 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 {
+ width: 100%;
+ border-right: 0px solid #000089;
+ background-color: #032865;
+ color: #FFFFFF;
+}
+
+.sidebar-header {
+ left: 0px;
+ width: 140px;
+ padding: 6px;
+ text-align: right;
+}
+
+.sidebar-menu {
+ text-align: right;
+ padding: 6px;
+ color: #FFFFFF;
+}
+
+.sidebar-menu h3 {
+ margin: 6px;
+ color: #FFFFFF;
+}
+
+.sidebar-menu p {
+ font-size: 12pt;
+ margin: 4px;
+}
+
+.sidebar-menu a {
+ color: #FFFFFF;
+}
+
+.content {
+ left: 194px;
+ top: 0px;
+ position: absolute;
+ margin-right: 32px;
+}
+
+.bold {
+ font-weight: bold;
+}
+
+.indent {
+ margin-left: 14px;
+ border-left: 1px solid #BBBBBB;
+}
+
+.code {
+ border: 1px solid #333333;
+ background-color: #DDDDDD;
+ font-family: Droid Sans Mono, Monospace, Fixed;
+}
+
Index: _taios.php
===================================================================
--- _taios.php (revision 1)
+++ _taios.php (revision 337)
@@ -1,290 +1,540 @@
-
-
-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('Tim32 · ' . $this->title . '');
- 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('

' . $t . '

');
- }
-
- 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('Tim32 · ' . $this->title . '');
+ 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('

' . $t . '

');
+ }
+
+ 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 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 '

Add Comment';

+ 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)
+ {
+ $newstr = str_replace("<", "[", $str);
+ $newstr = str_replace(">", "]", $newstr);
+ $newstr = str_replace("\n", '

', $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',
+ '/\[code\](.+?)\[\/code\]/is',
+ '/\[img\](.+?)\[\/img\]/is'
+ );
+
+ $html = array(
+ '$1',
+ '$1',
+ '$1',
+ '$1',
+ '
$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 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: index.php
===================================================================
--- index.php (revision 1)
+++ index.php (revision 337)
@@ -1,45 +1,39 @@
-
-
-require '_taios.php';
-
-$page = new Taios_Page('Home');
-$page->drawHeader();
-write('

Pages

');
-$page->drawMenuItem('Biggles', '/~biggles/');
-$page->drawMenuItem('Freddie', '/~freddie/');
-$page->drawMenuItem('Muzer', '/~muzer/');
-$page->drawMenuItem('Sh4rk', '/~szabot/');
-$page->drawMenuItem('Tom', '/~tom/');
-$page->drawMiddle();
-
-?>
-
-

Welcome to Tim32!

-

Tim32 is a 10 year-old laptop running Ubuntu Server Edition 10.04.

-
-
-

Latest Blog Posts

-
-
-
-$ids = $page->findIDs('BlogPosts');
-for ($i = 0; $i < 5 && $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 . '

');
- write('
');
-}
-
-if ($page->isLoggedIn())
-{
- write('

Actions

');
- write('

Manage Account

');
-}
-
-$page->drawFooter();
-
-?>
+
+
+require '_taios.php';
+
+$page = new Taios_Page('Home');
+$page->drawHeader();
+write('

Pages

');
+$page->drawMenuItem('Biggles', '/~biggles/');
+$page->drawMenuItem('Freddie (FredFace)', '/~freddie/');
+$page->drawMenuItem('Muzer', '/~muzer/');
+$page->drawMenuItem('Sh4rk', '/~szabot/');
+$page->drawMenuItem('Tom (TomMan)', '/~tom/');
+$page->drawMiddle();
+
+?>
+
+

Welcome to Tim32!

+

Tim32 is a 10 year-old laptop running Ubuntu Server Edition 10.04.

+
+
+

Latest Blog Posts

+
+
+
+$ids = $page->findIDs('BlogPosts', 'WHERE ParentID = -1 ORDER BY DatePosted DESC');
+for ($i = 0; $i < 5 && $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: styles.css
===================================================================
--- styles.css (revision 1)
+++ styles.css (revision 337)
@@ -8,15 +8,15 @@
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 +23,7 @@
h3 {
font-size: 16pt;
- margin: 6px;
+ margin: 8px;
margin-left: 10px;
color: #000055;
}
@@ -30,7 +30,7 @@
h4 {
font-size: 12pt;
- margin: 6px;
+ margin: 8px;
margin-left: 12px;
color: #00005F;
}
@@ -37,7 +37,7 @@
h5 {
font-size: 10pt;
- margin: 6px;
+ margin: 8px;
margin-left: 14px;
color: #000069;
}
@@ -44,7 +44,7 @@
p, table, span {
font-size: 11pt;
- margin: 6px;
+ margin: 8px;
margin-left: 16px;
}
@@ -61,8 +61,32 @@
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;
@@ -69,12 +93,9 @@
position: fixed;
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 {
@@ -87,10 +108,12 @@
.sidebar-menu {
text-align: right;
padding: 6px;
+ color: #FFFFFF;
}
.sidebar-menu h3 {
margin: 6px;
+ color: #FFFFFF;
}
.sidebar-menu p {
@@ -98,11 +121,14 @@
margin: 4px;
}
+.sidebar-menu a {
+ color: #FFFFFF;
+}
+
.content {
- left: 200px;
+ left: 194px;
top: 0px;
position: absolute;
- width: 720px;
margin-right: 32px;
}
@@ -109,3 +135,15 @@
.bold {
font-weight: bold;
}
+
+.indent {
+ margin-left: 14px;
+ border-left: 1px solid #BBBBBB;
+}
+
+.code {
+ border: 1px solid #333333;
+ background-color: #DDDDDD;
+ font-family: Droid Sans Mono, Monospace, Fixed;
+}
+
/404.php
0,0 → 1,29
<?php
 
require '_taios.php';
 
$page = new Taios_Page('404');
$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->drawFooter();
 
?>
/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);
 
?>
 
/wiki/index.php
0,0 → 1,38
<?php
 
require '../_taios.php';
 
$pageName = $_GET['page'];
if (empty($pageName))
{
$pageName = 'Index';
}
 
$page = new Taios_Page('Wiki - ' . $pageName, '../');
$page->drawHeader();
$page->drawMiddle();
 
write('<p><i>The wiki is still under construction.</i></p>');
 
if ($page->isUserGM($page->getLoggedInUser()))
{
write('<p><a href="edit.php?page=' . $pageName . '">Edit Page</a></p><br />');
}
 
$filename = 'pages/' . $pageName . '.txt';
 
$fp = @fopen($filename, 'r');
if ($fp)
{
write('<p>' . $page->replaceBBCode(fread($fp, filesize($filename))) . '</p>');
fclose($fp);
}
else
{
write('<p>This page is empty.</p>');
}
 
$page->drawFooter();
 
?>
 
/wiki/edit-do.php
0,0 → 1,40
<?php
 
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();
 
?>
 
/wiki/edit.php
0,0 → 1,54
<?php
 
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);
}
?>
 
<form action="edit-do.php" method="POST">
<input type="hidden" name="page" value="<?php echo $pageName; ?>" />
<table>
<tr>
<td><textarea name="content"><?php echo $content; ?></textarea></td>
</tr>
<tr>
<td><input type="submit" value="Edit" /></td>
</tr>
</table>
</form>
 
<?php
}
else
{
$page->drawError('You do not have permission to access this page.');
}
 
$page->drawFooter();
 
?>
 
/wiki/pages/Index.txt
0,0 → 1,4
[b]Welcome to the Tim32 Wiki![/b]
 
Here you can talk about pretty much anything!
 
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: forums/index.php
===================================================================
--- forums/index.php (nonexistent)
+++ forums/index.php (revision 337)
@@ -0,0 +1,81 @@
+
+
+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('

The forums are still under construction.

');
+
+write('

');

+if ($parentID != -1)
+{
+ write('Back to root');
+}
+if ($page->isLoggedIn())
+{
+ if ($parentID != -1)
+ {
+ write(' · ');
+ }
+ write('Add Post');
+}
+if ($page->isUserAdmin($page->getLoggedInUser()))
+{
+ if ($page->isLoggedIn())
+ {
+ write(' · ');
+ }
+ write('Add Category');
+}
+write('


');
+
+$ids = $page->findIDs('ForumCategories', 'WHERE ParentID = ' . $parentID . ' ORDER BY Title ASC');
+
+if (count($ids) >= 1)
+{
+ write('

Categories

');
+}
+
+for ($i = 0; $i < count($ids); $i++)
+{
+ $forumCategory = $page->getForumCategory($ids[$i]);
+ write('

' . $forumCategory->title . '

');
+ write('

' . $forumCategory->description . '

');
+ if ($page->isUserAdmin($page->getLoggedInUser()))
+ {
+ write('

Edit Category   ·   Delete Category

');
+ }
+ write('
');
+}
+
+$ids = $page->findIDs('ForumPosts', 'WHERE CategoryID = ' . $parentID . ' AND ParentID = -1 ORDER BY Title ASC');
+
+if (count($ids) >= 1)
+{
+ write('

Topics

');
+}
+
+for ($i = 0; $i < count($ids); $i++)
+{
+ $forumPost = $page->getForumPost($ids[$i]);
+ write('

' . $forumPost->title . '

');
+ write('
');
+}
+
+$page->drawFooter();
+
+?>
+
Index: forums/post.php
===================================================================
--- forums/post.php (nonexistent)
+++ forums/post.php (revision 337)
@@ -0,0 +1,45 @@
+
+
+require '../_taios.php';
+
+$page = new Taios_Page('Forum Post', '../');
+$page->drawHeader();
+$page->drawMiddle();
+
+$id = $page->getGetID();
+$forumPost = $page->getForumPost($id);
+write('

Back to Topics


');
+write('

' . $forumPost->title . '

');
+write('
Posted On ' . date('l j F Y', $forumPost->datePosted) . ' by ' . $forumPost->author->name . ' (' . $forumPost->author->username . ')
');
+write('

' . $page->replaceBBCode($forumPost->content) . '

');
+if ($page->isLoggedIn())
+{
+ write('

Post Reply');

+ if ($page->isUserAdmin($page->getLoggedInUser()) || $forumPost->author->ID == $page->getLoggedInUser()->ID)
+ {
+ write('   ·   Edit Post');
+ write('   ·   Delete Post');
+ }
+ write('

');
+}
+write('
');
+
+$ids = $page->findIDs('ForumPosts', 'WHERE ParentID = ' . $id . ' ORDER BY DatePosted ASC');
+for ($i = 0; $i < count($ids); $i++)
+{
+ $forumPost = $page->getForumPost($ids[$i]);
+ write('

' . $forumPost->title . '

');
+ write('
Posted On ' . date('l j F Y', $forumPost->datePosted) . ' by ' . $forumPost->author->name . ' (' . $forumPost->author->username . ')
');
+ write('

' . $page->replaceBBCode($forumPost->content) . '

');
+ if ($page->isUserAdmin($page->getLoggedInUser()) || $forumPost->author->ID == $page->getLoggedInUser()->ID)
+ {
+ write('

Edit Post');

+ write('   ·   Delete Post

');
+ }
+ write('
');
+}
+
+$page->drawFooter();
+
+?>
+
Index: forums/delete-post-do.php
===================================================================
--- forums/delete-post-do.php (nonexistent)
+++ forums/delete-post-do.php (revision 337)
@@ -0,0 +1,30 @@
+
+
+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.');
+ }
+}
+
+?>
+
Index: forums/add-post-do.php
===================================================================
--- forums/add-post-do.php (nonexistent)
+++ forums/add-post-do.php (revision 337)
@@ -0,0 +1,36 @@
+
+
+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);
+
+?>
+
Index: forums/add-post.php
===================================================================
--- forums/add-post.php (nonexistent)
+++ forums/add-post.php (revision 337)
@@ -0,0 +1,62 @@
+
+
+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);
+}
+
+?>
+
+
+
+
+
+
+Title:
+
+
+
+Content:
+
+
+
+
+
+
+
+
+
+
+}
+else
+{
+ $page->drawError('You do not have permission to access this page.');
+}
+
+$page->drawFooter();
+
+?>
+
Index: forums/edit-category.php
===================================================================
--- forums/edit-category.php (nonexistent)
+++ forums/edit-category.php (revision 337)
@@ -0,0 +1,59 @@
+
+
+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);
+}
+
+?>
+
+
+
+
+
+Title:
+
+
+
+Description:
+
+
+
+
+
+
+
+
+
+
+}
+else
+{
+ if (!$cat)
+ {
+ $page->drawError('No such Forum Category, #' . $id);
+ }
+ else
+ {
+ $page->drawError('You do not have permission to access this page.');
+ }
+}
+
+$page->drawFooter();
+
+?>
+
Index: forums/edit-category-do.php
===================================================================
--- forums/edit-category-do.php (nonexistent)
+++ forums/edit-category-do.php (revision 337)
@@ -0,0 +1,30 @@
+
+
+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.');
+}
+
+?>
+
Index: forums/delete-category-do.php
===================================================================
--- forums/delete-category-do.php (nonexistent)
+++ forums/delete-category-do.php (revision 337)
@@ -0,0 +1,22 @@
+
+
+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.');
+}
+
+?>
+
Index: forums/add-category-do.php
===================================================================
--- forums/add-category-do.php (nonexistent)
+++ forums/add-category-do.php (revision 337)
@@ -0,0 +1,34 @@
+
+
+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.');
+}
+
+?>
+
Index: forums/add-category.php
===================================================================
--- forums/add-category.php (nonexistent)
+++ forums/add-category.php (revision 337)
@@ -0,0 +1,55 @@
+
+
+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);
+}
+
+?>
+
+
+
+
+
+Title:
+
+
+
+Description:
+
+
+
+
+
+
+
+
+
+
+}
+else
+{
+ $page->drawError('You do not have permission to access this page.');
+}
+
+$page->drawFooter();
+
+?>
+
Index: projects/edit-project.php
===================================================================
--- projects/edit-project.php (nonexistent)
+++ projects/edit-project.php (revision 337)
@@ -0,0 +1,77 @@
+
+
+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());
+}
+
+?>
+
+

Here you can edit a project from the Tim32 database.

+

Leave an input blank to keep it as it is.

+
+
+
+
+if (isset($_GET['error']))
+{
+ $page->drawError($_GET['error'], false);
+}
+
+if ($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $project->author->ID)
+{
+?>
+
+
+
+
+
+Title:
+
+
+
+Description:
+
+
+
+Logo URL:
+
+
+
+Website URL:
+
+
+
+DownloadURL:
+
+
+
+Latest Version:
+
+
+
+
+
+
+
+
+
+
+}
+else
+{
+ $page->drawError('You do not have permission to access this page.');
+}
+
+$page->drawFooter();
+
+?>
Index: projects/index.php
===================================================================
--- projects/index.php (nonexistent)
+++ projects/index.php (revision 337)
@@ -0,0 +1,60 @@
+
+
+require '../_taios.php';
+
+$page = new Taios_Page('Projects', '../');
+$page->drawHeader();
+$page->drawMiddle();
+
+write('

Here you can find all the projects that are created by members of Tim32!


');
+if ($page->isUserGM($page->getLoggedInUser()))
+{
+ write('

Add Project

');
+ write('
');
+}
+
+$ids = $page->findIDs('Projects', 'ORDER BY LastUpdate DESC');
+for ($i = 0; $i < count($ids); $i++)
+{
+ $id = $ids[$i];
+ $project = $page->getProject($id);
+
+ write('

' . $project->title . '

');
+ write('');');');');
+ write('
+ write('
+ write('');
+ if (empty($project->latestVersion))
+ {
+ write('

No Releases

');
+ }
+ else
+ {
+ write('

Latest Version: ' . $project->latestVersion . '

');
+ }
+ write('

Project Author: ' . $project->author->name . '

');
+ write('

' . $page->replaceBBCode($project->description) . '

');
+ write('

');

+ if (!empty($project->websiteURL))
+ {
+ write('Website');
+ }
+ if (!empty($project->downloadURL))
+ {
+ write(' · Download');
+ }
+ write('

');
+ write('');
+ write('
+ write('
');
+ if ($page->isUserAdmin($page->getLoggedInUser()) || $user->ID == $project->author->ID)
+ {
+ write('

Edit Project    ·    Delete Project

');
+ }
+ write('
');
+}
+
+$page->drawFooter();
+
+?>
+
Index: projects/edit-project-do.php
===================================================================
--- projects/edit-project-do.php (nonexistent)
+++ projects/edit-project-do.php (revision 337)
@@ -0,0 +1,59 @@
+
+
+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.');
+}
+
+?>
Index: projects/delete-project-do.php
===================================================================
--- projects/delete-project-do.php (nonexistent)
+++ projects/delete-project-do.php (revision 337)
@@ -0,0 +1,28 @@
+
+
+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.');
+ }
+}
+
+?>
Index: projects/add-project-do.php
===================================================================
--- projects/add-project-do.php (nonexistent)
+++ projects/add-project-do.php (revision 337)
@@ -0,0 +1,36 @@
+
+
+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.');
+}
+
+?>
Index: projects/add-project.php
===================================================================
--- projects/add-project.php (nonexistent)
+++ projects/add-project.php (revision 337)
@@ -0,0 +1,69 @@
+
+
+require '../_taios.php';
+
+$page = new Taios_Page('Add Project', '../');
+$page->drawHeader();
+$page->drawMiddle();
+
+?>
+
+

Here you can add a project to the Tim32 database.

+
+
+
+
+if (isset($_GET['error']))
+{
+ $page->drawError($_GET['error'], false);
+}
+
+$page->checkLoggedIn();
+
+if ($page->isUserGM($page->getLoggedInUser()))
+{
+?>
+
+
+
+
+Title:
+
+
+
+Description:
+
+
+
+Logo URL:
+
+
+
+Website URL:
+
+
+
+DownloadURL:
+
+
+
+Latest Version:
+
+
+
+
+
+
+
+
+
+
+}
+else
+{
+ $page->drawError('You do not have permission to access this page.');
+}
+
+$page->drawFooter();
+
+?>
Index: install.sql
===================================================================
--- install.sql (revision 1)
+++ install.sql (revision 337)
@@ -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);
Index: blog/edit-post.php
===================================================================
--- blog/edit-post.php (nonexistent)
+++ blog/edit-post.php (revision 337)
@@ -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);
+}
+
+?>
+
+
+
+
+Title:
+
+
+
+Content:
+
+
+
+Catagory:
+
+
+
+
+write('');
+?>
+
+
+
+
+
+
+
+
+
+
+$page->drawFooter();
+
+?>
+
Index: blog/post.php
===================================================================
--- blog/post.php (nonexistent)
+++ blog/post.php (revision 337)
@@ -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 337)
@@ -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);
+}
+
+?>
+
+
+
+
+Title:
+
+
+
+Content:
+
+
+
+Catagory:
+
+
+
+
+
+
+write('');
+?>
+
+
+
+
+
+
+
+
+
+
+$page->drawFooter();
+
+?>
Index: blog/index.php
===================================================================
--- blog/index.php (revision 1)
+++ blog/index.php (revision 337)
@@ -1,30 +1,40 @@
-
-
-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('

Add Post

');
- 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();
+$page->drawMiddle();
+
+if ($page->isUserGM($page->getLoggedInUser()))
+{
+ write('

Add Post

');
+ 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/del-post.php
===================================================================
--- blog/del-post.php (nonexistent)
+++ blog/del-post.php (revision 337)
@@ -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: data/smilies/face-laugh.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: data/smilies/face-laugh.png
===================================================================
--- data/smilies/face-laugh.png (nonexistent)
+++ data/smilies/face-laugh.png (revision 337)
/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 337)
/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 337)
/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 337)
/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 337)
/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 337)
/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 337)
/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 337)
/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 337)
@@ -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 337)
@@ -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);
-}
-
-?>
-
-
-
-
-Username:
-
-
-
-Password:
-
-
-
-Remember Me:
-
-
-
-
-
-
-
-
-
-
-
-$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);
+}
+
+?>
+
+
+
+
+Username:
+
+
+
+Password:
+
+
+
+Remember Me:
+
+
+
+
+
+
+
+
+
+
+
+$page->drawFooter();
+
+?>
Index: logout-do.php
===================================================================
--- logout-do.php (revision 1)
+++ logout-do.php (revision 337)
@@ -1,6 +1,6 @@
-
-
-setcookie('Tim32_Login', '', -1, '/');
-header('Location: index.php');
-
-?>
+
+
+setcookie('Tim32_Login', '', -1, '/');
+header('Location: index.php');
+
+?>
Index: register-do.php
===================================================================
--- register-do.php (revision 1)
+++ register-do.php (revision 337)
@@ -1,34 +1,34 @@
-
-
-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');
-
-?>
+
+
+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');
+
+?>
Index: register.php
===================================================================
--- register.php (revision 1)
+++ register.php (revision 337)
@@ -1,56 +1,56 @@
-
-
-require '_taios.php';
-
-$page = new Taios_Page('Register');
-$page->drawHeader();
-$page->drawMiddle();
-
-?>
-
-

Here you can create an account with Tim32.

-
-
-
-
-if (isset($_GET['error']))
-{
- $page->drawError($_GET['error'], false);
-}
-
-?>
-
-
-: :
-
-Username:
-
-
-
-Password:
-
-
-
-Repeat Password:
-
-
-
-Email Address
-
-
-
-Name
-
-
-
-
-
-
-
-
-
-
-
-$page->drawFooter();
-
-?>
+
+
+require '_taios.php';
+
+$page = new Taios_Page('Register');
+$page->drawHeader();
+$page->drawMiddle();
+
+?>
+
+

Here you can create an account with Tim32.

+
+
+
+
+if (isset($_GET['error']))
+{
+ $page->drawError($_GET['error'], false);
+}
+
+?>
+
+
+: :
+
+Username:
+
+
+
+Password:
+
+
+
+Repeat Password:
+
+
+
+Email Address
+
+
+
+Name
+
+
+
+
+
+
+
+
+
+
+
+$page->drawFooter();
+
+?>