Subversion Repositories taios

Compare Revisions

Ignore whitespace Rev 368 → Rev 462

/_taios.php
34,7 → 34,8
write('<head>');
write('<meta http-equiv="Content-Type" content="text/html;charset=utf-8">');
write('<title>Tim32 &middot; ' . $this->title . '</title>');
write('<link href="' . $this->url . 'styles.css" rel="stylesheet" type="text/css" media="screen">');
write('<link href="' . $this->url . 'styles.css" rel="stylesheet" type="text/css" media="screen" />');
write('<link rel="shortcut icon" href="data/favicon.png" />');
write('</head>');
write('<body>');
write('<div class="sidebar">');
88,6 → 89,7
{
if (!$this->drawnFooter)
{
write('<br /><p class="copyright">&copy; 2011 Tim32</p>');
write('</div>');
write('</body>');
write('</html>');
169,9 → 171,22
function replaceBBCode($str)
{
$newstr = str_replace("<", "[", $str);
/*$newstrarray = explode("\n", $str);
$newstr = "";
foreach ($newstrarray as $line)
{
if ($line == "\n" || $line == " \n" || $line == "\n " || $line == "\n\r")
{
$line = "</p><p>";
}
$newstr .= ($line . "\n");
}*/
$newstr = $str;
$newstr = str_replace("<", "[", $newstr);
$newstr = str_replace(">", "]", $newstr);
$newstr = str_replace("\n", '</p><p>', $newstr);
$newstr = str_replace("\n", "</p><p>", $newstr);
$newstr = str_replace("\\'", "'", $newstr);
$newstr = str_replace("\\\"",'"', $newstr);
$newstr = str_replace(' ', '&nbsp;&nbsp;', $newstr);
195,7 → 210,11
'/\[url\](.+?)\[\/url\]/is',
'/\[url=(.+?)\](.+?)\[\/url\]/is',
'/\[code\](.+?)\[\/code\]/is',
'/\[img\](.+?)\[\/img\]/is'
'/\[img\](.+?)\[\/img\]/is',
'/\[ul\](.+?)\[\/ul\]/is',
'/\[ol\](.+?)\[\/ol\]/is',
'/\[li\](.+?)\[\/li\]/is',
'/\[mono\](.+?)\[\/mono\]/is'
);
 
$html = array(
205,7 → 224,11
'<a href="$1">$1</a>',
'<a href="$1">$2</a>',
'<div class="code">$1</div>',
'<img src="$1" />'
'<img src="$1" />',
'<ul>$1</ul>',
'<ol>$1</ol>',
'<li>$1</li>',
'<span style="font-family: Droid Sans Mono, monospace, fixed; margin-left: 1em; margin-right: 1em;">$1</span>',
);
 
$newstr = preg_replace($bbcode, $html, $newstr);
277,6 → 300,24
return false;
}
function checkChallengeStatus($challengeID, $previous, $next)
{
$currentChallengeID = $this->getLoggedInUser()->challengeID;
if (!$this->isLoggedIn())
{
$this->redirect('index.php');
}
else if ($currentChallengeID > $challengeID)
{
$this->redirect($next . '.php');
}
else if ($currentChallengeID < $challengeID)
{
$this->redirect($previous . '.php');
}
}
function checkLoggedIn()
{
if (!$this->isLoggedIn())
486,6 → 527,7
public $password;
public $emailAddress;
public $name;
 
public $challengeID;
}
 
507,6 → 549,8
public $author;
public $title;
public $description;
 
 
public $logoURL;
public $downloadURL;
public $websiteURL;
520,6 → 564,7
public $parent;
public $title;
public $description;
 
}
 
