summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--account.php21
-rw-r--r--admin.php9
-rw-r--r--diary.php15
-rw-r--r--includes/config.inc22
-rw-r--r--includes/function.inc12
-rw-r--r--submission.php4
-rw-r--r--submit.php2
-rw-r--r--themes/marvin/marvin.theme18
8 files changed, 62 insertions, 41 deletions
diff --git a/account.php b/account.php
index f349ff226..9c5a4e63d 100644
--- a/account.php
+++ b/account.php
@@ -106,17 +106,24 @@ function account_page_edit() {
global $theme, $themes, $user;
if ($user->id) {
- ### Generate output/content:
$output .= "<FORM ACTION=\"account.php\" METHOD=\"post\">\n";
$output .= "<B>Theme:</B><BR>\n";
- ### Loop (dynamically) through all available themes:
foreach ($themes as $key=>$value) {
- $options .= "<OPTION VALUE=\"$key\"". (($user->theme == $key) ? " SELECTED" : "") .">$key - $value[1]</OPTION>";
+ $options1 .= " <OPTION VALUE=\"$key\"". (($user->theme == $key) ? " SELECTED" : "") .">$key - $value[1]</OPTION>\n";
}
- $output .= "<SELECT NAME=\"edit[theme]\">$options</SELECT><BR>\n";
+ $output .= "<SELECT NAME=\"edit[theme]\">\n$options1</SELECT><BR>\n";
$output .= "<I>Selecting a different theme will change the look and feel of the site.</I><P>\n";
+ $output .= "<B>Timezone:</B><BR>\n";
+
+ $date = time() - date("Z");
+ for ($zone = -43200; $zone <= 43200; $zone += 3600) {
+ $options2 .= " <OPTION VALUE=\"$zone\"". (($user->timezone == $zone) ? " SELECTED" : "") .">". date("l, F dS, Y - h:i A", $date + $zone) ." (GMT ". $zone / 3600 .")</OPTION>\n";
+ }
+
+ $output .= "<SELECT NAME=\"edit[timezone]\">\n$options2</SELECT><BR>\n";
+ $output .= "<I>Select what time you currently have and your timezone settings will be set appropriate.</I><P>\n";
$output .= "<B>Maximum number of stories:</B><BR>\n";
$output .= "<INPUT NAME=\"edit[stories]\" MAXLENGTH=\"3\" SIZE=\"3\" VALUE=\"$user->stories\"><P>\n";
$output .= "<I>The maximum number of stories that will be displayed on the main page.</I><P>\n";
@@ -143,7 +150,6 @@ function account_page_edit() {
$output .= "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save page settings\"><BR>\n";
$output .= "</FORM>\n";
- ### Display output/content:
$theme->header();
$theme->box("Customize your page", $output);
$theme->footer();
@@ -159,6 +165,7 @@ function account_page_save($edit) {
global $user;
if ($user->id) {
$data[theme] = $edit[theme];
+ $data[timezone] = $edit[timezone];
$data[stories] = $edit[stories];
$data[mode] = $edit[mode];
$data[sort] = $edit[sort];
@@ -276,8 +283,6 @@ function account_register_enter($user = "", $error = "") {
function account_register_submit($new) {
global $theme, $mail, $sitename, $siteurl;
- $siteurl = "www.drop.org"; // temporary solution
-
if ($rval = account_validate($new)) {
account_register_enter($new, "$rval");
}
@@ -288,7 +293,7 @@ function account_register_submit($new) {
user_save($new);
- $link = "http://$siteurl/account.php?op=confirm&name=$new[userid]&hash=$new[hash]";
+ $link = $siteurl ."account.php?op=confirm&name=$new[userid]&hash=$new[hash]";
$message = "$new[userid],\n\n\nsomeone signed up for a user account on $sitename and supplied this email address as their contact. If it wasn't you, don't get your panties in a knot and simply ignore this mail.\n\nIf this was you, you have to activate your account first before you can login. You can do so simply by visiting the URL below:\n\n $link\n\nVisiting this URL will automatically activate your account. Once activated you can login using the following information:\n\n username: $new[userid]\n password: $new[passwd]\n\n\n-- $sitename crew\n";
mail($new[real_email], "Account details for $sitename", $message, "From: noreply@$sitename");
diff --git a/admin.php b/admin.php
index 08740150b..937d7db75 100644
--- a/admin.php
+++ b/admin.php
@@ -10,6 +10,7 @@ if ($user->userid != "Dries") exit();
function account_display($order = "username") {
$sort = array("ID" => "id", "fake e-mail address" => "fake_email", "homepage" => "url", "hostname" => "last_host", "last access date" => "last_access", "real e-mail address" => "real_email", "real name" => "name", "status" => "status", "theme" => "theme", "username" => "userid");
$show = array("ID" => "id", "username" => "userid", "$order" => "$sort[$order]", "status" => "status");
+ $stat = array(0 => "blocked", 1 => "not confirmed", 2 => "open");
### Perform query:
$result = db_query("SELECT u.id, u.userid, u.$sort[$order], u.status FROM users u ORDER BY $sort[$order]");
@@ -46,7 +47,7 @@ function account_display($order = "username") {
$output .= " <TD>". format_date($account[$value]) ."</TD>\n";
break;
case "status":
- $output .= " <TD ALIGN=\"center\"><I>todo</I></TD>\n";
+ $output .= " <TD ALIGN=\"center\">". $stat[$account[$value]] ."</TD>\n";
break;
case "url":
$output .= " <TD>". format_url($account[$value]) ."</TD>\n";
@@ -83,12 +84,14 @@ function account_comments($id) {
}
function account_view($name) {
- ### Perform query:
+ $status = array(0 => "blocked", 1 => "not confirmed", 2 => "open");
+
$result = db_query("SELECT * FROM users WHERE userid = '$name'");
if ($account = db_fetch_object($result)) {
$output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n";
$output .= " <TR><TD ALIGN=\"right\"><B>ID:</B></TD><TD>$account->id</TD></TR>\n";
+ $output .= " <TR><TD ALIGN=\"right\"><B>Status:</B></TD><TD>". $status[$account->status] ."</TD></TR>\n";
$output .= " <TR><TD ALIGN=\"right\"><B>Username:</B></TD><TD>$account->userid</TD></TR>\n";
$output .= " <TR><TD ALIGN=\"right\"><B>Real name:</B></TD><TD>". format_data($account->name) ."</TD></TR>\n";
$output .= " <TR><TD ALIGN=\"right\"><B>Real e-mail address:</B></TD><TD>". format_email($account->real_email) ."</TD></TR>\n";
@@ -137,7 +140,7 @@ function log_display($order = "date") {
$output .= " </TR>\n";
while ($log = db_fetch_object($result)) {
- $output .= " <TR BGCOLOR=\"". $colors[$log->level] ."\"><TD>". date("D d/m, H:m:s", $log->timestamp) ."</TD><TD ALIGN=\"center\">". format_username($log->userid, 1) ."</A></TD><TD>". substr($log->message, 0, 44) ."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?section=logs&op=view&id=$log->id\">more</A></TD></TR>\n";
+ $output .= " <TR BGCOLOR=\"". $colors[$log->level] ."\"><TD>". format_date($log->timestamp) ."</TD><TD ALIGN=\"center\">". format_username($log->userid, 1) ."</A></TD><TD>". substr($log->message, 0, 44) ."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?section=logs&op=view&id=$log->id\">more</A></TD></TR>\n";
}
$output .= "</TABLE>\n";
diff --git a/diary.php b/diary.php
index a0a725938..d3745990e 100644
--- a/diary.php
+++ b/diary.php
@@ -17,7 +17,7 @@ function diary_overview($num = 20) {
$output .= "<DL>\n";
$output .= " <DD><P><B>$diary->userid wrote:</B></P></DD>\n";
$output .= " <DL>\n";
- $output .= " <DD><P>". check_output($diary->text) ."</P><P>[ <A HREF=\"diary.php?op=view&name=$diary->userid\">more</A> ]</P></DD>\n";
+ $output .= " <DD><P>". check_output($diary->text, 1) ."</P><P>[ <A HREF=\"diary.php?op=view&name=$diary->userid\">more</A> ]</P></DD>\n";
$output .= " </DL>\n";
$output .= "</DL>\n";
}
@@ -38,7 +38,7 @@ function diary_entry($timestamp, $text, $id = 0) {
else {
$output .= "<DL>\n";
$output .= " <DT><B>". date("l, F jS", $timestamp) .":</B></DT>\n";
- $output .= " <DD><P>". check_output($text) ."</P></DD>\n";
+ $output .= " <DD><P>". check_output($text, 1) ."</P></DD>\n";
$output .= "</DL>\n";
}
return $output;
@@ -97,7 +97,7 @@ function diary_edit($id) {
$output .= "<P>\n";
$output .= " <B>Edit diary entry:</B><BR>\n";
- $output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"15\" NAME=\"text\">". check_input(stripslashes($diary->text)) ."</TEXTAREA><BR>\n";
+ $output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"15\" NAME=\"text\">". check_input($diary->text) ."</TEXTAREA><BR>\n";
$output .= " <SMALL><I>Allowed HTML tags: ". htmlspecialchars($allowed_html) .".</I></SMALL>\n";
$output .= "</P>\n";
@@ -123,13 +123,14 @@ function diary_preview($text, $timestamp, $id = 0) {
$output .= "<P>\n";
$output .= " <B>Preview diary entry:</B><BR>\n";
- $output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"15\" NAME=\"text\">". stripslashes($text) ."</TEXTAREA><BR>\n";
+ $output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"15\" NAME=\"text\">". check_output($text) ."</TEXTAREA><BR>\n";
$output .= " <SMALL><I>Allowed HTML tags: ". htmlspecialchars($allowed_html) .".</I></SMALL>\n";
$output .= "</P>\n";
$output .= "<P>\n";
$output .= " <INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">\n";
- $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Preview diary entry\"> <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Submit diary entry\">\n";
+ $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Preview diary entry\">\n";
+ $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Submit diary entry\">\n";
$output .= "</P>\n";
$output .= "</FORM>\n";
@@ -143,11 +144,11 @@ function diary_submit($text, $id = 0) {
global $user, $theme;
if ($id) {
- db_query("UPDATE diaries SET text = '". addslashes($text) ."' WHERE id = $id");
+ db_query("UPDATE diaries SET text = '". check_input($text) ."' WHERE id = $id");
watchdog(1, "old diary entry updated");
}
else {
- db_query("INSERT INTO diaries (author, text, timestamp) VALUES ('$user->id', '". addslashes($text) ."', '". time() ."')");
+ db_query("INSERT INTO diaries (author, text, timestamp) VALUES ('$user->id', '". check_input($text) ."', '". time() ."')");
watchdog(1, "new diary entry added");
}
header("Location: diary.php?op=view&name=$user->userid");
diff --git a/includes/config.inc b/includes/config.inc
index 61ff05f86..c5fdffd8f 100644
--- a/includes/config.inc
+++ b/includes/config.inc
@@ -4,20 +4,19 @@
# MySQL settings:
#
-
-### www.drop.org:
+### http://www.drop.org/:
#$dbhost = "zind.net";
#$dbuname = "droporg";
#$dbpass = "DropIes";
#$dbname = "droporg";
-### beta.drop.org:
+### http://beta.drop.org/:
$dbhost = "zind.net";
$dbuname = "dries";
$dbpass = "Abc123";
$dbname = "dries";
-### localhost Dries:
+### http://dione/:
#$dbhost = "";
#$dbuname = "dries";
#$dbpass = "oakley";
@@ -27,12 +26,13 @@ $dbname = "dries";
# Name of the site
#
$sitename = "drop.org";
+$siteurl = "http://www.drop.org/";
#
# Contact information:
# The contact information will be used to send out automated mails
# to users, account holders or visitors.
-$contact_email = "droppies@zind.net";
+$contact_email = "droppies@drop.org";
#
# Notify:
@@ -49,12 +49,19 @@ $notify = 0;
$notify_email = $contact_email;
$notify_subject = "submission: ";
$notify_message = "New submission: '$subject'\n\n$story";
-$notify_from = "droppies@zind.net";
+$notify_from = "droppies@drop.org";
#
# Comment meta reasons:
#
-$comment_votes = array("none" => "none", "-1" => "- 1", "0" => "+ 0", "+1" => "+ 1", "+2" => "+ 2", "+3" => "+ 3", "+4" => "+ 4", "+5" => "+ 5");
+$comment_votes = array("none" => "none",
+ "-1" => "- 1",
+ "0" => "+ 0",
+ "+1" => "+ 1",
+ "+2" => "+ 2",
+ "+3" => "+ 3",
+ "+4" => "+ 4",
+ "+5" => "+ 5");
#
# Categories:
@@ -82,7 +89,6 @@ $allowed_html = "<A><B><BR><DD><DL><DT><EM><HR><I><IL><SMALL><OL><U><UL>";
#
$anonymous = "Anonymous Chicken";
-
#
# Themes:
# the first theme listed in the associative array `$themes' will
diff --git a/includes/function.inc b/includes/function.inc
index c9b80e0a6..1331a21e6 100644
--- a/includes/function.inc
+++ b/includes/function.inc
@@ -24,12 +24,14 @@ function check_field($message) {
}
function check_input($message) {
- return strip_tags($message);
+ global $allowed_html;
+ return strip_tags(addslashes($message), $allowed_html);
}
-function check_output($message) {
+function check_output($message, $nl2br = 0) {
global $allowed_html;
- return strip_tags(stripslashes($message), $allowed_html);
+ if ($nl2br == 1) return nl2br(strip_tags(stripslashes($message), $allowed_html));
+ else return strip_tags(stripslashes($message), $allowed_html);
}
function discussion_num_replies($id, $count = 0) {
@@ -49,6 +51,10 @@ function format_plural($count, $one, $more) {
}
function format_date($timestamp, $type = "medium") {
+ global $user;
+
+ $timestamp += ($user->timezone) ? $user->timezone - date("Z") : 0;
+
switch ($type) {
case "small":
$date = date("D, m/d/y - H:i", $timestamp);
diff --git a/submission.php b/submission.php
index 0bb537433..cff39dc6c 100644
--- a/submission.php
+++ b/submission.php
@@ -12,8 +12,8 @@ function submission_displayMain() {
$content .= "<TABLE BORDER=\"0\" CELLSPACING=\"4\" CELLPADDING=\"4\">\n";
$content .= " <TR BGCOLOR=\"$bgcolor1\"><TH>Subject</TH><TH>Category</TH><TH>Date</TH><TH>Author</TH><TH>Score</TH></TR>\n";
while ($submission = db_fetch_object($result)) {
- if (user_getHistory($user->history, "s$submission->id")) $content .= " <TR><TD WIDTH=\"100%\"><A HREF=\"$PHP_SELF?op=view&id=$submission->id\">". check_output($submission->subject) ."</A></TD><TD>$submission->category</TD><TD ALIGN=\"center\">". date("Y-m-d", $submission->timestamp) ."<BR>". date("H:m:s", $submission->timestamp) ."</TD><TD ALIGN=\"center\">". format_username($submission->userid) ."</TD><TD ALIGN=\"center\">". submission_score($submission->id) ."</TD></TR>\n";
- else $content .= " <TR><TD WIDTH=\"100%\"><A HREF=\"$PHP_SELF?op=view&id=$submission->id\">". check_output($submission->subject) ."</A></TD><TD>$submission->category</TD><TD ALIGN=\"center\">". date("Y-m-d", $submission->timestamp) ."<BR>". date("H:m:s", $submission->timestamp) ."</TD><TD ALIGN=\"center\">". format_username($submission->userid) ."</TD><TD ALIGN=\"center\"><A HREF=\"$PHP_SELF?op=view&id=$submission->id\">vote</A></TD></TR>\n";
+ if (user_getHistory($user->history, "s$submission->id")) $content .= " <TR><TD WIDTH=\"100%\"><A HREF=\"$PHP_SELF?op=view&id=$submission->id\">". stripslashes($submission->subject) ."</A></TD><TD>$submission->category</TD><TD ALIGN=\"center\">". date("Y-m-d", $submission->timestamp) ."<BR>". date("H:m:s", $submission->timestamp) ."</TD><TD ALIGN=\"center\">". format_username($submission->userid) ."</TD><TD ALIGN=\"center\">". submission_score($submission->id) ."</TD></TR>\n";
+ else $content .= " <TR><TD WIDTH=\"100%\"><A HREF=\"$PHP_SELF?op=view&id=$submission->id\">". stripslashes($submission->subject) ."</A></TD><TD>$submission->category</TD><TD ALIGN=\"center\">". date("Y-m-d", $submission->timestamp) ."<BR>". date("H:m:s", $submission->timestamp) ."</TD><TD ALIGN=\"center\">". format_username($submission->userid) ."</TD><TD ALIGN=\"center\"><A HREF=\"$PHP_SELF?op=view&id=$submission->id\">vote</A></TD></TR>\n";
}
$content .= "</TABLE>\n";
diff --git a/submit.php b/submit.php
index 6a42ce4b4..f255fde5b 100644
--- a/submit.php
+++ b/submit.php
@@ -118,7 +118,7 @@ function submit_preview($subject, $abstract, $article, $category) {
$output .= "</FORM>\n";
$theme->header();
- $theme->preview($user->userid, check_output($subject), check_output($abstract), "", check_output($article), date("l, F d, Y - H:i A", time()), check_output($category), "we-hate-typoes");
+ $theme->preview($user->userid, check_output($subject), check_output($abstract), "", check_output($article), format_date(time(), "extra large"), check_output($category), "we-hate-typoes");
$theme->box("Submit a story", $output);
$theme->footer();
}
diff --git a/themes/marvin/marvin.theme b/themes/marvin/marvin.theme
index d60f0b7e4..bb24cc758 100644
--- a/themes/marvin/marvin.theme
+++ b/themes/marvin/marvin.theme
@@ -39,13 +39,17 @@
<TABLE BORDER="0" CELLPADDING="8" CELLSPACING="0">
<TR>
<TD ROWSPAN="3" WIDTH="30">&nbsp;</TD>
- <TD COLSPAN="2"><A HREF="" ><IMG SRC="themes/marvin/images/logo.gif" ALT="drop.org" BORDER="0"></A></TD>
+ <TD WIDTH="470"><A HREF=""><IMG SRC="themes/marvin/images/logo.gif" ALT="drop.org" BORDER="0"></A></TD>
+ <TD WIDTH="180">
+ <LI>Create an <A HREF="account.php?op=register">account</A> and <A HREF="submit.php">submit</A> new stories.</LI>
+ <LI>Send your questions, feedback and bug reports to <A HREF="mailto:info@drop.org">info@drop.org</A>.</LI>
+ </TD>
</TR>
<TR>
<TD ALIGN="right" COLSPAN="2"><SMALL><A HREF="">home</A> | <A HREF="faq.php">faq</A> | <A HREF="diary.php">diary</A> | <A HREF="search.php">search</A> | <A HREF="submit.php">submit news</A> | <A HREF="account.php">user account</A></SMALL></TD>
</TR>
<TR>
- <TD VALIGN="top" WIDTH="470">
+ <TD VALIGN="top">
<?
}
@@ -54,15 +58,13 @@
# Description..: a function to draw an abstract story box, that is the
# boxes displayed on the main page.
function abstract($story) {
- $story->timestamp = date("l, F d, Y - h:i:s A", $story->timestamp);
-
print "\n<!-- story: \"$story->subject\" -->\n";
print "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"2\" WIDTH=\"100%\">\n";
print " <TR><TD COLSPAN=\"2\"><IMG SRC=\"themes/marvin/images/drop.gif\" ALT=\"\"> &nbsp; <B>$story->subject</B></TD></TR>\n";
print " <TR VALIGN=\"bottom\"><TD COLSPAN=\"2\" BGCOLOR=\"#000000\" WIDTH=\"100%\"><IMG SRC=\"themes/marvin/images/pixel.gif\" WIDTH=\"1\" HEIGHT=\"0\" ALT=\"\"></TD></TR>\n";
print " <TR>\n";
print " <TD>\n";
- print " <FONT COLOR=\"#7C7C7C\"><SMALL>Posted by ". format_username($story->userid) ." on $story->timestamp"; ?><? if ($story->department) print "<BR>from the $story->department dept."; ?><? print "</SMALL></FONT></TD><TD ALIGN=\"right\" VALIGN=\"top\" NOWRAP><SMALL><A HREF=\"search.php?category=". urlencode($story->category) ."\"><FONT COLOR=\"#83997A\">$story->category</FONT></A></SMALL>\n";
+ print " <FONT COLOR=\"#7C7C7C\"><SMALL>Posted by ". format_username($story->userid) ." on ". format_date($story->timestamp, "extra large"). ""; ?><? if ($story->department) print "<BR>from the $story->department dept."; ?><? print "</SMALL></FONT></TD><TD ALIGN=\"right\" VALIGN=\"top\" NOWRAP><SMALL><A HREF=\"search.php?category=". urlencode($story->category) ."\"><FONT COLOR=\"#83997A\">$story->category</FONT></A></SMALL>\n";
print " </TD>\n";
print " </TR>\n";
print " <TR><TD COLSPAN=\"2\">&nbsp;</TD></TR>\n";
@@ -84,15 +86,13 @@
# comments). It's what you get when you followed for
# instance one of read-more links on the main page.
function article($story, $reply) {
- $story->timestamp = date("l, F d, Y - h:i:s A", $story->timestamp);
-
print "\n<!-- story: \"$story->subject\" -->\n";
print "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"2\" WIDTH=\"100%\">\n";
print " <TR><TD COLSPAN=\"2\"><IMG SRC=\"themes/marvin/images/drop.gif\" ALT=\"\"> &nbsp; <B>$story->subject</B></TD></TR>\n";
print " <TR VALIGN=\"bottom\"><TD COLSPAN=\"2\" BGCOLOR=\"#000000\" WIDTH=\"100%\"><IMG SRC=\"themes/marvin/images/pixel.gif\" WIDTH=\"1\" HEIGHT=\"0\" ALT=\"\"></TD></TR>\n";
print " <TR>\n";
print " <TD>\n";
- print " <FONT COLOR=\"#7C7C7C\"><SMALL>Posted by ". format_username($story->userid) ." on $story->timestamp"; ?><? if ($story->department) print "<BR>from the $story->department dept."; ?><? print "</SMALL></FONT></TD><TD ALIGN=\"right\" VALIGN=\"top\" NOWRAP><SMALL><A HREF=\"search.php?category=". urlencode($story->category) ."\"><FONT COLOR=\"#83997A\">$story->category</FONT></A></SMALL>\n";
+ print " <FONT COLOR=\"#7C7C7C\"><SMALL>Posted by ". format_username($story->userid) ." on ". format_date($story->timestamp, "extra large") .""; ?><? if ($story->department) print "<BR>from the $story->department dept."; ?><? print "</SMALL></FONT></TD><TD ALIGN=\"right\" VALIGN=\"top\" NOWRAP><SMALL><A HREF=\"search.php?category=". urlencode($story->category) ."\"><FONT COLOR=\"#83997A\">$story->category</FONT></A></SMALL>\n";
print " </TD>\n";
print " </TR>\n";
print " <TR><TD COLSPAN=\"2\">&nbsp;</TD></TR>\n";
@@ -283,7 +283,7 @@
function footer() {
?>
</TD>
- <TD VALIGN="top" WIDTH="180">
+ <TD VALIGN="top">
<?
global $PHP_SELF;