Subversion Repositories taios

Compare Revisions

Ignore whitespace Rev 178 → Rev 367

/wiki/index.php
1,13 → 1,65
<?php
 
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';
 
$page = new Taios_Page('Wiki', '../');
$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('<h3>Wiki</h3>');
$page->drawMenuItem('Index', 'wiki/index.php');
$page->drawMenuItem('Random Page', 'wiki/index.php?random');
$page->drawMiddle();
 
write('<br /><p class="bold">This page is currently under construction.</p>');
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: _taios.php
===================================================================
--- _taios.php (revision 178)
+++ _taios.php (revision 367)
@@ -1,439 +1,543 @@
-
-
-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('

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) . '

');
- write('
');
- if ($this->isUserNormal($this->getLoggedInUser()))
- {
- echo '

Add Comment';

- if ($this->isUserAdmin($this->getLoggedInUser()) || $this->getLoggedInUser() == $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("\n", '

', $str);

- $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('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 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;
-}
-
-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('

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(' ', '  ', $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'
+ );
+
+ $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 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: 404.php
===================================================================
--- 404.php (revision 178)
+++ 404.php (revision 367)
@@ -2,7 +2,7 @@
require '_taios.php';
-$page = new Taios_Page('404');
+$page = new Taios_Page('404 - Pagee not found', '/');
$page->drawHeader();
write('

Pages

');
$page->drawMenuItem('Biggles', '/~biggles/');
@@ -16,6 +16,7 @@

404 - Page not found

The page you requested could not be found.

+

Useful Links

@@ -22,6 +23,7 @@
$page->drawMenuItem('Tim32 Homepage', 'index.php');
+$page->drawMenuItem('Youfail.org', 'http://youfail.org');
$page->drawFooter();
/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, 300, 300);
 
write('<td><a href="' . $filename . '"><img width="' . $size[0] . '" height="' . $size[1] . '" src="' . $filename . '" /></a></td>');
$i++;
$indexInArray++;
}
 
write('</tr>');
write('<table>');
 
$page->drawFooter();
 
?>
 
/photos/index.php
2,12 → 2,29
 
require '../_taios.php';
 
$page = new Taios_Page('Photos', '../');
$page = new Taios_Page('Photo Albums', '../');
$page->drawHeader();
$page->drawMiddle();
 
write('<br /><p class="bold">This page is currently under construction.</p>');
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 367)
/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: register-do.php
===================================================================
--- register-do.php (revision 178)
+++ register-do.php (revision 367)
@@ -1,6 +1,7 @@
require '_taios.php';
+require_once '_recaptchalib.php';
$page = new Taios_Page('Login');
@@ -27,6 +28,15 @@
$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');
/styles.css
4,19 → 4,22
font-family: Droid Sans, Tahoma, sans-serif;
font-size: 11pt;
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,7 → 40,7
 
h5 {
font-size: 10pt;
margin: 6px;
margin: 8px;
margin-left: 14px;
color: #000069;
}
44,7 → 47,7
 
p, table, span {
font-size: 11pt;
margin: 6px;
margin: 8px;
margin-left: 16px;
}
 
61,6 → 64,7
border: 1px solid #000000;
color: #000000;
background-color: #B5D7FF;
width: 500px;
}
 
table {
76,6 → 80,11
border: 2px solid #333333;
}
 
textarea {
width: 500px;
height: 300px;
}
 
.smiley {
border: 0px;
vertical-align: middle;
82,21 → 91,16
}
 
.sidebar {
left: 0px;
top: 0px;
position: fixed;
float: left;
width: 146px;
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;
105,10 → 109,12
.sidebar-menu {
text-align: right;
padding: 6px;
color: #FFFFFF;
}
 
.sidebar-menu h3 {
margin: 6px;
color: #FFFFFF;
}
 
.sidebar-menu p {
116,9 → 122,13
margin: 4px;
}
 
.sidebar-menu a {
color: #FFFFFF;
}
 
.content {
left: 200px;
top: 0px;
left: 180px;
position: absolute;
margin-right: 32px;
}
138,3 → 148,16
font-family: Droid Sans Mono, Monospace, Fixed;
}
 
.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
}
 
/register.php
1,6 → 1,7
<?php
 
require '_taios.php';
require_once '_recaptchalib.php';
 
$page = new Taios_Page('Register');
$page->drawHeader();
20,6 → 21,12
 
?>
 
<script type="text/javascript">
var RecaptchaOptions = {
theme : 'clean'
};
</script>
 
<form action="register-do.php" method="POST">
<table>
<tr>
44,6 → 51,10
</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>
/_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 = "&amp;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]);
 
}
 
 
?>
/index.php
6,10 → 6,10
$page->drawHeader();
write('<h3>Pages</h3>');
$page->drawMenuItem('Biggles', '/~biggles/');
$page->drawMenuItem('Freddie', '/~freddie/');
$page->drawMenuItem('Freddie (FredFace)', '/~freddie/');
$page->drawMenuItem('Muzer', '/~muzer/');
$page->drawMenuItem('Sh4rk', '/~szabot/');
$page->drawMenuItem('Tom', '/~tom/');
$page->drawMenuItem('Tom (TomMan)', '/~tom/');
$page->drawMiddle();
 