class ForumPost
/data/favicon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/data/favicon.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: styles.css
===================================================================
--- styles.css (revision 368)
+++ styles.css (revision 462)
@@ -3,7 +3,7 @@
color: #000000;
font-family: Droid Sans, Tahoma, sans-serif;
- font-size: 11pt;
+ font-size: 10pt;
margin: 0px;
padding: 0px;
@@ -46,7 +46,7 @@
}
p, table, span {
- font-size: 11pt;
+ font-size: 10pt;
margin: 8px;
margin-left: 16px;
}
@@ -91,13 +91,17 @@
}
.sidebar {
+ top: 0px;
+ left: 0px;
+ position: fixed;
float: left;
- width: 146px;
+ width: 156px;
padding: 0px;
padding-left: 32px;
- border-right: 0px solid #000089;
+ border-right: 2px solid #000049;
background-color: #032865;
color: #FFFFFF;
+ height: 100%;
}
.sidebar-header {
@@ -128,7 +132,7 @@
.content {
top: 0px;
- left: 180px;
+ left: 190px;
position: absolute;
margin-right: 32px;
}
@@ -137,6 +141,10 @@
font-weight: bold;
}
+.italic {
+ font-style: italic;
+}
+
.indent {
margin-left: 14px;
border-left: 1px solid #BBBBBB;
@@ -143,11 +151,25 @@
}
.code {
- border: 1px solid #333333;
+ border-top: 2px solid #999999;
+ border-bottom: 2px solid #999999;
+ margin: 14px;
background-color: #DDDDDD;
font-family: Droid Sans Mono, Monospace, Fixed;
+ font-size: 9px;
+ line-height: 80%;
}
+.copyright {
+ color: #BBBBBB;
+ text-align: left;
+ font-size: 9pt;
+}
+
+.copyright a {
+ color: #BBBBBB;
+}
+
.recaptchatable .recaptcha_image_cell, #recaptcha_table {
background-color: #4B9DE0 !important; //reCaptcha widget background color
}
/index.php
6,10 → 6,9
$page->drawHeader();
write('<h3>Pages</h3>');
$page->drawMenuItem('Biggles', '/~biggles/');
$page->drawMenuItem('Freddie (FredFace)', '/~freddie/');
$page->drawMenuItem('FredFace', '/~freddie/');
$page->drawMenuItem('Muzer', '/~muzer/');
$page->drawMenuItem('Sh4rk', '/~szabot/');
$page->drawMenuItem('Tom (TomMan)', '/~tom/');
$page->drawMenuItem('TomMan', '/~tom/');
$page->drawMiddle();
 
?>
18,12 → 17,13
<p>Tim32 is a 10 year-old laptop running Ubuntu Server Edition 10.04.</p>
<br />
 
<h3>Latest Blog Posts</h3>
<h3 title="Take the Tim32 challenge: http://tim32.org/challenge/">Latest Blog Posts</h3>
<p><a href="blog/rss.php">Rss Feed</a></p>
 
<?php
 
$ids = $page->findIDs('BlogPosts', 'WHERE ParentID = -1 ORDER BY DatePosted DESC');
for ($i = 0; $i < 5 && $i < count($ids); $i++)
for ($i = 0; $i < 4 && $i < count($ids); $i++)
{
$id = $ids[$i];
$post = $page->getBlogPost($id);
/register.php
42,11 → 42,11
<td><input type="password" name="password2" /></td>
</tr>
<tr>
<td class="bold">Email Address</td>: </td>
<td class="bold">Email Address: </td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td class="bold">Name</td>: </td>
<td class="bold">Name: </td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
54,10 → 54,16
<td><?php echo recaptcha_get_html(RECAPTCHA_PUBLICKEY); ?></td>
</tr>
<tr>
<td class="bold">3 + 9 * 8</td>
<td><input type="text" name="maths" /></td>
</tr>
<tr>
<td class="bold"></td>
<td><input type="submit" value="Register" /></td>
</tr>
</table>
 
<p style="text-align: center; color: #666666">By registering to Tim32, you agree to be reasonable in all your suggestion/accusations and advoid subjectivity. Suvbjective posts/comments are subject to removal by a Subject of the Tim32 Admins.</p>
</form>
 
<?php
/register-do.php
10,6 → 10,7
$password2 = $_POST['password2'];
$email = $_POST['email'];
$name = $_POST['name'];
$maths = $_POST['maths'];
 
if (empty($username))
{
27,6 → 28,10
{
$page->redirect('register.php?error=Passwords do not match');
}
if ($maths != '75')
{
$page->redirect('register.php?error=Incorrect maths answer');
}
 
$resp = recaptcha_check_answer(RECAPTCHA_PRIVATEKEY, $_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
/photos/album.php
28,8 → 28,6
}
 
$page = new Taios_Page('Photo Albums', '../');
$page->drawHeader();
$page->drawMiddle();
 
$dirName = $_GET['dir'];
if (empty($dirName))
37,6 → 35,11
$page->redirect('index.php');
}
 
$page->drawHeader();
write('<br /><h3>RSS</h3>');
$page->drawMenuItem('RSS Feed', 'photos/rss.php?dir=' . $dirName);
$page->drawMiddle();
 
write('<p class="bold"><a href="index.php">Back to Photos</a></p><br />');
 
if (file_exists("albums/" . $dirName . "/description.txt"))
95,9 → 98,9
}
$filename = $directory . $file;
$size = getImageSizes($filename, 300, 300);
$size = getImageSizes($filename, 280, 260);
 
