New version of the web site. Yes, the change is as big as it looks. :)
|
@ -1,7 +1,6 @@
|
|||
<? // Preamble
|
||||
$pageName = "About QuakeForge";
|
||||
$focused = "none"; // Dock icon name to gets a border
|
||||
$currPage = "about"; // Name of the page, for the menu
|
||||
$currPage = "about"; // Name of the page, for menu/dock
|
||||
require "parts/preamble.php"; // Load most of document
|
||||
?>
|
||||
<!--SEARCHME-->
|
||||
|
@ -18,7 +17,7 @@ We're working hard to fix these problems at the engine level.
|
|||
<P>But what good is that if you have to have a copy of our client and the
|
||||
server has to run our server? There are other projects out there and some of
|
||||
them have very unique qualities. QuakeForge is cooperating with
|
||||
<A HREF="http://www.quakesrc.org">QSG</A>, a group comprised of representatives
|
||||
<A href="http://www.quakesrc.org">QSG</A>, a group comprised of representatives
|
||||
from nearly every known Quake source project to ensure that our clients and
|
||||
servers run with other clients and servers just fine. We have all agreed to
|
||||
implement any effective cheat prevention methods.
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
?>
|
||||
|
||||
<?
|
||||
need ("table");
|
||||
|
||||
function doc_list ($title, $list, $type)
|
||||
{
|
||||
?>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<? // Preamble
|
||||
$pageName = "Files";
|
||||
$pageName = "Downloads";
|
||||
$focused = "download"; // Dock icon name to get a border
|
||||
$currPage = "files"; // Name of the page, for the menu
|
||||
require "parts/preamble.php"; // Load most of document
|
||||
|
|
BIN
img/background-logos/quakeforge-logo1.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
img/background-logos/quakeforge-logo2.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
img/background-logos/quakeforge-logo3.png
Normal file
After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 3.5 KiB |
BIN
img/partners/3dfx.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 6.3 KiB |
36
index.php
|
@ -1,33 +1,17 @@
|
|||
<? // Preamble
|
||||
$pageName = "News";
|
||||
$focused = "home"; // Dock icon name to get a border
|
||||
$pageName = "Welcome!";
|
||||
$currPage = "home"; // Name of the page, for the menu
|
||||
require "parts/preamble.php"; // Load most of document
|
||||
?>
|
||||
<!--SEARCHME-->
|
||||
<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">
|
||||
<TR vAlign="top">
|
||||
<TD colSpan="2"><? // News display
|
||||
tableBoxHeader (featureBgColor, featureHeadColor);
|
||||
tableTitle ('Latest News', 1, featureHeadColor);
|
||||
need ("news");
|
||||
$cached = latestNews (5);
|
||||
tableBoxFooter ();
|
||||
?></TD>
|
||||
</TR>
|
||||
<TR vAlign="top">
|
||||
<? tableSpacer (9, 1, 1, black); ?>
|
||||
</TR>
|
||||
<TR vAlign="top">
|
||||
<TD align="center">
|
||||
<? include "sponsor_incl.html"; ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR vAlign="top">
|
||||
<? tableSpacer (9, 1, 1, black); ?>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<!--NOSEARCH-->
|
||||
<DIV class="newsBox">
|
||||
<DIV class="newsTitle"><H2>Latest News</H2></DIV>
|
||||
<? // News display
|
||||
need ("news");
|
||||
$cached = latestNews (5);
|
||||
?>
|
||||
<DIV class="newsTitle"><A href="old_news.php">Older News...</A></DIV>
|
||||
</DIV>
|
||||
<!--<? include "sponsor_incl.html"; ?>-->
|
||||
<?
|
||||
require "parts/postamble.php"; // Finish this sucker up
|
||||
?>
|
||||
|
|
114
lib/auth.php
|
@ -32,46 +32,30 @@
|
|||
require siteHome . '/../etc/sql.conf';
|
||||
}
|
||||
|
||||
global $userInfo;
|
||||
global $authRealm;
|
||||
global $REMOTE_USER;
|
||||
|
||||
/* SQL definition for member list table
|
||||
CREATE TABLE members (
|
||||
u_key int DEFAULT '0' NOT NULL auto_increment PRIMARY KEY,
|
||||
u_admin char DEFAULT 'N' NOT NULL,
|
||||
u_username tinytext DEFAULT '' NOT NULL,
|
||||
u_password tinytext DEFAULT '' NOT NULL,
|
||||
u_fullname tinytext DEFAULT '' NOT NULL,
|
||||
u_email tinytext DEFAULT '' NOT NULL,
|
||||
u_phone tinytext DEFAULT '',
|
||||
u_addr1 tinytext DEFAULT '',
|
||||
u_addr2 tinytext DEFAULT '',
|
||||
u_country tinytext DEFAULT '',
|
||||
u_secret tinytext,
|
||||
u_plan text DEFAULT ''
|
||||
u_key INT NOT NULL auto_increment PRIMARY KEY,
|
||||
u_admin CHAR DEFAULT 'N' NOT NULL,
|
||||
u_username TINYTEXT DEFAULT '' NOT NULL,
|
||||
u_password TINYTEXT DEFAULT '' NOT NULL,
|
||||
u_fullname TINYTEXT DEFAULT '' NOT NULL,
|
||||
u_email TINYTEXT DEFAULT '' NOT NULL,
|
||||
u_phone TINYTEXT DEFAULT '',
|
||||
u_addr1 TINYTEXT DEFAULT '',
|
||||
u_addr2 TINYTEXT DEFAULT '',
|
||||
u_country TINYTEXT DEFAULT '',
|
||||
u_secret TINYTEXT,
|
||||
u_plan TEXT DEFAULT ''
|
||||
);
|
||||
*/
|
||||
|
||||
define ('EXPIRY', 86400); // Seconds until cookie expires
|
||||
|
||||
define ('thisUrl', ereg_replace ('index.php', '', getenv ('SCRIPT_NAME')));
|
||||
|
||||
/*
|
||||
authCreateSecret
|
||||
|
||||
Generate a secret key for user's session
|
||||
*/
|
||||
function authCreateSecret ($userName, $encryptedPassWord)
|
||||
{
|
||||
$digest = md5 (time ());
|
||||
$cookie = "$userName-$encryptedPassWord-$digest";
|
||||
SetCookie ("loginInfo", $cookie, (time () + EXPIRY));
|
||||
$query = "UPDATE members SET u_secret='$digest'" .
|
||||
" WHERE u_username='$userName'";
|
||||
|
||||
$row = @mysql_db_query (sqlDB, $query);
|
||||
}
|
||||
|
||||
/*
|
||||
authProcess
|
||||
|
||||
|
||||
Authenticate user against SQL database
|
||||
*/
|
||||
function authProcess ($userName, $password)
|
||||
|
@ -82,7 +66,6 @@ CREATE TABLE members (
|
|||
$result = @mysql_fetch_array (@mysql_db_query (sqlDB, $query));
|
||||
|
||||
if ($result[auth]) {
|
||||
authCreateSecret ($userName, $result[u_password]);
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
|
@ -90,48 +73,43 @@ CREATE TABLE members (
|
|||
}
|
||||
|
||||
/*
|
||||
authCookie
|
||||
|
||||
Authenticate user against SQL database using a cookie
|
||||
*/
|
||||
function authCookie ($cookie, $userName, $password)
|
||||
{
|
||||
$cookie_var = split ("-", $cookie);
|
||||
$cUserName = $cookie_var[0];
|
||||
$cPassword = $cookie_var[1];
|
||||
$secret = $cookie_var[2];
|
||||
|
||||
$query = "SELECT 1 AS auth FROM members" .
|
||||
" WHERE u_username='$cUserName'" .
|
||||
" AND u_password='$cPassword'" .
|
||||
" AND u_secret='$secret'";
|
||||
$result = @mysql_fetch_array (@mysql_db_query (sqlDB, $query));
|
||||
authBasicChallenge
|
||||
|
||||
if ($result[auth]) {
|
||||
return $cUserName;
|
||||
} else {
|
||||
authProcess ($userName, $password);
|
||||
}
|
||||
Use HTTP Basic authentication to ask the user for their UN/PW
|
||||
*/
|
||||
function authBasicChallenge ($realm, $msg)
|
||||
{
|
||||
header ('WWW-Authenticate: Basic realm="' . $realm . '"');
|
||||
header ('HTTP/1.0 401 Unauthorized');
|
||||
die ($msg);
|
||||
}
|
||||
|
||||
|
||||
// Initialization
|
||||
if (!$authRealm) {
|
||||
$authRealm = "Secure Area";
|
||||
}
|
||||
|
||||
if (!isset ($_SERVER['PHP_AUTH_USER'])) {
|
||||
authBasicChallenge ($authRealm, "Login required.");
|
||||
} else {
|
||||
$userName = $_SERVER['PHP_AUTH_USER'];
|
||||
$password = $_SERVER['PHP_AUTH_PW'];
|
||||
}
|
||||
|
||||
$db = @mysql_connect (sqlHost, sqlUser, sqlPass);
|
||||
|
||||
if ($loginInfo) {
|
||||
$userName = authCookie ($loginInfo, $userName, $password);
|
||||
} else {
|
||||
if ($userName) {
|
||||
if (authProcess ($userName, $password) == 0) {
|
||||
$title = "Login incorrect.";
|
||||
include siteHome . "/parts/authform.php";
|
||||
}
|
||||
} else {
|
||||
$title = "Login required.";
|
||||
include siteHome . "/parts/authform.php";
|
||||
if ($userName && $password) {
|
||||
if (authProcess ($userName, $password) == 0) {
|
||||
authBasicChallenge ($authRealm, "Login incorrect.");
|
||||
}
|
||||
} else {
|
||||
authBasicChallenge ($authRealm, "Login incorrect.");
|
||||
}
|
||||
$_SERVER['REMOTE_USER'] = $REMOTE_USER = $userName;
|
||||
|
||||
$query = "SELECT * FROM members" .
|
||||
" WHERE u_username='$userName'";
|
||||
$userInfo = @mysql_fetch_array (@mysql_db_query (sqlDB, $query));
|
||||
$userInfo = @mysql_fetch_assoc (@mysql_db_query (sqlDB, $query));
|
||||
|
||||
@mysql_close ($db);
|
||||
?>
|
||||
|
|
28
lib/cache.php
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?
|
||||
have ("cache");
|
||||
|
||||
function cachedURL ($url)
|
||||
{
|
||||
$cacheDir = siteHome . "/cache";
|
||||
$cacheTime = 1800;
|
||||
$cacheFile = $cacheDir . '/cached_' . md5 ($url);
|
||||
|
||||
$timeDifference = @(time () - filemtime ($cacheFile));
|
||||
|
||||
if ($cacheTime < $timeDifference) { // stale, make a new one
|
||||
if ($f = @fopen ($url, 'r')) {
|
||||
$content = '';
|
||||
while (!feof ($f)) {
|
||||
$content .= fgets ($f, 4096);
|
||||
}
|
||||
fclose ($f);
|
||||
if ($f = fopen ($cacheFile, 'w')) {
|
||||
fwrite ($f, $content, strlen ($content));
|
||||
fclose ($f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return file ($cacheFile);
|
||||
}
|
||||
?>
|
47
lib/feature.php
Normal file
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
/*
|
||||
feature.php
|
||||
|
||||
Code for handling feature boxes
|
||||
|
||||
Copyright (C) 2006 Jeff Teunissen <deek@quakeforge.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to:
|
||||
|
||||
Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
have ("feature");
|
||||
|
||||
function featureOpen ($title, $url, $id)
|
||||
{
|
||||
if ($url) {
|
||||
$part1 = '<A href="' . $url . '">';
|
||||
$part2 = '</A>';
|
||||
}
|
||||
if ($id)
|
||||
$id = " id=\"$id\"";
|
||||
|
||||
echo '<DIV' . $id . ' class="featureBox">';
|
||||
echo '<H2 class="featureTitle">' . $part1 . $title . $part2 . '</H2>';
|
||||
echo '<DIV class="featureContent">';
|
||||
}
|
||||
|
||||
function featureClose ()
|
||||
{
|
||||
echo '</DIV></DIV>';
|
||||
}
|
||||
?>
|
36
lib/html.php
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?
|
||||
/*
|
||||
html.php
|
||||
|
||||
HTML entity decoding
|
||||
|
||||
Copyright (C) 2004 Jeff Teunissen <deek@quakeforge.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to:
|
||||
|
||||
Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
have ('html');
|
||||
|
||||
function unhtmlentities ($str)
|
||||
{
|
||||
$transTable = array_flip (get_html_translation_table (HTML_ENTITIES));
|
||||
return strtr ($str, $transTable);
|
||||
}
|
||||
|
||||
?>
|
123
lib/news.php
|
@ -28,110 +28,84 @@
|
|||
|
||||
have ('news');
|
||||
|
||||
/* SQL definition for news table
|
||||
CREATE TABLE news_main (
|
||||
n_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
n_user TINYTEXT NOT NULL,
|
||||
n_date TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||
n_news TEXT DEFAULT '' NOT NULL
|
||||
);
|
||||
*/
|
||||
function newsItem ($date, $user, $text)
|
||||
{
|
||||
echo '<TR>' .
|
||||
' <TD>' .
|
||||
' <DL>' .
|
||||
' <DT><FONT SIZE="-1">' . "<EM>Posted on </EM>$date<EM> by </EM><STRONG>$user</STRONG></FONT></DT>" .
|
||||
" <DD><P>$text</DD>" .
|
||||
' </DL>' .
|
||||
' </TD>' .
|
||||
'</TR>';
|
||||
echo
|
||||
' <DL>' .
|
||||
' <DT><FONT SIZE="-1">' . "<EM>Posted on </EM>$date<EM> by </EM><STRONG>$user</STRONG></FONT></DT>" .
|
||||
" <DD><P>$text</P></DD>" .
|
||||
' </DL>' ;
|
||||
}
|
||||
|
||||
function newsEntry ($array)
|
||||
{
|
||||
need ("date");
|
||||
|
||||
return '<TR>' .
|
||||
' <TD>' .
|
||||
' <DL>' .
|
||||
' <DT><FONT SIZE="-1"><EM>Posted on </EM>' . dateFromSQLDateTime ($array[n_date]) . '<EM> by </EM><STRONG>' . $array[n_user] . '</STRONG></FONT></DT>' .
|
||||
' <DD><P>' . StripSlashes ($array[n_news]) . '</DD>' .
|
||||
' </DL>' .
|
||||
' </TD>' .
|
||||
'</TR>';
|
||||
return
|
||||
' <DL>' .
|
||||
' <DT><FONT size="-1"><EM>Posted on </EM>' . dateFromSQLDateTime ($array[n_date]) . '<EM> by </EM><STRONG>' . $array[n_user] . '</STRONG></FONT></DT>' .
|
||||
' <DD>' . StripSlashes ($array[n_news]) . '</DD>' .
|
||||
' </DL>';
|
||||
}
|
||||
|
||||
function monthForm ($month, $year)
|
||||
{
|
||||
?><FORM name="bymonth" method="get" action="/old_news.php"><?
|
||||
tableBoxHeader ('black', tableHeadColor);
|
||||
tableTitle ("Search by Month", 1, tableHeadColor);
|
||||
?><TD align="center"><?
|
||||
tableHeader("100%", featureBgColor);
|
||||
need ('feature');
|
||||
|
||||
// suppress warnings
|
||||
@featureOpen ('Date Search');
|
||||
?>
|
||||
<TR width="100%" vAlign="middle">
|
||||
<TD class="inside" align="center">
|
||||
<STRONG>Month:</STRONG>
|
||||
</TD>
|
||||
<TD class="inside" align="center">
|
||||
<FORM name="bymonth" method="get" action="<?=thisURL?>">
|
||||
<P align="center">
|
||||
<SELECT name="month">
|
||||
<?
|
||||
for ( $i = 1 ; $i < 13 ; $i++ ) {
|
||||
printf ("<OPTION%s>%02d</OPTION>", $i == $month ? " selected" : "", $i);
|
||||
}
|
||||
?>
|
||||
</SELECT>
|
||||
</TD>
|
||||
<TD class="inside" align="center">
|
||||
<STRONG>Year:</STRONG>
|
||||
</TD>
|
||||
<TD class="inside" align="center">
|
||||
<SELECT name="year">
|
||||
</SELECT><STRONG> / </STRONG><SELECT name="year">
|
||||
<?
|
||||
if ($year == "")
|
||||
$year = date ('Y');
|
||||
for ($i = 2000; $i <= date ('Y'); $i++ ) {
|
||||
for ($i = 2006; $i <= date ('Y'); $i++ ) {
|
||||
printf ("<OPTION%s>%04d</OPTION>", $i == $year ? " selected" : "", $i);
|
||||
}
|
||||
?>
|
||||
</SELECT>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR width="100%" vAlign="middle">
|
||||
<TD class="inside" align="center" colSpan="4">
|
||||
<BR>
|
||||
<BR>
|
||||
<INPUT type="submit" value="Search">
|
||||
</TD>
|
||||
</TR>
|
||||
<?
|
||||
tableFooter ();
|
||||
tableBoxFooter ();
|
||||
?>
|
||||
</FORM>
|
||||
<?
|
||||
</P>
|
||||
</FORM><?
|
||||
featureClose ();
|
||||
}
|
||||
|
||||
function keywordForm ($string)
|
||||
{
|
||||
?><FORM name="bystring" method="get" action="/old_news.php"><?
|
||||
tableBoxHeader ('black', tableHeadColor);
|
||||
tableTitle ("Search by String", 1, tableHeadColor);
|
||||
?><TD align="center"><?
|
||||
tableHeader("100%", featureBgColor);
|
||||
need ('feature');
|
||||
|
||||
// suppress warnings
|
||||
@featureOpen ('Keyword Search');
|
||||
?>
|
||||
<TR vAlign="middle">
|
||||
<TD class="inside" align="center">
|
||||
<STRONG>String:</STRONG>
|
||||
</TD>
|
||||
<TD class="inside" align="center">
|
||||
<?
|
||||
printf ("<INPUT name=\"string\" type=\"text\" size=\"25\" value=\"%s\">", $string);
|
||||
?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR vAlign="middle">
|
||||
<TD class="inside" align="center" colSpan="2">
|
||||
<FORM name="bystring" method="get" action="<?=thisURL?>">
|
||||
<P align="center">
|
||||
<?
|
||||
printf ('<INPUT name="string" type="text" size="16" value="%s">', $string);
|
||||
?>
|
||||
<BR>
|
||||
<BR>
|
||||
<INPUT TYPE="submit" VALUE="Search">
|
||||
</TD>
|
||||
</TR>
|
||||
<?
|
||||
tableFooter ();
|
||||
tableBoxFooter ();
|
||||
?>
|
||||
</FORM>
|
||||
<?
|
||||
</P>
|
||||
</FORM><?
|
||||
featureClose ();
|
||||
}
|
||||
|
||||
function fetchNewsEntry ($number)
|
||||
|
@ -206,14 +180,15 @@
|
|||
$month = date ('m');
|
||||
}
|
||||
|
||||
$date = sprintf ("%04d-%02d", $year, $month);
|
||||
$date1 = sprintf ("%04d-%02d", $year, $month);
|
||||
$date2 = sprintf ("%04d-%02d", $year, $month+1);
|
||||
|
||||
if (sqlAvail) {
|
||||
$conn = mysql_pconnect (sqlHost, sqlUser, sqlPass);
|
||||
if ($conn) {
|
||||
$query = 'SELECT n_date, n_user, n_news FROM news_main' .
|
||||
" WHERE n_date BETWEEN '$date-00 00:00:00'" .
|
||||
" AND '$date-31 23:59:59'" .
|
||||
" WHERE n_date BETWEEN '$date1-01 00:00:00'" .
|
||||
" AND '$date2-01 00:00:00'" .
|
||||
' ORDER BY n_date DESC';
|
||||
$result = @mysql_db_query (sqlDB, $query, $conn);
|
||||
if ($result) {
|
||||
|
|
66
lib/rss.php
Normal file
|
@ -0,0 +1,66 @@
|
|||
<?
|
||||
/*
|
||||
rss.php
|
||||
|
||||
Quick-and-dirty RSS parser/displayer
|
||||
|
||||
Copyright (C) 2004,2006 Jeff Teunissen <deek@quakeforge.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to:
|
||||
|
||||
Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
have ("rss");
|
||||
need ("cache");
|
||||
need ("html");
|
||||
|
||||
function displayRSSFeed ($url, $showChannelInfo)
|
||||
{
|
||||
$channelRegEx = ':<channel .*?>.*?<title>(.*?)</title>.*?<link>(.*?)</link>.*?<description>(.*?)</description>.*?</channel>:s';
|
||||
$itemRegEx = ':<item .*?>.*?<title>(.*?)</title>.*?<link>(.*?)</link>.*?<description>(.*?)</description>.*?</item>:s';
|
||||
|
||||
// grab the file
|
||||
$data = implode ('', cachedURL ($url));
|
||||
|
||||
if ($showChannelInfo) { // Channel information
|
||||
if ($itemCount = preg_match ($channelRegEx, $data, $info)) {
|
||||
$channelTitle = $info[1];
|
||||
$channelLink = $info[2];
|
||||
$channelDesc = $info[3];
|
||||
echo "<H3><A href=\"$channelLink\">" . unhtmlentities ($channelTitle) . "</A></H3>";
|
||||
}
|
||||
}
|
||||
|
||||
if (!($itemCount = @preg_match_all ($itemRegEx, $data, $info))) {
|
||||
echo "No items found.";
|
||||
return;
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $itemCount; $i++) {
|
||||
$title = $info[1][$i];
|
||||
$link = $info[2][$i];
|
||||
$desc = $info[3][$i];
|
||||
echo "<P><A href=\"$link\">" . unhtmlentities ($title) . "</A></P>\n";
|
||||
}
|
||||
}
|
||||
|
||||
function slashdot ()
|
||||
{
|
||||
displayRSSFeed ('http://rss.slashdot.org/Slashdot/slashdot', false);
|
||||
}
|
||||
?>
|
33
news.php
|
@ -1,24 +1,23 @@
|
|||
<? // Preamble
|
||||
$pageName = "News Archives";
|
||||
$focused = "news"; // Dock icon name to get a border
|
||||
$currPage = "news"; // Name of the page, for the menu
|
||||
$currPage = "news"; // Name of the page, for menu/dock
|
||||
$modules = 'news_search'; // right-side modules to display
|
||||
require "parts/preamble.php"; // Load most of document
|
||||
?>
|
||||
<?
|
||||
need ("news");
|
||||
?>
|
||||
<TABLE width="50%" cellSpacing="2" cellPadding="0" border="0">
|
||||
<TR vAlign="top">
|
||||
<TD align="center">
|
||||
<? monthForm ("", ""); ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR vAlign="top">
|
||||
<TD align="center">
|
||||
<? keywordForm (""); ?>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<DIV class="newsBox">
|
||||
<DIV class="newsTitle"><H2>News Archives</H2></DIV>
|
||||
<?
|
||||
if ($month || $year) {
|
||||
monthlyNews ($month, $year);
|
||||
} else {
|
||||
if ($string) {
|
||||
searchNews ($string);
|
||||
} else {
|
||||
newsItem ('now', 'Web Server', 'Go ahead, tough guy...use one of the forms to search the old news.');
|
||||
}
|
||||
}
|
||||
?>
|
||||
</DIV>
|
||||
<?
|
||||
require "parts/postamble.php"; // Finish this sucker up
|
||||
?>
|
||||
|
|
42
old_news.php
|
@ -1,37 +1,23 @@
|
|||
<?
|
||||
$pageName = 'News Archives';
|
||||
$focused = "none"; // Dock icon name to get a border
|
||||
$currPage = 'news';
|
||||
$modules = 'news_search'; // Modules to display
|
||||
require "parts/preamble.php"; // Load most of document
|
||||
need ("news");
|
||||
?>
|
||||
<TABLE width="100%" cellSpacing="2" cellPadding="0" border="0">
|
||||
<TR vAlign="top">
|
||||
<TD align="center" width="50%"><?
|
||||
monthForm ($month, $year);
|
||||
?></TD>
|
||||
<TD align="center" width="50%"><?
|
||||
keywordForm ($string);
|
||||
?></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">
|
||||
<TR vAlign="top">
|
||||
<TD align="center"><?
|
||||
tableBoxHeader (featureBgColor, featureHeadColor);
|
||||
tableTitle ($pageName, 1, featureHeadColor);
|
||||
if ($month || $year) {
|
||||
monthlyNews ($month, $year);
|
||||
<DIV class="newsBox">
|
||||
<DIV class="newsTitle"><H2>News Archives</H2></DIV>
|
||||
<?
|
||||
if ($month || $year) {
|
||||
monthlyNews ($month, $year);
|
||||
} else {
|
||||
if ($string) {
|
||||
searchNews ($string);
|
||||
} else {
|
||||
if ($string) {
|
||||
searchNews ($string);
|
||||
} else {
|
||||
newsItem ('now', 'Web Server', "You didn't specify a search, giving up.");
|
||||
}
|
||||
newsItem ('now', 'Web Server', 'Go ahead, tough guy...use one of the forms to search the old news.');
|
||||
}
|
||||
tableBoxFooter ();
|
||||
?></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
}
|
||||
?>
|
||||
</DIV>
|
||||
<?
|
||||
require "parts/postamble.php"; // Finish this sucker up
|
||||
?>
|
||||
|
|
87
partners.php
|
@ -1,57 +1,48 @@
|
|||
<? // Preamble
|
||||
$pageName = "Partners";
|
||||
$pageName = "Our Partners";
|
||||
$focused = "none"; // Dock icon name to gets a border
|
||||
require("parts/preamble.php"); // Load most of document
|
||||
?>
|
||||
<!--SEARCHME-->
|
||||
<TABLE cellSpacing="0" cellPadding="0" border="0">
|
||||
<TR vAlign="middle">
|
||||
<TD align="center" width="150">
|
||||
<A href="http://www.idsoftware.com/"><IMG src="img/partners/id.png" border=0 alt="Id Software, Inc."></A>
|
||||
</TD>
|
||||
<TD align="left">
|
||||
<H3>Id Software, Inc.</H3>
|
||||
<P>On 30 August 1996, during a fit of unparalleled insanity, Id Software
|
||||
released Quake to the world. Spawning two sequels and a nearly
|
||||
uncountable number of imitations and clones, Quake was a product
|
||||
that spawned an industry. Quake was the first game to include
|
||||
fully-featured, real-time Internet play out of the box. Quake
|
||||
is truly the father of modern online first-person gaming.
|
||||
|
||||
<P>What's more, Quake had the built-in ability for people to change
|
||||
it. For the first time, you could not only create custom levels in
|
||||
which to kill each other, but you could actually change the code
|
||||
so you could kill each other in new and interesting ways.
|
||||
<STRONG>:)</STRONG> Dozens, perhaps hundreds, of projects were
|
||||
started to make entirely new games out of the Quake engine. Some
|
||||
failed, others succeeded beyond their wildest dreams, but all of
|
||||
them had fun trying.
|
||||
<H3>Id Software, Inc.</H3>
|
||||
<A class="right" href="http://www.idsoftware.com/"><IMG src="img/partners/id.png" alt="Id Software, Inc."></A>
|
||||
<P>
|
||||
On 30 August 1996, during a fit of unparalleled insanity, Id Software
|
||||
released Quake to the world. Spawning two sequels and a nearly uncountable
|
||||
number of imitations and clones, Quake was a product that spawned an
|
||||
industry. Quake was the first game to include fully-featured, real-time
|
||||
Internet play out of the box. Quake is truly the father of modern online
|
||||
first-person gaming.
|
||||
</P>
|
||||
<P>
|
||||
What's more, Quake had the built-in ability for people to change it. For
|
||||
the first time, you could not only create custom levels in which to kill
|
||||
each other, but you could actually change the code so you could kill each
|
||||
other in new and interesting ways. <STRONG>:)</STRONG> Dozens, perhaps
|
||||
hundreds, of projects were started to make entirely new games out of the
|
||||
Quake engine. Some failed, others succeeded beyond their wildest dreams,
|
||||
but all of them had fun trying.
|
||||
</P>
|
||||
<P>
|
||||
After three years of undisputed success, Id released the source code to
|
||||
the Quake engine under the GNU General Public License. This was the event
|
||||
that made QuakeForge and all of the other engine modification projects
|
||||
possible. We all owe Id a debt of thanks, one that many doubt can ever be
|
||||
completely paid. Thanks, guys.
|
||||
</P>
|
||||
|
||||
<P>After three years of undisputed success, Id released the source
|
||||
code to the Quake engine under the GNU General Public License.
|
||||
This was the event that made QuakeForge and all of the other engine
|
||||
modification projects possible. We all owe Id a debt of thanks, one
|
||||
that many doubt can ever be completely paid. Thanks, guys.
|
||||
</TD>
|
||||
</TR>
|
||||
<TR vAlign="middle">
|
||||
<TD align="center" width="150">
|
||||
<TABLE cellSpacing="0" cellPadding="0" border="0">
|
||||
<TR vAlign="middle">
|
||||
<TD align="center">
|
||||
<A href="http://www.valinux.com/"><IMG src="img/partners/valinux2.png" border="0" alt="VA Linux Systems, Inc."></A>
|
||||
<A href="http://www.sourceforge.net/"><IMG src="img/partners/sourceforge.png" border=0 alt="SourceForge"></A>
|
||||
<A href="http://copyleft.net/"><IMG src="img/partners/copyleft.png" border=0 alt="Copyleft"></A>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD align="left">
|
||||
<H3>VA Linux Systems, Inc.</H3>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TABLE>
|
||||
<H3>VA Linux Systems, Inc.</H3>
|
||||
<P>
|
||||
<A class="right" href="http://www.valinux.com/"><IMG src="img/partners/valinux2.png" alt="VA Linux Systems, Inc."></A>
|
||||
This is some text that only exists because Deek hasn't finished this page.
|
||||
This is some text that only exists because Deek hasn't finished this page.
|
||||
This is some text that only exists because Deek hasn't finished this page.
|
||||
This is some text that only exists because Deek hasn't finished this page.
|
||||
This is some text that only exists because Deek hasn't finished this page.
|
||||
This is some text that only exists because Deek hasn't finished this page.
|
||||
This is some text that only exists because Deek hasn't finished this page.
|
||||
This is some text that only exists because Deek hasn't finished this page.
|
||||
</P>
|
||||
<!--NOSEARCH-->
|
||||
<?
|
||||
require("parts/postamble.php"); // Finish this sucker up
|
||||
|
|
9
parts/bg-logo.php
Normal file
|
@ -0,0 +1,9 @@
|
|||
<? // Project logo background rotation
|
||||
define ('siteHome', '/home/groups/q/qu/quake/htdocs');
|
||||
require siteHome . "/parts/library.php"; // Load function library
|
||||
|
||||
srand ((double) microtime () * 1000000);
|
||||
|
||||
header("HTTP/1.1 307 Temporary Redirect");
|
||||
header("Location: /img/background-logos/$theme-logo" . rand(1, 3) . '.png');
|
||||
?>
|
|
@ -1,26 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<LINK rel="StyleSheet" href="/styles/<? echo $theme; ?>.css" type="text/css">
|
||||
<TITLE>
|
||||
<?
|
||||
<LINK rel="StyleSheet" type="text/css" href="/styles/<?=$theme?>/level1.css">
|
||||
<STYLE type="text/css" media="screen"><!--
|
||||
@import url(/styles/<?=$theme?>/level2.css);
|
||||
--></STYLE>
|
||||
<TITLE><?
|
||||
switch ($theme) {
|
||||
case "christmas":
|
||||
echo "Happy holidays! -- ";
|
||||
echo "Happy Holidays from ";
|
||||
break;
|
||||
default:
|
||||
}
|
||||
echo "$siteName: $pageName";
|
||||
?>
|
||||
</TITLE>
|
||||
<LINK rel="icon" href="/img/icons16/qficon.png" type="image/png">
|
||||
?></TITLE>
|
||||
<LINK rel="Icon" type="image/png" href="/img/icons16/qficon.png">
|
||||
<SCRIPT type="text/javascript"><? include siteHome . "/parts/menuResize.js"; ?></SCRIPT>
|
||||
</HEAD>
|
||||
<? echo '<BODY bgColor="' . bgColor . '" ' .
|
||||
'text="' . textColor . '" ' .
|
||||
'link="' . linkColor . '" ' .
|
||||
'aLink="' . activeLinkColor . '" ' .
|
||||
'vLink="' . visitedLinkColor . '" ' .
|
||||
'topMargin="0" bottomMargin="0" ' .
|
||||
'leftMargin="0" rightMargin="0" ' .
|
||||
'marginHeight="0" marginWidth="0">' . "\n";
|
||||
?>
|
||||
<BODY>
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
define ('black', "black");
|
||||
define ('white', "white");
|
||||
|
||||
define ('thisURL', $_SERVER['SCRIPT_NAME']);
|
||||
|
||||
if (!$theme && date ('m') == 12)
|
||||
$theme = "christmas";
|
||||
|
||||
|
|
147
parts/menu.php
|
@ -1,98 +1,81 @@
|
|||
<!-- menus -->
|
||||
<!-- begin menu -->
|
||||
<DIV class="menu" id="menu">
|
||||
<?
|
||||
function menuItemLink ($name, $url, $desc)
|
||||
function menuSectionHeader ($name)
|
||||
{
|
||||
global $currPage;
|
||||
|
||||
if ($name == $currPage) {
|
||||
echo "<STRONG>$desc</STRONG><BR>";
|
||||
} else {
|
||||
echo '<A class="menus" href="' . $url . '">' . $desc . '</A><BR>';
|
||||
}
|
||||
}
|
||||
|
||||
function menuSectionHeader ($name, $fgColor , $bgColor, $intBgColor)
|
||||
{
|
||||
echo "\n<!-- menuSectionHeader(" . $name . ') -->' .
|
||||
'<TABLE cellSpacing="0" cellPadding="3" width="100%" border=0 bgColor="' . $bgColor . '">' .
|
||||
' <TR bgColor="' . $bgColor . '">' .
|
||||
' <TD align="center">' .
|
||||
' <IMG src="/img/blank.gif" height="1" width="135" alt="" border="0"><BR>' .
|
||||
' <SPAN class="titleBar">' . $name . '</SPAN>' .
|
||||
' </TD>' .
|
||||
' </TR>' .
|
||||
' <TR align="right" bgColor="' . $intBgColor . '">' .
|
||||
' <TD>';
|
||||
echo "<!-- menuSectionHeader(" . $name . ') -->' .
|
||||
'<SPAN class="menuTitle">' . $name . '<SPAN class="nodisplay">:</SPAN></SPAN>' .
|
||||
'<SPAN class="nodisplay"> [ </SPAN>';
|
||||
}
|
||||
|
||||
function menuSectionFooter ()
|
||||
{
|
||||
echo ' </TD>' .
|
||||
' </TR>' .
|
||||
'</TABLE>';
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
function qfMenu ()
|
||||
function menuItemLink ($name, $url, $desc, $last)
|
||||
{
|
||||
menuSectionHeader ("Project", 'white', menuHeadColor, menuBgColor);
|
||||
menuItemLink ("about", "/about.php", "About");
|
||||
menuItemLink ("home", "/", "Latest News");
|
||||
menuItemLink ("news", "/news.php", "Old News");
|
||||
menuItemLink ("docs", "/documentation.php", "Documentation");
|
||||
menuItemLink ("shots", "/screenshots.php", "Screenshots");
|
||||
menuItemLink ("files", "/files.php", "Downloads");
|
||||
menuItemLink ("bugs", "/bugs/", "Bug Tracker");
|
||||
menuItemLink ("lists", "/lists.php", "Mailing Lists");
|
||||
// menuItemLink ("board", "/board/", "Web Forum");
|
||||
menuSectionFooter ();
|
||||
}
|
||||
global $currPage;
|
||||
|
||||
function develMenu ()
|
||||
{
|
||||
menuSectionHeader ("Developers", 'white', menuHeadColor, menuBgColor);
|
||||
menuItemLink ("cvs", "/cgi-bin/viewcvs.cgi/", "Browse CVS");
|
||||
menuItemLink ("devtools", "/devtools.php", "Developer Tools");
|
||||
// menuItemLink ("plans", "/plans.php", "Developer Plans");
|
||||
menuItemLink ("progress", "/progress.php", "Progress");
|
||||
// menuItemLink ("sotc", "/sotc/", "State of the Code");
|
||||
// menuItemLink ("research", "/research/", "Research Center");
|
||||
// menuItemLink ("patches", "http://sourceforge.net/patch/?group_id=882", "Patch Manager");
|
||||
// menuItemLink ("support", "http://sourceforge.net/support/?group_id=882", "Support Manager");
|
||||
// menuItemLink ("tasks", "http://sourceforge.net/pm/?group_id=882", "Task Manager");
|
||||
menuSectionFooter ();
|
||||
if ($last) {
|
||||
$chr = ' ]';
|
||||
$final = '<BR>';
|
||||
} else {
|
||||
$chr = ' | ';
|
||||
}
|
||||
|
||||
if ($name == $currPage) {
|
||||
echo '<SPAN class="menuItem"><A class="selected" href="' . $url . '">' . $desc . '</A></SPAN>';
|
||||
} else {
|
||||
echo '<SPAN class="menuItem"><A href="' . $url . '">' . $desc . '</A></SPAN>';
|
||||
}
|
||||
echo "<SPAN class=\"nodisplay\">$chr</SPAN>$final";
|
||||
}
|
||||
|
||||
function searchMenu ()
|
||||
{
|
||||
menuSectionHeader ("Search", 'white', menuHeadColor, menuBgColor);
|
||||
echo '<CENTER><FONT size="-2">' .
|
||||
'<FORM action="search.php" method="POST">' .
|
||||
' <SELECT name="type_of_search">' .
|
||||
' <OPTION value="news">News</OPTION>' .
|
||||
// ' <OPTION value="site">Site</OPTION>' .
|
||||
// ' <OPTION value="bugs">Bug Tracking</OPTION>' .
|
||||
' <OPTION value="-announce">Announcements</OPTION>' .
|
||||
' <OPTION value="-bugs">Bug Discussions</OPTION>' .
|
||||
' <OPTION value="-cvs">CVS Logs</OPTION>' .
|
||||
' <OPTION value="-devel">Developer Talk</OPTION>' .
|
||||
' <OPTION value="-user">User Discussions</OPTION>' .
|
||||
// ' <OPTION value="patches">Patches</OPTION>' .
|
||||
' </SELECT>' .
|
||||
' <BR>' .
|
||||
' <INPUT TYPE="CHECKBOX" NAME="exact" VALUE="1" CHECKED> Require Exact Match' .
|
||||
' <BR>' .
|
||||
' <INPUT TYPE="HIDDEN" NAME="forum_id" VALUE="">' .
|
||||
' <INPUT TYPE="HIDDEN" NAME="is_bug_page" VALUE="">' .
|
||||
' <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="882">' .
|
||||
' <INPUT TYPE="text" NAME="words" SIZE="15" VALUE="">' .
|
||||
' <BR>' .
|
||||
' <INPUT TYPE="submit" NAME="Search" VALUE="Search">' .
|
||||
'</FORM></FONT>' .
|
||||
'</CENTER>';
|
||||
menuSectionHeader ("Search");
|
||||
echo '<FORM action="search.php" method="POST">'
|
||||
.' <SELECT name="type_of_search">'
|
||||
.' <OPTION value="news">News</OPTION>'
|
||||
.' <OPTION value="site">Site</OPTION>'
|
||||
// .' <OPTION value="bugs">Bug Tracker</OPTION>'
|
||||
// .' <OPTION value="patches">Patches</OPTION>'
|
||||
.' </SELECT>'
|
||||
.' <INPUT TYPE="CHECKBOX" NAME="exact" VALUE="1" CHECKED> Require Exact Match'
|
||||
.' <INPUT TYPE="HIDDEN" NAME="forum_id" VALUE="">'
|
||||
.' <INPUT TYPE="HIDDEN" NAME="is_bug_page" VALUE="">'
|
||||
.' <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="882">'
|
||||
.' <INPUT TYPE="text" NAME="words" SIZE="15" VALUE="">'
|
||||
.' <INPUT TYPE="submit" NAME="Search" VALUE="Search">'
|
||||
.'</FORM>';
|
||||
menuSectionFooter ();
|
||||
}
|
||||
|
||||
qfMenu ();
|
||||
develMenu ();
|
||||
searchMenu ();
|
||||
?>
|
||||
|
||||
// Project
|
||||
menuSectionHeader ("Project");
|
||||
menuItemLink ("home", "/", "Home", FALSE);
|
||||
menuItemLink ("shots", "/screenshots.php", "Screen Shots", FALSE);
|
||||
menuItemLink ("files", "/files.php", "Downloads", FALSE);
|
||||
menuItemLink ("docs", "/documentation.php", "Documentation", FALSE);
|
||||
menuItemLink ("lists", "/lists.php", "Mailing Lists", FALSE);
|
||||
menuItemLink ("news", "/old_news.php", "News Archive", TRUE);
|
||||
menuSectionFooter ();
|
||||
|
||||
// Developers
|
||||
menuSectionHeader ("Developers");
|
||||
menuItemLink ("devtools", "/devtools.php", "Developer Tools", FALSE);
|
||||
menuItemLink ("bugs", "/bugs/", "Bug Tracker", FALSE);
|
||||
menuItemLink ("cvs", "http://quake.svn.sourceforge.net/viewvc/quake/", "Subversion", FALSE);
|
||||
// menuItemLink ("plans", "/plans.php", "Developer Plans", FALSE);
|
||||
// menuItemLink ("patches", "http://sourceforge.net/patch/?group_id=882", "Patch Manager", FALSE);
|
||||
// menuItemLink ("support", "http://sourceforge.net/support/?group_id=882", "Support Manager", FALSE);
|
||||
// menuItemLink ("tasks", "http://sourceforge.net/pm/?group_id=882", "Task Manager", FALSE);
|
||||
menuItemLink ("progress", "/progress.php", "Progress", TRUE);
|
||||
menuSectionFooter ();
|
||||
|
||||
// searchMenu ();
|
||||
?>
|
||||
<SPAN class="centered"><A class="sfLogo" href="http://sourceforge.net/"><IMG src="http://sflogo.sourceforge.net/sflogo.php?group_id=882&type=2" width="125" height="37" border="0" alt="SourceForge Logo"></A></SPAN>
|
||||
</DIV>
|
||||
<!-- end menu -->
|
||||
|
|
70
parts/menuResize.js
Normal file
|
@ -0,0 +1,70 @@
|
|||
|
||||
var columnIDs;
|
||||
|
||||
function init () {
|
||||
// this may be called twice
|
||||
if (arguments.callee.done)
|
||||
return;
|
||||
|
||||
arguments.callee.done = true;
|
||||
|
||||
setHeight ('menu', columnIDs);
|
||||
}
|
||||
|
||||
function doResize () {
|
||||
setHeight ('menu', columnIDs);
|
||||
}
|
||||
|
||||
function setHeight (myTarget, columns) {
|
||||
if (document.getElementById) {
|
||||
var targetID = document.getElementById (myTarget);
|
||||
var maxHeight = targetID.offsetHeight;
|
||||
var divCount = columns.length;
|
||||
var i = 0;
|
||||
|
||||
// we only want to resize if the level 2 CSS has been loaded
|
||||
if (window.getComputedStyle) { // got NS/Mozilla/Firefox
|
||||
var targetStyle = window.getComputedStyle (targetID, "");
|
||||
|
||||
if (targetStyle.getPropertyValue ('background-color') == 'transparent') {
|
||||
return;
|
||||
}
|
||||
} else if (targetID.currentStyle) { // got IE
|
||||
if (targetID.currentStyle.backgroundColor == 'transparent') {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// the divs array contains references to each column's div element.
|
||||
var divs = new Array (divCount);
|
||||
for (i = 0; i < divCount; i++) {
|
||||
divs[i] = document.getElementById (columns[i]);
|
||||
}
|
||||
|
||||
// determine the maximum height out of all columns specified
|
||||
for (i = 0; i < divs.length; i++) {
|
||||
if (maxHeight < divs[i].offsetHeight) {
|
||||
maxHeight = divs[i].offsetHeight;
|
||||
}
|
||||
}
|
||||
|
||||
// set the target column to that maximum height
|
||||
targetID.style.height = maxHeight + 2 + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
/* for Mozilla */
|
||||
if (document.addEventListener) {
|
||||
document.addEventListener ("DOMContentLoaded", init, null);
|
||||
}
|
||||
|
||||
/* for Internet Explorer */
|
||||
/*@cc_on @*/
|
||||
/*@if (@_win32)
|
||||
document.write ("<script defer src=ie_onload.js><"+"/script>");
|
||||
/*@end @*/
|
||||
|
||||
/* for other browsers */
|
||||
window.onload = init;
|
||||
window.onresize = doResize;
|
||||
|
9
parts/news_search.php
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?
|
||||
need ("news");
|
||||
$string = $_GET['string'];
|
||||
$month = $_GET['month'];
|
||||
$year = $_GET['year'];
|
||||
|
||||
monthForm ($month, $year);
|
||||
keywordForm ($string);
|
||||
?>
|
|
@ -1,26 +1,9 @@
|
|||
<!-- Content End -->
|
||||
</TD>
|
||||
<? tableSpacer (9, 1, 1, black); ?>
|
||||
</TR>
|
||||
<TR>
|
||||
<? tableSpacer (1, 9, 3, black); ?>
|
||||
</TR>
|
||||
<? tableFooter(); ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR vAlign="top">
|
||||
<TD colSpan="2">
|
||||
<TABLE width="100%" border="0" cellSpacing="0" cellPadding="3" bgColor="<? echo menuBgColor; ?>">
|
||||
<TR>
|
||||
<TD align="center">
|
||||
<SPAN class="titleBar">
|
||||
Copyright © 1999-<? echo date("Y"); ?> the QuakeForge Project.<BR>
|
||||
<A class="mainTitleBar" href="/copyright.php">Additional Copyright and Trademark Acknowledgements</A>
|
||||
</SPAN>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<DIV id="bottom">
|
||||
<SPAN class="copyright">
|
||||
Copyright © 1999-<? echo date("Y"); ?> the QuakeForge Project.<BR>
|
||||
<A href="/copyright.php">Additional Copyright and Trademark Acknowledgements</A>
|
||||
</SPAN>
|
||||
</DIV>
|
||||
</HTML>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<? // Preamble
|
||||
$siteName = "The QuakeForge Project";
|
||||
$columns = 'content';
|
||||
define ('siteHome', "/home/groups/q/qu/quake/htdocs");
|
||||
|
||||
require siteHome . "/parts/library.php"; // Load function library
|
||||
|
@ -7,32 +8,38 @@
|
|||
need ($need);
|
||||
unset ($need);
|
||||
}
|
||||
need ('table');
|
||||
|
||||
require siteHome . "/parts/head.php"; // Load the HEAD and open BODY
|
||||
require siteHome . "/parts/topstrip.php"; // Display top strip
|
||||
require siteHome . "/parts/titletable.php"; // Display main title w/ logos
|
||||
require siteHome . "/parts/menu.php"; // Load up the menu
|
||||
|
||||
$contentClass = '';
|
||||
if ($modules && $modules = explode (" ", $modules)) {
|
||||
|
||||
$columns .= ' features';
|
||||
$contentClass = 'class="narrow"';
|
||||
|
||||
echo '<DIV id="features">';
|
||||
for ($i = 0; $i < count ($modules); $i++) {
|
||||
include siteHome . "/parts/" . $modules[$i] . ".php";
|
||||
}
|
||||
echo '</DIV>';
|
||||
}
|
||||
|
||||
echo '<SCRIPT type="text/javascript">columnIDs = new Array (';
|
||||
$columns = explode (" ", $columns);
|
||||
$i = count ($columns);
|
||||
do {
|
||||
echo "'" . $columns[$i-1] . "'";
|
||||
if (--$i) {
|
||||
echo ", ";
|
||||
}
|
||||
} while ($i);
|
||||
echo ');</SCRIPT>';
|
||||
|
||||
?>
|
||||
<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">
|
||||
<TR vAlign="top">
|
||||
<TD bgColor="<? echo menuBgColor; ?>">
|
||||
<? include siteHome . "/parts/menu.php"; ?>
|
||||
</TD>
|
||||
<TD width="100%">
|
||||
<? tableHeader ("100%", black); ?>
|
||||
<TR>
|
||||
<? tableSpacer (1, 9, 3, black); ?>
|
||||
</TR>
|
||||
<TR>
|
||||
<? tableSpacer (9, 1, 1, black); ?>
|
||||
<TD>
|
||||
<? require siteHome . "/parts/topmain.php"; ?>
|
||||
</TD>
|
||||
<? tableSpacer (9, 1, 1, black); ?>
|
||||
</TR>
|
||||
<TR>
|
||||
<? tableSpacer (1, 18, 3, black); ?>
|
||||
</TR>
|
||||
<TR>
|
||||
<? tableSpacer (9, 1, 1, black); ?>
|
||||
<TD>
|
||||
<!-- Content Start -->
|
||||
<DIV <?=$contentClass?> id="content"><!-- Content Start -->
|
||||
<?
|
||||
require siteHome . "/parts/topmain.php"; // insert page title
|
||||
?>
|
|
@ -1,30 +1,5 @@
|
|||
<!-- top title table -->
|
||||
<? need ('table'); ?>
|
||||
<TABLE width="100%" border="0" cellSpacing="0" cellPadding="0" bgColor="<? echo menuBgColor; ?>">
|
||||
<TR vAlign="top">
|
||||
<? tableSpacer (1, 3, 6, menuBgColor); ?>
|
||||
</TR>
|
||||
<TR vAlign="top">
|
||||
<? tableSpacer (3, 1, 1, menuBgColor); ?>
|
||||
<TD align="center" vAlign="middle">
|
||||
<? // Project logo rotation
|
||||
srand ((double) microtime () * 1000000);
|
||||
echo '<IMG src="/img/logos/' . $theme . '-logo' . rand (1,3) . '.png" alt="QuakeForge" border="0">'; ?>
|
||||
</TD>
|
||||
<? tableSpacer (3, 1, 1, menuBgColor); ?>
|
||||
<TD width="100%" vAlign="middle"><!--Site name -->
|
||||
<SPAN class="mainTitle"><? echo $siteName; ?></SPAN>
|
||||
</TD>
|
||||
<? tableSpacer (3, 1, 1, menuBgColor); ?>
|
||||
<TD align="right" vAlign="middle"><!-- SourceForge Logo -->
|
||||
<A href="http://sourceforge.net"><IMG src="http://sflogo.sourceforge.net/sflogo.php?group_id=882&type=2" width="125" height="37" border="0" alt="SourceForge Logo"></A>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<? tableSpacer (1, 3, 6, menuBgColor); ?>
|
||||
</TR>
|
||||
<TR>
|
||||
<? tableSpacer (2, 2, 6, black); ?>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<!-- end top title table -->
|
||||
<!-- main title -->
|
||||
<DIV id="mainTitle">
|
||||
<H1><?=$siteName?></H1>
|
||||
</DIV>
|
||||
<!-- end main title -->
|
||||
|
|
|
@ -1,57 +1,40 @@
|
|||
<?
|
||||
need ('table');
|
||||
|
||||
function isFocused ($name, $newname)
|
||||
function isFocused ($name)
|
||||
{
|
||||
return (strToLower ($name) == strToLower ($newname)) ? 1 : 0;
|
||||
global $currPage;
|
||||
|
||||
return (strToLower ($name) == strToLower ($currPage)) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
function iconLink ($url, $img, $desc, $border)
|
||||
function iconLink ($img, $desc, $name, $url)
|
||||
{
|
||||
echo '<A class="tabs" href="' . $url . '"><IMG src="' . $img . '" alt="' . $desc . ' " hSpace="3" vSpace="1" border="' . $border . '" width="24" height="24"></A>';
|
||||
$cls = 'class="icon" ';
|
||||
if (isFocused ($name)) {
|
||||
$cls = 'class="focusedIcon" ';
|
||||
}
|
||||
echo '<A class="tabs" href="' . $url . '">'
|
||||
.'<IMG ' . $cls . 'src="/img/icons/' . $img . '" alt="' . $desc . '">'
|
||||
.'</A>';
|
||||
}
|
||||
|
||||
function iconBar ($focused)
|
||||
|
||||
function iconBar ()
|
||||
{
|
||||
echo '<TABLE border="0" cellSpacing="0" cellPadding="2" bgColor="white">' .
|
||||
'<TR>';
|
||||
tableSpacer (1, 1, 1, white);
|
||||
echo '<TD>';
|
||||
iconLink ('http://sourceforge.net/projects/quake/', '/img/icons/anvil.png', 'SourceForge', isFocused($focused, 'summary'));
|
||||
iconLink ('/', '/img/icons/home.png', 'Homepage', isFocused($focused, 'home'));
|
||||
iconLink ('/bugs/', '/img/icons/bugs.png', 'Bugs', isFocused($focused, 'bugs'));
|
||||
// iconLink ('http://sourceforge.net/support/?group_id=882', '/img/icons/support.png', 'Support', isFocused($focused, 'support'));
|
||||
// iconLink ('http://sourceforge.net/patch/?group_id=882', '/img/icons/patch.png', 'Patches', isFocused($focused, 'patch'));
|
||||
iconLink ('/lists.php', '/img/icons/mail.png', 'Lists', isFocused($focused, 'mail'));
|
||||
// iconLink ('http://sourceforge.net/pm/?group_id=882', '/img/icons/tasks.png', 'Tasks', isFocused($focused, 'tasks'));
|
||||
// iconLink ('http://sourceforge.net/survey/?group_id=882', '/img/icons/survey.png', 'Surveys', isFocused($focused, 'survey'));
|
||||
iconLink ('/news.php', '/img/icons/news.png', 'News Archives', isFocused($focused, 'news'));
|
||||
iconLink ('http://quake.svn.sourceforge.net/viewvc/quake/', '/img/icons/cvs.png', 'Subversion', isFocused($focused, 'cvs'));
|
||||
iconLink ('/files.php', '/img/icons/download.png', 'Downloads', isFocused($focused, 'download'));
|
||||
echo '</TD></TR></TABLE>';
|
||||
iconLink ('anvil.png', 'SourceForge', 'nil', 'http://sourceforge.net/projects/quake/');
|
||||
iconLink ('home.png', 'Home Page', 'home', '/');
|
||||
iconLink ('bugs.png', 'Bug Tracker', 'bugs', '/bugs/');
|
||||
// iconLink ('support.png','Support', 'support', 'http://sourceforge.net/support/?group_id=882');
|
||||
// iconLink ('patch.png', 'Patches', 'patches', 'http://sourceforge.net/patch/?group_id=882');
|
||||
iconLink ('mail.png', 'Mailing Lists','lists', '/lists.php');
|
||||
// iconLink ('tasks.png', 'Tasks', 'tasks', 'http://sourceforge.net/pm/?group_id=882');
|
||||
// iconLink ('survey.png', 'Surveys', 'surveys', 'http://sourceforge.net/survey/?group_id=882');
|
||||
iconLink ('news.png', 'News Archives','news', '/old_news.php');
|
||||
iconLink ('cvs.png', 'Subversion', 'cvs', 'http://quake.svn.sourceforge.net/viewvc/quake/');
|
||||
iconLink ('download.png','Downloads', 'files', '/files.php');
|
||||
}
|
||||
|
||||
function topBar ($pageName)
|
||||
{
|
||||
global $focused;
|
||||
|
||||
tableHeader ("100%", black);
|
||||
echo ' <TR vAlign="bottom">' .
|
||||
' <TD align="left">' .
|
||||
' <SPAN class="pageTitle">' . $pageName . '</SPAN>' .
|
||||
' </TD>' .
|
||||
' <TD align="right">';
|
||||
iconBar ($focused);
|
||||
echo ' </TD>' .
|
||||
' </TR>' .
|
||||
' <TR>';
|
||||
tableSpacer (1, 1, 2, black);
|
||||
echo ' </TR>' .
|
||||
' <TR>';
|
||||
tableSpacer (2, 1, 2, white);
|
||||
echo ' </TR>';
|
||||
tableFooter ();
|
||||
}
|
||||
|
||||
topBar ($pageName);
|
||||
|
||||
?>
|
||||
<DIV id="topMain" <?=$contentClass?>>
|
||||
<H2 class="pageTitle"><?=$pageName?></H2>
|
||||
</DIV>
|
||||
|
|
|
@ -1,17 +1,8 @@
|
|||
<!-- top strip -->
|
||||
<TABLE width="100%" border="0" cellSpacing="0" cellPadding="3" bgColor="<? echo tableHeadColor; ?>">
|
||||
<TR vAlign="middle">
|
||||
<TD align="left">
|
||||
<SPAN class="mainTitleBar">
|
||||
<A class="mainTitleBar" href="/"><B>Home</B></A> |
|
||||
<A class="mainTitleBar" href="/about.php"><B>About</B></A> |
|
||||
<A class="mainTitleBar" href="/partners.php"><B>Partners</B></A> |
|
||||
<A class="mainTitleBar" href="/contact.php"><B>Contact Us</B></A>
|
||||
</SPAN>
|
||||
</TD>
|
||||
<TD align="right">
|
||||
<A class="mainTitleBar" href="https://members.quakeforge.net/"><IMG alt="Member Access" border="0" padding="0" src="/img/icons/pi.png"></A>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<DIV id="topStrip">
|
||||
<A href="/"><B>Home</B></A> |
|
||||
<A href="/about.php"><B>About</B></A> |
|
||||
<A href="/partners.php"><B>Partners</B></A> |
|
||||
<A href="/contact.php"><B>Contact Us</B></A>
|
||||
</DIV>
|
||||
<!-- end top strip -->
|
||||
|
|
|
@ -6,14 +6,10 @@
|
|||
|
||||
function screenshot ($name, $caption)
|
||||
{
|
||||
echo '<TR vAlign="middle">' .
|
||||
' <TD align="center">' .
|
||||
' <P class="centered">' .
|
||||
' <A href="/img/screenshots/' . $name . '.png"><IMG src="/img/screenshots/' . $name . '.jpg" alt="View at full size" border="1"></A>' .
|
||||
' </P>' .
|
||||
" <P>$caption</P>" .
|
||||
' </TD>' .
|
||||
'</TR>';
|
||||
echo '<P class="lined">'
|
||||
.' <CENTER><A class="screenshot" href="/img/screenshots/' . $name . '.png"><IMG src="/img/screenshots/' . $name . '.jpg" alt="View at full size"></A></CENTER><BR>'
|
||||
. $caption
|
||||
.'</P>';
|
||||
}
|
||||
?>
|
||||
<P>
|
||||
|
@ -22,25 +18,18 @@
|
|||
gamma-modified or doctored, they are what you actually see in the game.
|
||||
</P>
|
||||
|
||||
<P>
|
||||
<TABLE width="100%" cellSpacing="0" cellPadding="1" border="0">
|
||||
<TR vAlign="top">
|
||||
<TD><?
|
||||
tableBoxHeader (featureBgColor, featureHeadColor);
|
||||
tableTitle ('QuakeForge: Newtree', 1, featureHeadColor);
|
||||
<DIV class="featureBox">
|
||||
<DIV class="featureTitle">QuakeForge: Newtree</DIV>
|
||||
<?
|
||||
screenshot ('wateralpha-0.3', 'The Elder World pool, with a watervised map and with r_wateralpha 0.3. If you look closely, you can see the partially fullbright texture on the nail box below.');
|
||||
screenshot ('dlights-quad-rocket', 'This one really shows off dynamic lighting and fullbrights. The player has quad damage, causing them to give off a blue dynamic light. A rocket is exploding after hitting a wall, and in the background you see the fullbrights on the exit glowing bright red.');
|
||||
screenshot ('conback', 'This shows our logo as a <a href="/files/conback.lmp.gz">conback</a> (or, <a href="/files/pakQF.pak">more conveniently</a>, works as is). Also shows ALSA sound initialisation.');
|
||||
screenshot ('location', 'This shows a location marker (only visible with r_drawentities 0) which was placed shortly before taking the screenshot');
|
||||
screenshot ('smoke', 'Smoke trails and lights. Nuff said :)');
|
||||
// put more here
|
||||
|
||||
screenshot ('wateralpha-0.3', 'The Elder World pool, with a watervised map and with r_wateralpha 0.3. If you look closely, you can see the partially fullbright texture on the nail box below.');
|
||||
screenshot ('dlights-quad-rocket', 'This one really shows off dynamic lighting and fullbrights. The player has quad damage, causing them to give off a blue dynamic light. A rocket is exploding after hitting a wall, and in the background you see the fullbrights on the exit glowing bright red.');
|
||||
screenshot ('conback', 'This shows our logo as a <a href="/files/conback.lmp.gz">conback</a> (or, <a href="/files/pakQF.pak">more conveniently</a>, works as is). Also shows ALSA sound initialisation.');
|
||||
screenshot ('location', 'This shows a location marker (only visible with r_drawentities 0) which was placed shortly before taking the screenshot');
|
||||
screenshot ('smoke', 'Smoke trails and lights. Nuff said :)');
|
||||
// put more here
|
||||
|
||||
tableBoxFooter ();
|
||||
?></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
?>
|
||||
</DIV>
|
||||
<?
|
||||
require "parts/postamble.php"; // Finish this sucker up
|
||||
?>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
switch ($type_of_search) {
|
||||
case "news":
|
||||
$string = AddSlashes ($words);
|
||||
include "old_news.php";
|
||||
include "news.php";
|
||||
break;
|
||||
case "-announce":
|
||||
$string = urlencode ($words);
|
||||
|
@ -49,7 +49,7 @@
|
|||
}
|
||||
while (list($key,$val) = each ($files)) {
|
||||
echo "<P><A HREF=\"$key\">$key</A> - $val hits";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "<P>Sorry, no pages found containing '$words'";
|
||||
}
|
||||
|
|
|
@ -1,30 +1,20 @@
|
|||
QuakeForge would like to thank these organizations for their contributions:
|
||||
<DIV>
|
||||
<P>
|
||||
QuakeForge would like to thank these organizations for their
|
||||
contributions:
|
||||
</P>
|
||||
|
||||
<TABLE cellSpacing=0 cellPadding=0 border=0>
|
||||
<TR vAlign="top">
|
||||
<?
|
||||
tableSpacer(9, 1, 2, "black");
|
||||
?>
|
||||
</TR>
|
||||
<TR vAlign="middle">
|
||||
<TD align="center">
|
||||
<A href="http://www.idsoftware.com/"><IMG src="img/partners/id.png" border=0 alt="id Software" width=70 height=80></A>
|
||||
</TD>
|
||||
<td align="center">
|
||||
<a href="http://www.anchor.com.au/"><img src="img/partners/anchor.gif" border=0 alt="Anchor Domains and Hosting"></a>
|
||||
</td>
|
||||
<TD align="center">
|
||||
<A href="http://www.anchor.com.au/"><IMG src="img/partners/anchor.gif" border=0 alt="Anchor Domains and Hosting"></a>
|
||||
</TD>
|
||||
<TD align="center">
|
||||
<A href="http://www.valinux.com/"><IMG src="img/partners/valinux2.png" border=0 alt="VA Linux Systems"></A>
|
||||
</TD>
|
||||
<!--
|
||||
</TR>
|
||||
<TR vAlign="top">
|
||||
<?
|
||||
tableSpacer(9, 1, 2, "black");
|
||||
?>
|
||||
</TR>
|
||||
<TR vAlign="middle">
|
||||
-->
|
||||
<TD align="center">
|
||||
<A href="http://sourceforge.net/"><IMG src="img/partners/sourceforge.png" border=0 alt="SourceForge"></A>
|
||||
</TD>
|
||||
|
@ -33,3 +23,4 @@ QuakeForge would like to thank these organizations for their contributions:
|
|||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
93
styles/christmas/level1.css
Normal file
|
@ -0,0 +1,93 @@
|
|||
BODY {
|
||||
background: black;
|
||||
color: white;
|
||||
}
|
||||
|
||||
OL,UL,BODY,TD,TR,TH,FORM,SPAN {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: white;
|
||||
}
|
||||
|
||||
P {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: white;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
SPAN.smallText {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
P.centered {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: white;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
TABLE.featureBox {
|
||||
background: #7f000c;
|
||||
border: solid #7f000c 1px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
TABLE.featureBox TH {
|
||||
border: none;
|
||||
margin: none;
|
||||
padding: none;
|
||||
}
|
||||
|
||||
TABLE.featureBox TD {
|
||||
background: #083008;
|
||||
border: solid #7f000c 1px;
|
||||
margin: 0px;
|
||||
padding: 3pt;
|
||||
}
|
||||
|
||||
TABLE.featureBox TD.inside {
|
||||
background: #083008;
|
||||
border: none;
|
||||
margin: 1pt;
|
||||
padding: 1pt;
|
||||
}
|
||||
|
||||
H1,H2,H3,H4,H5,H6 { font-family: Arial, Helvetica, sans-serif; }
|
||||
DL,DT,DD { font-family: Arial, Helvetica, sans-serif; }
|
||||
PRE,TT,CODE { font-family: "Courier New", Courier, monospace; }
|
||||
/* Links */
|
||||
A { color: rgb(170,255,170); text-decoration: none; }
|
||||
A:visited { color: rgb(170,255,170); text-decoration: none; }
|
||||
A:link { color: rgb(170,255,170); text-decoration: none; }
|
||||
A:active { color: rgb(255,255,255); text-decoration: none; }
|
||||
A:hover { color: rgb(255,170,170); text-decoration: none; }
|
||||
/* Special link types */
|
||||
A.mainTitleBar { color: white; }
|
||||
A.sortButton { color: white; text-decoration: underline; }
|
||||
A.menus { color: rgb(192,192,192); text-decoration: underline; }
|
||||
A.tabs { color: black; }
|
||||
|
||||
SPAN.center { text-align: center; }
|
||||
SPAN.alignRight { text-align: right; }
|
||||
SPAN.boxSpace { font-size: 2pt; }
|
||||
SPAN.mainTitleBar {
|
||||
color: black;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
SPAN.mainTitle {
|
||||
color: white;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
SPAN.pageTitle {
|
||||
font-size: 15pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
SPAN.titleBar {
|
||||
color: white;
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
93
styles/christmas/level2.css
Normal file
|
@ -0,0 +1,93 @@
|
|||
BODY {
|
||||
background: black;
|
||||
color: white;
|
||||
}
|
||||
|
||||
OL,UL,BODY,TD,TR,TH,FORM,SPAN {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: white;
|
||||
}
|
||||
|
||||
P {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: white;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
SPAN.smallText {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
P.centered {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: white;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
TABLE.featureBox {
|
||||
background: #7f000c;
|
||||
border: solid #7f000c 1px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
TABLE.featureBox TH {
|
||||
border: none;
|
||||
margin: none;
|
||||
padding: none;
|
||||
}
|
||||
|
||||
TABLE.featureBox TD {
|
||||
background: #083008;
|
||||
border: solid #7f000c 1px;
|
||||
margin: 0px;
|
||||
padding: 3pt;
|
||||
}
|
||||
|
||||
TABLE.featureBox TD.inside {
|
||||
background: #083008;
|
||||
border: none;
|
||||
margin: 1pt;
|
||||
padding: 1pt;
|
||||
}
|
||||
|
||||
H1,H2,H3,H4,H5,H6 { font-family: Arial, Helvetica, sans-serif; }
|
||||
DL,DT,DD { font-family: Arial, Helvetica, sans-serif; }
|
||||
PRE,TT,CODE { font-family: "Courier New", Courier, monospace; }
|
||||
/* Links */
|
||||
A { color: rgb(170,255,170); text-decoration: none; }
|
||||
A:visited { color: rgb(170,255,170); text-decoration: none; }
|
||||
A:link { color: rgb(170,255,170); text-decoration: none; }
|
||||
A:active { color: rgb(255,255,255); text-decoration: none; }
|
||||
A:hover { color: rgb(255,170,170); text-decoration: none; }
|
||||
/* Special link types */
|
||||
A.mainTitleBar { color: white; }
|
||||
A.sortButton { color: white; text-decoration: underline; }
|
||||
A.menus { color: rgb(192,192,192); text-decoration: underline; }
|
||||
A.tabs { color: black; }
|
||||
|
||||
SPAN.center { text-align: center; }
|
||||
SPAN.alignRight { text-align: right; }
|
||||
SPAN.boxSpace { font-size: 2pt; }
|
||||
SPAN.mainTitleBar {
|
||||
color: black;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
SPAN.mainTitle {
|
||||
color: white;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
SPAN.pageTitle {
|
||||
font-size: 15pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
SPAN.titleBar {
|
||||
color: white;
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
251
styles/quakeforge/level1.css
Normal file
|
@ -0,0 +1,251 @@
|
|||
* { /* Standard style */
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
BODY {
|
||||
background: black;
|
||||
color: white;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
PRE,TT,CODE {
|
||||
font-family: "Courier New", Courier, fixed;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
A {
|
||||
color: #aaaaff;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
A:active {
|
||||
color: #ffffff;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
A:link {
|
||||
color: #aaaaff;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
A:hover {
|
||||
color: #ffaaaa;
|
||||
text-decoration:none;
|
||||
}
|
||||
A:visited {
|
||||
color: #aaaaff;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
IMG {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
IMG.screenshot {
|
||||
border: 2px #717b9c solid;
|
||||
|
||||
width: 200px;
|
||||
height: 150px;
|
||||
}
|
||||
/* Misc. styles */
|
||||
.featureBox {
|
||||
background: #262633;
|
||||
border: 2px solid #737b9c;
|
||||
|
||||
font-size: 8pt;
|
||||
text-align: left;
|
||||
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.featureBox A {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.featureBox BR {
|
||||
height: 1em;
|
||||
}
|
||||
|
||||
.featureBox H2 {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.featureBox P {
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.featureBox .featureTitle {
|
||||
background: #737b9c;
|
||||
color: #fff;
|
||||
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.featureBox A.featureTitle {
|
||||
color: #99c;
|
||||
}
|
||||
|
||||
.featureBox A.featureTitle:visited {
|
||||
color: #aaf;
|
||||
}
|
||||
|
||||
.featureBox A.featureTitle:active {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.featureBox A.featureTitle:hover {
|
||||
color: #668;
|
||||
}
|
||||
|
||||
.newsBox {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.newsBox DL {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
|
||||
border-top: 1px solid #737b9c;
|
||||
}
|
||||
|
||||
.newsBox DL DT {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.newsBox DL DD {
|
||||
border: 0;
|
||||
margin: 1.5em;
|
||||
padding: 0;
|
||||
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.newsBox .newsTitle {
|
||||
display: block;
|
||||
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
font-size: 8pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nodisplay {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
display: block;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
/* Misc. styles */
|
||||
.noLevelOne {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#topStrip {
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#mainTitle {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#mainTitle H1 {
|
||||
font-size: 36px;
|
||||
font-weight: bold;
|
||||
text-align: right;
|
||||
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 24px 48px;
|
||||
}
|
||||
|
||||
/*
|
||||
Menus
|
||||
*/
|
||||
#menu {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#menu A {
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
#menu A.selected {
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
#menu .menuTitle {
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/*
|
||||
Right-side feature boxes
|
||||
*/
|
||||
#features {
|
||||
width: 140px;
|
||||
float: right;
|
||||
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#topMain {
|
||||
text-align: justify;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.narrow#topMain {
|
||||
margin-right: 142px; /* features width + 2px */
|
||||
|
||||
_margin-right: 2px;
|
||||
}
|
||||
|
||||
#topMain H2 {
|
||||
border-bottom: 2px solid white;
|
||||
|
||||
margin: -2px -2px 8px -2px;
|
||||
|
||||
padding: 0;
|
||||
}
|
||||
/*
|
||||
Main content
|
||||
*/
|
||||
#content {
|
||||
text-align: justify;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.narrow#content {
|
||||
margin-right: 142px; /* features width + 2px */
|
||||
|
||||
_margin-right: 2px;
|
||||
}
|
213
styles/quakeforge/level2.css
Normal file
|
@ -0,0 +1,213 @@
|
|||
HTML {
|
||||
max-height: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
BODY {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
max-height: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.featureBox P.lined {
|
||||
text-align: justify;
|
||||
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border-top: 2px solid #737b9c;
|
||||
}
|
||||
|
||||
.newsBox {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
|
||||
background: #262633;
|
||||
|
||||
border-left: 2px solid #737b9c;
|
||||
border-right: 2px solid #737b9c;
|
||||
border-bottom: 1px solid #737b9c;
|
||||
}
|
||||
|
||||
.newsBox .newsTitle {
|
||||
background: #737b9c;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.newsBox .newsTitle H2 {
|
||||
margin: 0;
|
||||
font-size: 10pt;
|
||||
text-align: center;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.newsBox DL {
|
||||
border-top: 1px solid #737b9c;
|
||||
border-bottom: 1px solid #737b9c;
|
||||
}
|
||||
|
||||
.newsBox P.lined {
|
||||
border-top: 2px solid #737b9c;
|
||||
margin: 0;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.nodisplay {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.noLevelOne {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.left {
|
||||
clear: none;
|
||||
float: left;
|
||||
display: block;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.right {
|
||||
clear: right;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#topStrip {
|
||||
background: #737b9c;
|
||||
color: black;
|
||||
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#topStrip A {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#mainTitle {
|
||||
background: #4b4f66; /* menu background color */
|
||||
background-image:url(/parts/bg-logo.php);
|
||||
background-position:bottom left;
|
||||
background-repeat:no-repeat;
|
||||
color: white;
|
||||
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#menu {
|
||||
background: #4b4f66;
|
||||
|
||||
width: 130px;
|
||||
height: auto;
|
||||
|
||||
display: inline;
|
||||
float: left;
|
||||
|
||||
margin: 0;
|
||||
margin-top: 2px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#menu A {
|
||||
color: #c0c0c0;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
#menu .menuItem {
|
||||
display: block;
|
||||
|
||||
font-size: 10pt;
|
||||
text-align: right;
|
||||
|
||||
margin: 0;
|
||||
padding: 0pt 4px;
|
||||
}
|
||||
|
||||
#menu .menuTitle {
|
||||
background: #737b9c;
|
||||
color: white;
|
||||
|
||||
display: block;
|
||||
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
|
||||
margin: 0;
|
||||
margin-bottom: 2px;
|
||||
padding: 2px 0;
|
||||
}
|
||||
|
||||
#menu .sfLogo {
|
||||
|
||||
display: inline;
|
||||
|
||||
text-align: right;
|
||||
|
||||
border: 0;
|
||||
margin: 2px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#features {
|
||||
margin: 0;
|
||||
margin-top: 2px;
|
||||
|
||||
_display: inline;
|
||||
_float: right;
|
||||
_clear: none;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 2px;
|
||||
margin-left: 132px; /* menu width + 2 px */
|
||||
padding: 8px;
|
||||
|
||||
_display: inline;
|
||||
_float: left;
|
||||
_clear: none;
|
||||
|
||||
_margin-left: 2px;
|
||||
}
|
||||
|
||||
#bottom {
|
||||
display: block;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
|
||||
background: #4b4f66;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#bottom A {
|
||||
color: white;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
A#pi {
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
right: 1px;
|
||||
background: #4b4f66;
|
||||
color: #4b4f66;
|
||||
font-size: 14pt;
|
||||
}
|
||||
|
||||
.smallText {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Special link types */
|
||||
A.sortButton { color: white; text-decoration: underline; }
|