mirror of
https://git.code.sf.net/p/quake/website
synced 2025-02-27 22:20:49 +00:00
PHP 7 doesn't like the old short tags we were using (it's possible to re-enable them, but won't be for version 8, so we might as well switch now), and the old MySQL APIs are now gone entirely, replaced with something different. This should make everything work at least as well as it used to. Also, one file used to be checked in with CRLF line endings. ??
94 lines
2.7 KiB
PHP
94 lines
2.7 KiB
PHP
<?php // Preamble
|
|
$pageName = "State of the Code";
|
|
$focused = "none"; // Dock icon name to gets a border
|
|
$currPage = "sotc"; // Name of the page, for the menu
|
|
require "../parts/preamble.php"; // Load most of document
|
|
?>
|
|
<!--SEARCHME-->
|
|
<P>The State of the Code address is a not-frequently-enough updated article
|
|
written by one of the QuakeForge developers, primarily for other QuakeForge
|
|
developers and other people who consider themselves to be knee-deep in the
|
|
code, whether they happen to be writing it or just testing it. What you won't
|
|
find here is a lot of the fluff news that tells the casual onlooker that the
|
|
project is actually doing stuff without really telling you what the state of
|
|
things are.
|
|
|
|
<P>No attempt will be made to soften technical issues so anyone can understand
|
|
them. If you want to really know what's going on, you probably don't want
|
|
details left out because they might not make a whole lot of sense to a
|
|
non-coder. Feedback is always welcome. So are corrections if they're
|
|
necessary.
|
|
<?php // Display latest update
|
|
function sotcShowLatest ($year) {
|
|
$i = 0;
|
|
|
|
$dirHandle = @opendir ($year);
|
|
if ($dirHandle) {
|
|
while ($fileName = readdir ($dirHandle)) {
|
|
if ($fileName != '.' && $fileName != '..' && $fileName != 'CVS') {
|
|
$sotcList[$i++] = $fileName;
|
|
}
|
|
}
|
|
closedir ($dirHandle);
|
|
rsort ($sotcList);
|
|
include ($year . '/' . $sotcList[0]);
|
|
} else {
|
|
echo '<P>Sorry, there are no State of the Code announcements for this year yet.';
|
|
}
|
|
}
|
|
|
|
function sotcYears() {
|
|
$i = 0;
|
|
|
|
$dirHandle = opendir('./');
|
|
if ($dirHandle) {
|
|
while ($year = readdir($dirHandle)) {
|
|
if (is_dir ($year) && $year != '.' && $year != '..' && $year != 'CVS') {
|
|
$years[$i++] = $year;
|
|
}
|
|
}
|
|
closedir ($dirHandle);
|
|
rsort ($years);
|
|
return $years;
|
|
}
|
|
}
|
|
|
|
function sotcListFiles( $year ) {
|
|
$i = 0;
|
|
|
|
$dirHandle = opendir ($year);
|
|
if ($dirHandle) {
|
|
while ($fileName = readdir($dirHandle)) {
|
|
if ($fileName != '.' && $fileName != '..' && $fileName != 'CVS') {
|
|
$sotcList[$i++] = $fileName;
|
|
}
|
|
}
|
|
closedir ($dirHandle);
|
|
rsort ($sotcList);
|
|
if (count ($sotcList) > 0) {
|
|
tableBoxHeader('black', tableHeadColor);
|
|
tableTitle('SotC Archives for ' . $year, 3, tableHeadColor);
|
|
for ($i = 0; $i < count ($sotcList); $i++) {
|
|
$file = fopen ($year . '/' . $sotcList[$i], 'r');
|
|
$line = fgets ($file, 4096);
|
|
fclose($file);
|
|
$line = ereg_replace('<!--', '', ereg_replace('-->', '', $line));
|
|
echo '<TR><TD>' . $line . '</TD></TR>';
|
|
}
|
|
tableBoxFooter ();
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!$year) {
|
|
$year = date('Y', time ());
|
|
}
|
|
|
|
sotcShowLatest ($year);
|
|
echo '<P>';
|
|
sotcListFiles ($year);
|
|
?>
|
|
<!--NOSEARCH-->
|
|
<?php
|
|
require "../parts/postamble.php"; // Finish this sucker up
|
|
?>
|