write('<td><a href="' . $filename . '"><img width="' . $size[0] . '" height="' . $size[1] . '" src="' . $filename . '" /></a></td>');
write('<td><a href="' . str_replace(" ", "%20", $filename) . '"><img width="' . $size[0] . '" height="' . $size[1] . '" src="' . str_replace(" ", "%20", $filename) . '" /></a></td>');
$i++;
$indexInArray++;
104,7 → 107,7
}
 
write('</tr>');
write('<table>');
write('</table>');
 
$page->drawFooter();
 
/photos/rss.php
0,0 → 1,76
<?php
 
require '../_taios.php';
 
header("Content-type: application/rss+xml");
 
$page = new Taios_Page('Photos RSS Feed', '../');
 
$dirName = $_GET['dir'];
if (empty($dirName))
{
$dirName = "Lassitor";
}
 
write('<?xml version="1.0" encoding="UTF-8" ?>');
write('<rss version="2.0">');
write('<channel>');
write('<title>Tim32 Photo RSS - ' . $dirName . '</title>');
write('<description>This is the RSS feed for the Tim32 Photos.</description>');
write('<link>http://tim32.org/photos/album.php?dir=' . $dirName . '</link>');
$directory = "albums/" . $dirName . "/";
$sortOrder = "newestFirst";
 
$results = array();
$handler = opendir($directory);
while ($file = readdir($handler))
{
if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess" && getimagesize($directory . $file))
{
$currentModified = filectime($directory . $file);
$file_names[] = $file;
$file_dates[] = $currentModified;
}
}
 
closedir($handler);
 
if ($sortOrder == "newestFirst")
{
arsort($file_dates);
}
else
{
asort($file_dates);
}
$file_names_Array = array_keys($file_dates);
foreach ($file_names_Array as $idx => $name) $name=$file_names[$name];
$file_dates = array_merge($file_dates);
 
$indexInArray = 0;
 
foreach ($file_dates as $date)
{
$j = $file_names_Array[$indexInArray];
$file = $file_names[$j];
$filename = $directory . $file;
write('<item>');
write('<title>' . $file . '</title>');
write('<link>http://tim32.org/photos/' . str_replace(" ", "%20", $filename) . '</link>');
write('<guid>id_' . $file . '</guid>');
write('<pubDate>' . date('D, d M Y H:i:s O', $date). '</pubDate>');
write('<description><![CDATA[<img src="http://tim32.org/photos/' . str_replace(" ", "%20", $filename) . '" />]]></description>');
write('</item>');
$indexInArray++;
}
 
write('</channel>');
write('</rss>');
 
?>
/404.php
1,15 → 1,16
<?php
 
header('Status: 404 Not Found');
 
require '_taios.php';
 
$page = new Taios_Page('404 - Pagee not found', '/');
$page = new Taios_Page('404 - Page not found', '/');
$page->drawHeader();
write('<h3>Pages</h3>');
$page->drawMenuItem('Biggles', '/~biggles/');
$page->drawMenuItem('Freddie', '/~freddie/');
$page->drawMenuItem('Muzer', '/~muzer/');
$page->drawMenuItem('Sh4rk', '/~szabot/');
$page->drawMenuItem('Tom', '/~tom/');
$page->drawMenuItem('Biggles', '~biggles/');
$page->drawMenuItem('Freddie (FredFace)', '~freddie/');
$page->drawMenuItem('Muzer', '~muzer/');
$page->drawMenuItem('Tom (TomMan)', '~tom/');
$page->drawMiddle();
 
?>
/blog/rss.php
0,0 → 1,34
<?php
 
require '../_taios.php';
 
header("Content-type: application/rss+xml");
 
$page = new Taios_Page('Blog RSS Feed', '../');
 
