summaryrefslogtreecommitdiff
path: root/includes/theme.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/theme.inc')
-rw-r--r--includes/theme.inc162
1 files changed, 150 insertions, 12 deletions
diff --git a/includes/theme.inc b/includes/theme.inc
index 583bc0044..63024432c 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -1,16 +1,154 @@
<?
-include_once "includes/". getenv("HTTP_HOST") .".conf";
-include_once "includes/database.inc";
-include_once "includes/watchdog.inc";
-include_once "includes/function.inc";
-include_once "includes/droplet.inc";
-include_once "includes/module.inc";
-include_once "includes/widget.inc";
-include_once "includes/user.inc";
-
-global $user;
-
-$theme = load_theme();
+function theme_account($theme) {
+ global $user, $site_name;
+
+ if ($user->id) {
+
+ function submission_number() {
+ $result = db_query("SELECT COUNT(id) FROM stories WHERE status = 1");
+ return ($result) ? db_result($result, 0) : 0;
+ }
+
+ ### Display account settings:
+ $content .= "<LI><A HREF=\"account.php?op=track&topic=comments\">track your comments</A></LI>\n";
+ $content .= "<LI><A HREF=\"account.php?op=track&topic=stories\">track your stories</A></LI>\n";
+ $content .= "<LI><A HREF=\"account.php?op=track&topic=site\">track $site_name</A></LI>\n";
+ $content .= "<P>\n";
+ $content .= "<LI><A HREF=\"submission.php\">submission queue</A> (<FONT COLOR=\"red\">". submission_number() ."</FONT>)</LI>\n";
+ $content .= "<P>\n";
+ $content .= "<LI><A HREF=\"account.php?op=edit&topic=diary\">edit your diary</A></LI>\n";
+ $content .= "<LI><A HREF=\"account.php?op=edit&topic=user\">edit your information</A></LI>\n";
+ $content .= "<LI><A HREF=\"account.php?op=edit&topic=site\">edit your settings</A></LI>\n";
+ $content .= "<LI><A HREF=\"account.php?op=edit&topic=block\">edit your blocks</A></LI>\n";
+ $content .= "<P>\n";
+ $content .= "<LI><A HREF=\"account.php?op=view&topic=diary\">view your diary</A></LI>\n";
+ $content .= "<LI><A HREF=\"account.php?op=view&topic=info\">view your information</A></LI>\n";
+ $content .= "<P>\n";
+ $content .= "<LI><A HREF=\"account.php?op=logout\">logout</A></LI>\n";
+
+ $theme->box("$user->userid's configuration", "$content");
+ }
+ else {
+ $output .= "<CENTER>\n";
+ $output .= " <FORM ACTION=\"account.php?op=Login\" METHOD=\"post\">\n";
+ $output .= " <P><B>Username:</B><BR><INPUT NAME=\"userid\" SIZE=\"15\"></P>\n";
+ $output .= " <P><B>Password:</B><BR><INPUT NAME=\"passwd\" SIZE=\"15\" TYPE=\"password\"></P>\n";
+ $output .= " <P><INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Login\"></P>\n";
+ $output .= " <P><A HREF=\"account.php\">REGISTER</A></P>\n";
+ $output .= " </FORM>\n";
+ $output .= "</CENTER>\n";
+
+ $theme->box("Login", $output);
+ }
+}
+
+
+function theme_main_blocks($theme) {
+ global $PHP_SELF, $user, $id;
+
+ switch (strtok($PHP_SELF, ".")) {
+ case "/discussion":
+ if ($user->id) $story = db_fetch_object(db_query("SELECT * FROM stories WHERE id = '$id'"));
+ if ($story->status == 1) theme_moderation_results($theme, $story);
+ else theme_new_headlines($theme);
+ break;
+ default:
+ theme_account($theme);
+ }
+}
+
+function theme_user_blocks($theme) {
+ global $PHP_SELF, $repository, $user;
+ if ($user->id && strstr($PHP_SELF, "index.php")) {
+ $result = db_query("SELECT * FROM layout l LEFT JOIN blocks b ON l.block = b.name WHERE l.user = '$user->id' AND l.weight > 0 AND b.status = '1' ORDER BY weight DESC");
+ while ($block = db_fetch_object($result)) {
+ $blocks = module_execute($block->module, "block");
+ $theme->box($blocks[$block->offset]["subject"], $blocks[$block->offset]["content"]);
+ }
+ }
+}
+
+function theme_morelink($theme, $story) {
+ return ($story->article) ? "[ <A HREF=\"discussion.php?id=$story->id\"><FONT COLOR=\"$theme->hlcolor2\"><B>read more</B></FONT></A> | ". strlen($story->article) ." bytes | <A HREF=\"discussion.php?id=$story->id\"><FONT COLOR=\"$theme->hlcolor2\">". format_plural($story->comments, "comment", "comments") ."</FONT></A> ]" : "[ <A HREF=\"discussion.php?id=$story->id\"><FONT COLOR=\"$theme->hlcolor2\">". format_plural($story->comments, "comment", "comments") ."</FONT></A> ]";
+}
+
+function theme_moderation_results($theme, $story) {
+ global $user;
+
+ if ($user->id && $story->id && $vote = user_getHistory($user->history, "s$story->id")) {
+ $output .= "<P><B>You voted `$vote'.</B></P>\n";
+ $output .= "<P>\n";
+ $output .= "<B>Other people voted:</B><BR>\n";
+
+ $result = db_query("SELECT * FROM users WHERE id != $user->id AND history LIKE '%s$story->id%'");
+ while ($account = db_fetch_object($result)) {
+ $output .= "". format_username($account->userid) ." voted `". user_getHistory($account->history, "s$story->id") ."'.<BR>";
+ }
+
+ $theme->box("Moderation results", $output);
+ }
+}
+
+function theme_related_links($theme, $story) {
+ ### Parse story for <A HREF="">-tags:
+ $text = stripslashes("$story->abstract $story->updates $story->article");
+ while ($text = stristr($text, "<A HREF=")) {
+ $link = substr($text, 0, strpos(strtolower($text), "</a>") + 4);
+ $text = stristr($text, "</A>");
+ if (!stristr($link, "mailto:")) $content .= "<LI>$link</LI>";
+ }
+
+ ### Stories in the same category:
+ $content .= " <LI>More about <A HREF=\"search.php?category=". urlencode($story->category) ."\">$story->category</A>.</LI>";
+
+ ### Stories from the same author:
+ if ($story->userid) $content .= " <LI>Also by <A HREF=\"search.php?author=". urlencode($story->userid) ."\">$story->userid</A>.</LI>";
+
+ $theme->box("Related links", $content);
+}
+
+function theme_old_headlines($theme, $num = 10) {
+ global $user;
+
+ if ($user->stories) $result = db_query("SELECT id, subject, timestamp FROM stories WHERE status = 2 ORDER BY timestamp DESC LIMIT $user->stories, $num");
+ else $result = db_query("SELECT id, subject, timestamp FROM stories WHERE status = 2 ORDER BY timestamp DESC LIMIT $num, $num");
+
+ while ($story = db_fetch_object($result)) {
+ if ($time != date("F jS", $story->timestamp)) {
+ $content .= "<P><B>". date("l, M jS", $story->timestamp) ."</B></P>\n";
+ $time = date("F jS", $story->timestamp);
+ }
+ $content .= "<LI><A HREF=\"discussion.php?id=$story->id\">$story->subject</A></LI>\n";
+ }
+ $content .= "<P ALIGN=\"right\">[ <A HREF=\"search.php\"><FONT COLOR=\"$theme->hlcolor2\">more</FONT></A> ]</P>";
+
+ $theme->box("Older headlines", $content);
+}
+
+function theme_comment_moderation($id, $author, $score, $votes) {
+ global $user, $comment_votes;
+
+ if ($user->id && $user->userid != $author && !user_getHistory($user->history, "c$id")) {
+ $output .= "<SELECT NAME=\"moderate[$id]\">\n";
+ foreach ($comment_votes as $key=>$value) $output .= " <OPTION VALUE=\"$value\">$key</OPTION>\n";
+ $output .= "</SELECT>\n";
+ }
+ else {
+ $output .= "<TABLE BORDER=\"0\" CELLSPACING=\"1\" CELLPADDING=\"0\"><TR><TD>score:</TD><TD>". format_data($score) ."</TD></TR><TR><TD>votes:</TD><TD>". format_data($votes) ."</TR></TABLE>";
+ }
+
+ return $output;
+}
+
+function theme_new_headlines($theme, $num = 10) {
+ global $user;
+
+ $content = "";
+ $result = db_query("SELECT id, subject FROM stories WHERE status = 2 ORDER BY id DESC LIMIT $num");
+ while ($story = db_fetch_object($result)) $content .= "<LI><A HREF=\"discussion.php?id=$story->id\">$story->subject</A></LI>\n";
+ $content .= "<P ALIGN=\"right\">[ <A HREF=\"search.php\"><FONT COLOR=\"$theme->hlcolor2\">more</FONT></A> ]</P>";
+ $theme->box("Latest headlines", $content);
+}
?>