mirror of
https://git.code.sf.net/p/quake/website
synced 2024-11-24 21:21:46 +00:00
256 lines
6.4 KiB
PHP
256 lines
6.4 KiB
PHP
<?
|
|
/*
|
|
news.php
|
|
|
|
SQL-based news reading library
|
|
|
|
Copyright (C) 2000 Contributors of the QuakeForge Project
|
|
Please see the file "AUTHORS" for a list of contributors
|
|
|
|
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 ('news');
|
|
|
|
function newsItem ($date, $user, $text)
|
|
{
|
|
if ($user == "Theoddone33") $user = "theoddone33";
|
|
echo '<TR>' .
|
|
' <TD>' .
|
|
' <DL>' .
|
|
' <DT><FONT SIZE="-1">' . "Posted on $date by $user</FONT></DT>" .
|
|
" <DD><P>$text</DD>" .
|
|
' </DL>' .
|
|
' </TD>' .
|
|
'</TR>';
|
|
}
|
|
|
|
function newsEntry ($array)
|
|
{
|
|
need ("date");
|
|
|
|
if ($array[n_user] == "Theoddone33") $user = "theoddone33";
|
|
return '<TR>' .
|
|
' <TD>' .
|
|
' <DL>' .
|
|
' <DT><FONT SIZE="-1"> Posted on ' . dateFromSQLDateTime ($array[n_date]) . ' by ' . $array[n_user] . '</FONT></DT>' .
|
|
' <DD><P>' . StripSlashes ($array[n_news]) . '</DD>' .
|
|
' </DL>' .
|
|
' </TD>' .
|
|
'</TR>';
|
|
}
|
|
|
|
function monthForm ()
|
|
{
|
|
?><FORM name="bymonth" method="get" action="/old_news.php"><?
|
|
tableBoxHeader ('black', tableHeadColor);
|
|
tableTitle ("Search by Month", 1, tableHeadColor);
|
|
?><TD align="center"><?
|
|
tableHeader("100%", featureBgColor);
|
|
?>
|
|
<TR vAlign="center">
|
|
<TD align="center">
|
|
<STRONG>Month:</STRONG>
|
|
</TD>
|
|
<TD align="center">
|
|
<SELECT name="month">
|
|
<?
|
|
for ( $i = 1 ; $i < 13 ; $i++ ) {
|
|
printf("<OPTION>%02d</OPTION>", $i);
|
|
}
|
|
?>
|
|
</SELECT>
|
|
</TD>
|
|
<TD align="center">
|
|
<STRONG>Year:</STRONG>
|
|
</TD>
|
|
<TD align="center">
|
|
<SELECT name="year">
|
|
<OPTION>2000</OPTION>
|
|
<OPTION SELECTED>2001</OPTION>
|
|
</SELECT>
|
|
</TD>
|
|
</TR>
|
|
<TR vAlign="center">
|
|
<TD align="center" colSpan="4">
|
|
<INPUT TYPE="submit" VALUE="Search">
|
|
</TD>
|
|
</TR>
|
|
<?
|
|
tableFooter ();
|
|
tableBoxFooter ();
|
|
?>
|
|
</FORM>
|
|
<?
|
|
}
|
|
|
|
function keywordForm ()
|
|
{
|
|
?><FORM name="bystring" method="get" action="/old_news.php"><?
|
|
tableBoxHeader ('black', tableHeadColor);
|
|
tableTitle ("Search by String", 1, tableHeadColor);
|
|
?><TD align="center"><?
|
|
tableHeader("100%", featureBgColor);
|
|
?>
|
|
<TR vAlign="center">
|
|
<TD align="center">
|
|
<STRONG>String:</STRONG>
|
|
</TD>
|
|
<TD align="center">
|
|
<INPUT name="string" type="text" size="25">
|
|
</TD>
|
|
</TR>
|
|
<TR vAlign="center">
|
|
<TD align="center" colSpan="2">
|
|
<INPUT TYPE="submit" VALUE="Search">
|
|
</TD>
|
|
</TR>
|
|
<?
|
|
tableFooter ();
|
|
tableBoxFooter ();
|
|
?>
|
|
</FORM>
|
|
<?
|
|
}
|
|
|
|
function fetchNewsEntry ($number)
|
|
{
|
|
need('date');
|
|
|
|
$conn = @mysql_pconnect (sqlHost, sqlUser, sqlPass);
|
|
if ($conn) {
|
|
$query = 'SELECT n_date, n_user, n_news FROM news_main' .
|
|
" ORDER BY n_date DESC LIMIT $number";
|
|
$result = @mysql_db_query (sqlDB, $query, $conn);
|
|
if ($result) {
|
|
$numRows = @mysql_num_rows ($result);
|
|
if ($numRows) {
|
|
for ($i = 0 ; $i < $numRows ; $i++) {
|
|
list ($n_date, $n_user, $n_news) = mysql_fetch_row ($result);
|
|
}
|
|
} else {
|
|
return 0;
|
|
}
|
|
} else {
|
|
return 0;
|
|
}
|
|
mysql_close ($conn);
|
|
} else {
|
|
return 0;
|
|
}
|
|
// return (list (dateFromSQLDateTime ($n_date), $n_user, StripSlashes($n_news)));
|
|
return 0;
|
|
}
|
|
|
|
function latestNews ($length)
|
|
{
|
|
$conn = @mysql_pconnect (sqlHost, sqlUser, sqlPass);
|
|
if ($conn) {
|
|
$query = 'SELECT n_date, n_user, n_news FROM news_main' .
|
|
" WHERE n_date > DATE_SUB(NOW(), INTERVAL $length)" .
|
|
' ORDER BY n_date DESC';
|
|
$result = @mysql_db_query (sqlDB, $query, $conn);
|
|
if ($result) {
|
|
$numRows = @mysql_num_rows ($result);
|
|
if ($numRows) {
|
|
for ($i = 0 ; $i < $numRows ; $i++) {
|
|
$news[$i] = mysql_fetch_array ($result);
|
|
echo newsEntry ($news[$i]);
|
|
}
|
|
} else {
|
|
newsItem ('now', 'Web Server', '<P>No current news!');
|
|
}
|
|
} else {
|
|
newsItem ('now', 'Web Server', '<P>No news in database!');
|
|
}
|
|
mysql_close ($conn);
|
|
} else {
|
|
include 'cache.php';
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function monthlyNews ($month, $year)
|
|
{
|
|
// Do sanity checking on dates
|
|
if (((!is_int ($year)) || $year < 2000)) {
|
|
$year = date ('Y', time ());
|
|
}
|
|
|
|
if ($month < 1 || $month > 12) {
|
|
$month = date ('m', time ());
|
|
}
|
|
$date = "$year-$month";
|
|
|
|
$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'" .
|
|
' ORDER BY n_date DESC';
|
|
$result = @mysql_db_query (sqlDB, $query, $conn);
|
|
if ($result) {
|
|
$numRows = @mysql_num_rows ($result);
|
|
if ($numRows) {
|
|
for ($i = 0 ; $i < $numRows ; $i++) {
|
|
$news[$i] = mysql_fetch_array ($result);
|
|
echo newsEntry ($news[$i]);
|
|
}
|
|
} else {
|
|
newsItem ('now', 'Web Server', '<P>No news for this month!');
|
|
}
|
|
} else {
|
|
newsItem ('now', 'Web Server', '<P>No news in database!');
|
|
}
|
|
mysql_close ($conn);
|
|
} else {
|
|
newsItem ('now', 'Web Server', '<STRONG>SQL error!</STRONG> Please contact the <A href="mailto:deek@quakeforge.net">Webmaster</A>.');
|
|
}
|
|
}
|
|
|
|
function searchNews ($string)
|
|
{
|
|
$search = AddSlashes ("%$string%");
|
|
$conn = @mysql_pconnect (sqlHost, sqlUser, sqlPass);
|
|
if ($conn) {
|
|
$query = 'SELECT n_date, n_user, n_news FROM news_main' .
|
|
" WHERE n_news LIKE '$search'" .
|
|
' ORDER BY n_date DESC';
|
|
$result = @mysql_db_query (sqlDB, $query, $conn);
|
|
if ($result) {
|
|
$numRows = @mysql_num_rows ($result);
|
|
if ($numRows) {
|
|
for ($i = 0 ; $i < $numRows ; $i++) {
|
|
$news[$i] = mysql_fetch_array ($result);
|
|
echo newsEntry ($news[$i]);
|
|
}
|
|
} else {
|
|
newsItem ('now', 'Web Server', "No news found matching '$string'");
|
|
}
|
|
} else {
|
|
newsItem ('now', 'Web Server', "No news found matching '$string'");
|
|
}
|
|
mysql_close ($conn);
|
|
} else {
|
|
newsItem ('now', 'Web Server', '<STRONG>SQL error!</STRONG> Please contact the <A href="mailto:deek@quakeforge.net">Webmaster</A>.');
|
|
}
|
|
}
|
|
|
|
?>
|