write('<?xml version="1.0" encoding="UTF-8" ?>');
write('<rss version="2.0">');
write('<channel>');
write('<title>Tim32 Blog RSS</title>');
write('<description>This is the RSS feed for the Tim32 Blog.</description>');
write('<link>http://tim32.org/blog/</link>');
$ids = $page->findIDs('BlogPosts', 'WHERE ParentID = -1 ORDER BY DatePosted DESC');
for ($i = 0; $i < count($ids); $i++)
{
$id = $ids[$i];
$post = $page->getBlogPost($id);
write('<item>');
write('<title>' . $post->title . '</title>');
write('<link>http://tim32.org/blog/post.php?id=' . $id . '</link>');
write('<guid>' . $id . '</guid>');
write('<pubDate>' . date('D, d M Y H:i:s O', $post->datePosted). '</pubDate>');
write('<description><![CDATA[' . $page->replaceBBCode($post->content) . ']]></description>');
write('</item>');
}
 
write('</channel>');
write('</rss>');
 
?>
/blog/index.php
5,6 → 5,8
$page = new Taios_Page('Blog Posts', '../');
$page->drawHeader();
$page->drawBlogCategoriesMenu();
write('<br /><h3>RSS</h3>');
$page->drawMenuItem('RSS Feed', 'blog/rss.php');
$page->drawMiddle();
 
if ($page->isUserGM($page->getLoggedInUser()))
/wiki/index.php
42,7 → 42,7
 
if ($page->isUserGM($page->getLoggedInUser()))
{
write('<p><a href="edit.php?page=' . $pageName . '">Edit Page</a></p><br />');
write('<p class="bold"><a href="edit.php?page=' . $pageName . '">Edit Page</a></p><br />');
}
 
$filename = 'pages/' . $pageName . '.txt';
/challenge/index.php
0,0 → 1,23
<?php
 
require '../_taios.php';
 
$page = new Taios_Page('Tim32 Challenge', '../');
$page->drawHeader();
$page->drawMiddle();
 
if ($page->isLoggedIn())
{
write('<p class="bold">Take the Tim32 challenge here!</p>');
write('<p class="italic">Once you\'ve passed a challenge, your progress will automatically be saved.</p>');
write('<br /><br /><a href="00.php"><h2 style="text-align: center">Enter!</h2></a>');
}
else
{
write('<p class="bold">You need to be logged in to take the Tim32 challenge.</p>');
}
 
$page->drawFooter();
 
?>
 
/challenge/00.php
0,0 → 1,37
<?php
 
require '../_taios.php';
 
$page = new Taios_Page('Challenge - 00', '../');
$page->checkChallengeStatus(0, "index", "01");
 
$page->drawHeader();
write('<h3>Challenge</h3>');
$page->drawMenuItem('Index', 'challenge/index.php');
$page->drawMiddle();
 
?>
 
<form action="00-do.php" method="POST">
<table>
<tr>
<td class="bold">Morse: </td>
<td style="color: #FFFFFF">.. .-.. .. -.- . -- --- --- ... . </td>
</tr>
<tr>
<td class="bold">Moose: </td>
<td><input type="text" name="moose" /></td>
</tr>
<tr>
<td class="bold"></td>
<td><input type="submit" value="Submit" /></td>
</tr>
</table>
</form>
 
<?php
 
$page->drawFooter();
 
?>
 
/challenge/01.php
0,0 → 1,18
<?php
 
require '../_taios.php';
 
$page = new Taios_Page('Challenge - 01', '../');
$page->checkChallengeStatus(1, "index", "02");
 
$page->drawHeader();
write('<h3>Challenge</h3>');
$page->drawMenuItem('Index', 'challenge/index.php');
$page->drawMiddle();
 
 
 
$page->drawFooter();
 
?>
 
/challenge/00-do.php
0,0 → 1,19
<?php
 
require '../_taios.php';
 
$page = new Taios_Page('Challenge - 00', '../');
$page->checkChallengeStatus(0, "index", "01");
 
if ($_POST['moose'] == 'i like moose')
{
$page->query('UPDATE Users SET ChallengeID = 1 WHERE ID = ' . $page->getLoggedInUser()->ID);
$page->redirect('01.php');
}
else
{
$page->redirect('index.php');
}
 
?>