id) { function submission_number() { $result = db_query("SELECT COUNT(id) FROM stories WHERE status = 1"); return ($result) ? db_result($result, 0) : 0; } function menu($name, $module) { global $menu; if ($module["menu"]) $menu = ($menu) ? array_merge($menu, $module["menu"]()) : $module["menu"](); } module_iterate("menu"); // Display account settings: $content .= "
  • track your comments
  • \n"; $content .= "
  • track your stories
  • \n"; $content .= "
  • track $site_name
  • \n"; $content .= "

    \n"; $content .= "

  • submission queue (". submission_number() .")
  • \n"; $content .= "

    \n"; $content .= "

  • edit your information
  • \n"; $content .= "
  • edit your preferences
  • \n"; $content .= "
  • edit site content
  • \n"; $content .= "

    \n"; if (($user->id) && ($user->permissions == 1 || $user->id == 1)) { $content .= "

  • administrate ". $site_name ."
  • \n"; $content .= "

    \n"; } if ($menu && ksort($menu)) { foreach ($menu as $link=>$url) $content .= "

  • $link
  • \n"; $content .= "

    \n"; } $content .= "

  • logout
  • \n"; $theme->box("$user->userid's configuration", "$content"); } else { $output .= "
    \n"; $output .= "
    \n"; $output .= "

    Username:

    \n"; $output .= "

    Password:

    \n"; $output .= "

    \n"; $output .= "

    REGISTER

    \n"; $output .= "
    \n"; $output .= "
    \n"; $theme->box("Login", $output); } } function theme_main_blocks($theme) { global $id, $PHP_SELF, $user; 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; case "/index": theme_account($theme); $result = db_query("SELECT * FROM blocks WHERE status = 2"); while ($block = db_fetch_object($result)) { $blocks = module_execute($block->module, "block"); $theme->box($blocks[$block->offset]["subject"], $blocks[$block->offset]["content"]); } 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"); 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) ? "[ id\">hlcolor2\">read more | ". strlen($story->article) ." bytes | id\">hlcolor2\">". format_plural($story->comments, "comment", "comments") ." ]" : "[ id\">hlcolor2\">". format_plural($story->comments, "comment", "comments") ." ]"; } function theme_moderation_results($theme, $story) { global $user; if ($user->id && $story->id && $vote = user_getHistory($user->history, "s$story->id")) { $output .= "

    You voted `$vote'.

    \n"; $output .= "

    \n"; $output .= "Other people voted:
    \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") ."'.
    "; } $theme->box("Moderation results", $output); } } function theme_related_links($theme, $story) { // Parse story for -tags: $text = stripslashes("$story->abstract $story->updates $story->article"); while ($text = stristr($text, "") + 4); $text = stristr($text, ""); if (!stristr($link, "mailto:")) $content .= "

  • $link
  • "; } // Stories in the same category: $content .= "
  • More about category) ."\">$story->category.
  • "; // Stories from the same author: if ($story->userid) $content .= "
  • Also by userid) ."\">$story->userid.
  • "; $theme->box("Related links", $content); } function theme_comment_moderation($comment) { global $user, $comment_votes; if ($user->id && $user->userid != $comment->userid && !user_getHistory($user->history, "c$comment->cid")) { $output .= "\n"; } else { $output .= "
    score:". format_data($comment->score) ."
    votes:". format_data($comment->votes) ."
    "; } 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 .= "
  • id\">". check_output($story->subject) ."
  • \n"; $content .= "

    [ hlcolor2\">more ]

    "; $theme->box("Latest headlines", $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 .= "

    ". date("l, M jS", $story->timestamp) ."

    \n"; $time = date("F jS", $story->timestamp); } $content .= "
  • id\">". check_output($story->subject) ."
  • \n"; } $content .= "

    [ hlcolor2\">more ]

    "; $theme->box("Older headlines", $content); } ?>