?>
28,7 → 28,7
$id = $ids[$i];
$post = $page->getBlogPost($id);
write('<h4>' . $post->title. '</h4>');
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 />');
/admin/all-accounts.php
17,7 → 17,7
write('<td class="bold">ID</td>');
write('<td class="bold">AccessID</td>');
write('<td class="bold">Username</td>');
write('<td class="bold">Password</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>');
42,7 → 42,7
}
else
{
drawError('You do not have permission to access this page.');
$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
17,7 → 17,6
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-topics.php">Manage All Forum Topics</a></h4>');
write('<h4><a href="all-forum-posts.php">Manage All Forum Posts</a></h4>');
}
 
/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
24,7 → 24,7
write('<td class="bold">Spam</td>');
write('</tr>');
 
$ids = $page->findIDs('BlogPosts');
$ids = $page->findIDs('BlogPosts', 'ORDER BY DatePosted DESC');
for ($i = 0; $i < count($ids); $i++)
{
$post = $page->getBlogPost($ids[$i]);
40,7 → 40,7
}
write('<td><a href="account.php?id=' . $post->author->ID . '">' . $post->author->name . '</a></td>');
write('<td>' . $post->title . '</td>');
write('<td>' . $post->content . '</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>');
51,7 → 51,7
}
else
{
drawError('You do not have permission to access this page.');
$page->drawError('You do not have permission to access this page.');
}
 
$page->drawFooter();
/admin/account.php
21,7 → 21,7
 
<form action="account-do.php" method="POST">
<table>
<tr><td class="bold">ID: </td><td><?php echo $user->ID; ?></td></tr>
<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()))
{
46,11 → 46,11
{
if (!$user)
{
drawError('No such user, #' . $userID);
$page->drawError('No such user, #' . $userID);
}
else
{
drawError('You do not have permission to access this page.');
$page->drawError('You do not have permission to access this page.');
}
}
 
/admin/account-do.php
39,11 → 39,11
{
if (!$user)
{
drawError('No such user, #' . $userID);
$page->drawError('No such user, #' . $userID);
}
else
{
drawError('You do not have permission to access this page.');
$page->drawError('You do not have permission to access this page.');
}
}
 
/forums/index.php
3,11 → 3,78
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('<br /><p class="bold">This page is currently under construction.</p>');
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(' &middot; ');
}
write('<a href="add-post.php?categoryID=' . $parentID . '">Add Post</a>');
}
if ($page->isUserAdmin($page->getLoggedInUser()))
{
if ($page->isLoggedIn())
{
write(' &middot; ');
}
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> &nbsp; &middot; &nbsp; <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(' &nbsp; &middot; &nbsp; <a href="edit-post.php?id=' . $id . '">Edit Post</a>');
write(' &nbsp; &middot; &nbsp; <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(' &nbsp; &middot; &nbsp; <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
6,8 → 6,54
$page->drawHeader();
$page->drawMiddle();
 
write('<br /><p class="bold">This page is currently under construction.</p>');
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(' &middot; <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> &nbsp;&nbsp; &middot; &nbsp;&nbsp; <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
35,8 → 35,10
Title TEXT,
Description TEXT,
LogoURL TEXT,
DownloadURL TEXT,
WebsiteURL TEXT,
LatestVersion TEXT,
LastUpdate DATETIME,
PRIMARY KEY(ID)
);
 
49,22 → 51,13
PRIMARY KEY(ID)
);
 
CREATE TABLE ForumTopics
CREATE TABLE ForumPosts
(
ID INT NOT NUll AUTO_INCREMENT,
AuthorID INT,
CategoryID INT,
ParentID INT,
Title TEXT,
DatePosted DATETIME,
PRIMARY KEY(ID)
);
 
CREATE TABLE ForumPosts
(
ID INT NOT NUll AUTO_INCREMENT,
AuthorID INT,
TopicID INT,
Title TEXT,
Content TEXT,
DatePosted DATETIME,
Spam BOOLEAN,
73,3 → 66,7
 
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);
/blog/edit-post.php
67,7 → 67,7
</tr>
<tr>
<td class="bold">Content: </td>
<td><textarea name="content" style="width: 500px; height: 300px;"><?php echo $post->content; ?></textarea></td>
<td><textarea name="content"><?php echo $post->content; ?></textarea></td>
</tr>
<tr>
<td class="bold">Catagory: </td>
/blog/post.php
4,7 → 4,7
 
$page = new Taios_Page('Blog Posts', '../');
 
if (empty($_GET['id']))
if (empty($_GET['id']) || $_GET['id'] == -1)
{
$page->redirect('index.php');
}
/blog/add-post.php
40,7 → 40,7
}
else
{
if ($page->getLoggedInUser() >= 2 && $parentID == -1)
if ($page->getLoggedInUser()->accessID >= 2 && $parentID == -1)
{
$page->drawError('You do not have permission to access this page.');
}