- intermediate updates

3-00
Dries Buytaert 2000-12-23 15:20:10 +00:00
parent 0cadc4e683
commit 60e1a60dd3
11 changed files with 297 additions and 107 deletions

View File

@ -2,6 +2,7 @@
$module = array("page" => "backend_page",
"cron" => "backend_cron",
"block" => "backend_block",
"admin" => "backend_admin");
include "includes/theme.inc";
@ -50,6 +51,24 @@ function backend_cron() {
}
}
function backend_block() {
$result = db_query("SELECT * FROM channel");
while ($channel = db_fetch_object($result)) {
$backend = new Backend($channel->id);
$content = "";
for (reset($backend->headlines); $headline = current($backend->headlines); next($backend->headlines)) {
$content .= "<LI>$headline</LI>\n";
}
$blocks[$channel->id]["subject"] = $backend->site;
$blocks[$channel->id]["content"] = $content;
$blocks[$channel->id]["info"] = "$backend->site headlines";
$blocks[$channel->id]["link"] = $backend->url;
}
return $blocks;
}
function backend_admin_main() {
global $theme;
@ -57,7 +76,7 @@ function backend_admin_main() {
$result = db_query("SELECT * FROM channel ORDER BY id");
$output .= "<TABLE BORDER=\"1\" CELLSPADDING=\"2\" CELLSPACING=\"2\">\n";
$output .= " <TH>site</TH><TH>contact</TH><TH>last updated</TH><TH COLSPAN=\"2\">operations</TH></TR>\n";
$output .= " <TH>site</TH><TH>contact</TH><TH>last update</TH><TH COLSPAN=\"2\">operations</TH></TR>\n";
while ($channel = db_fetch_object($result)) {
// Load backend from database:
@ -66,7 +85,7 @@ function backend_admin_main() {
$output .= "<TR>\n";
$output .= " <TD><A HREF=\"$backend->url\">$backend->site</A></TD>\n";
$output .= " <TD><A HREF=\"mailto:$backend->contact\">$backend->contact</A></TD>\n";
$output .= " <TD ALIGN=\"center\">". round((time() - $backend->timestamp) / 60) ." min. ago</TD>\n";
$output .= " <TD ALIGN=\"center\">". format_interval(time() - $backend->timestamp) ." ago</TD>\n";
$output .= " <TD ALIGN=\"center\"><A HREF=\"admin.php?mod=backend&op=refresh&id=$backend->id\">refresh</A></TD>\n";
$output .= " <TD ALIGN=\"center\"><A HREF=\"admin.php?mod=backend&op=delete&id=$backend->id\">delete</A></TD>\n";
$output .= "</TR>\n";
@ -86,7 +105,7 @@ function backend_admin_main() {
$output .= " </P>\n";
$output .= " <P>\n";
$output .= " <B>Backend file:</B><BR>\n";
$output .= " <INPUT TYPE=\"text\" NAME=\"file\" SIZE=\"50\">\n";
$output .= " <INPUT TYPE=\"text\" NAME=\"backend\" SIZE=\"50\">\n";
$output .= " </P>\n";
$output .= " <P>\n";
$output .= " <B>Contact information:</B><BR>\n";
@ -99,7 +118,7 @@ function backend_admin_main() {
}
function backend_admin() {
global $op, $id, $site, $url, $file, $contact;
global $op, $id, $site, $url, $backend, $contact;
switch($op) {
case "refresh":
@ -114,7 +133,7 @@ function backend_admin() {
backend_admin_main();
break;
case "Add backend":
$backend = new backend($id, $site, $url, $file, $contact);
$backend = new backend($id, $site, $url, $backend, $contact);
$backend->add();
// fall through:
default:

53
modules/block.module Normal file
View File

@ -0,0 +1,53 @@
<?
$module = array("admin" => "block_admin");
function block_admin_save($edit) {
foreach ($edit as $key=>$value) {
db_query("UPDATE blocks SET status = '$value' WHERE name = '$key'");
}
}
function block_admin_display() {
global $repository;
$result = db_query("SELECT * FROM blocks");
// Generate output:
$output .= "<FORM ACTION=\"admin.php?mod=block\" METHOD=\"post\">\n";
$output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n";
$output .= " <TR><TH>block</TH><TH>module</TH><TH>status</TH></TR>\n";
while ($block = db_fetch_object($result)) {
$module = ($repository[$block->module]["admin"]) ? "<A HREF=\"admin.php?mod=$block->module\">$block->module</A>" : $block->module;
$status .= "<SELECT NAME=\"edit[$block->name]\">\n";
$status .= " <OPTION VALUE=\"1\"". (($block->status == 1) ? " SELECTED" : "") .">enabled</OPTION>\n";
$status .= " <OPTION VALUE=\"0\"". (($block->status == 0) ? " SELECTED" : "") .">disabled</OPTION>\n";
$status .= "</SELECT>\n";
$output .= " <TR><TD>". $block->name ."</TD><TD>$module</TD><TD>$status</TD></TR>\n";
unset($status);
}
$output .= "</TABLE>\n";
$output .= "<INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Save blocks\">\n";
$output .= "</FORM>\n";
print $output;
}
function block_admin() {
global $op, $edit;
switch ($op) {
case "Save blocks":
block_admin_save($edit);
break;
}
block_admin_display();
}
?>

View File

@ -0,0 +1,53 @@
<?
$module = array("admin" => "block_admin");
function block_admin_save($edit) {
foreach ($edit as $key=>$value) {
db_query("UPDATE blocks SET status = '$value' WHERE name = '$key'");
}
}
function block_admin_display() {
global $repository;
$result = db_query("SELECT * FROM blocks");
// Generate output:
$output .= "<FORM ACTION=\"admin.php?mod=block\" METHOD=\"post\">\n";
$output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n";
$output .= " <TR><TH>block</TH><TH>module</TH><TH>status</TH></TR>\n";
while ($block = db_fetch_object($result)) {
$module = ($repository[$block->module]["admin"]) ? "<A HREF=\"admin.php?mod=$block->module\">$block->module</A>" : $block->module;
$status .= "<SELECT NAME=\"edit[$block->name]\">\n";
$status .= " <OPTION VALUE=\"1\"". (($block->status == 1) ? " SELECTED" : "") .">enabled</OPTION>\n";
$status .= " <OPTION VALUE=\"0\"". (($block->status == 0) ? " SELECTED" : "") .">disabled</OPTION>\n";
$status .= "</SELECT>\n";
$output .= " <TR><TD>". $block->name ."</TD><TD>$module</TD><TD>$status</TD></TR>\n";
unset($status);
}
$output .= "</TABLE>\n";
$output .= "<INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Save blocks\">\n";
$output .= "</FORM>\n";
print $output;
}
function block_admin() {
global $op, $edit;
switch ($op) {
case "Save blocks":
block_admin_save($edit);
break;
}
block_admin_display();
}
?>

76
modules/calendar.class Normal file
View File

@ -0,0 +1,76 @@
<?
$module = array();
class Calendar {
var $date;
function calendar($date) {
$this->date = $date;
}
function display() {
// Extract information from the given date:
$month = date("n", $this->date);
$year = date("Y", $this->date);
$day = date("d", $this->date);
// Extract first day of the month:
$first = date("w", mktime(0, 0, 0, $month, 1, $year));
// Extract last day of the month:
$last = date("t", mktime(0, 0, 0, $month, 1, $year));
// Calculate previous and next months dates:
$prev = mktime(0, 0, 0, $month - 1, $day, $year);
$next = mktime(0, 0, 0, $month + 1, $day, $year);
// Generate calendar header:
$output .= "\n<!-- calendar -->\n";
$output .= "<TABLE WIDTH=\"100%\" BORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"1\">\n";
$output .= " <TR><TD ALIGN=\"center\" COLSPAN=\"7\"><SMALL><A HREF=\"index.php?date=$prev\">&lt;</A> &nbsp; ". date("F Y", $this->date) ." &nbsp; <A HREF=\"index.php?date=$next\">&gt;</A></SMALL></TD></TR>\n";
$output .= " <TR><TD ALIGN=\"center\"><SMALL>S</SMALL></TD><TD ALIGN=\"center\"><SMALL>M</SMALL></TD><TD ALIGN=\"center\"><SMALL>T</SMALL></TD><TD ALIGN=\"center\"><SMALL>W</SMALL></TD><TD ALIGN=\"center\"><SMALL>T</SMALL></TD><TD ALIGN=\"center\"><SMALL>F</SMALL></TD><TD ALIGN=\"center\"><SMALL>S</SMALL></TD></TR>\n";
// Initialize temporary variables:
$nday = 1;
$sday = $first;
// Loop through all the days of the month:
while ($nday <= $last) {
// Set up blank days for first week of the month:
if ($first) {
$output .= " <TR><TD COLSPAN=\"$first\">&nbsp</TD>\n";
$first = 0;
}
// Start every week on a new line:
if ($sday == 0) $output .= " <TR>\n";
// Print one cell:
$date = mktime(24, 0, 0, $month, $nday, $year);
if ($nday == $day) $output .= " <TD ALIGN=\"center\"><SMALL><B>$nday</B></SMALL></TD>\n";
else if ($date > time()) $output .= " <TD ALIGN=\"center\"><SMALL>$nday</SMALL></TD>\n";
else $output .= " <TD ALIGN=\"center\"><SMALL><A HREF=\"index.php?date=$date\" STYLE=\"text-decoration: none;\">$nday</A></SMALL></TD>\n";
// Start every week on a new line:
if ($sday == 6) $output .= " </TR>\n";
// Update temporary variables:
$sday++;
$sday = $sday % 7;
$nday++;
}
// Complete the calendar:
if ($sday) {
$end = 7 - $sday;
$output .= " <TD COLSPAN=\"$end\">&nbsp;</TD>\n </TR>\n";
}
$output .= "</TABLE>\n\n";
// Return calendar:
return $output;
}
}
?>

View File

@ -1,78 +1,19 @@
<?
$module = array();
$module = array("block" => "calendar_block");
class Calendar {
var $date;
function calendar_block() {
global $date;
function calendar($date) {
$this->date = $date;
}
include "modules/calendar.class";
function display() {
global $PHP_SELF;
$calendar = new Calendar($date);
// Extract information from the given date:
$month = date("n", $this->date);
$year = date("Y", $this->date);
$day = date("d", $this->date);
// Extract first day of the month:
$first = date("w", mktime(0, 0, 0, $month, 1, $year));
// Extract last day of the month:
$last = date("t", mktime(0, 0, 0, $month, 1, $year));
// Calculate previous and next months dates:
$prev = mktime(0, 0, 0, $month - 1, $day, $year);
$next = mktime(0, 0, 0, $month + 1, $day, $year);
// Generate calendar header:
$output .= "\n<!-- calendar -->\n";
$output .= "<TABLE WIDTH=\"100%\" BORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"1\">\n";
$output .= " <TR><TD ALIGN=\"center\" COLSPAN=\"7\"><SMALL><A HREF=\"$PHP_SELF?date=$prev\">&lt;</A> &nbsp; ". date("F Y", $this->date) ." &nbsp; <A HREF=\"$PHP_SELF?date=$next\">&gt;</A></SMALL></TD></TR>\n";
$output .= " <TR><TD ALIGN=\"center\"><SMALL>S</SMALL></TD><TD ALIGN=\"center\"><SMALL>M</SMALL></TD><TD ALIGN=\"center\"><SMALL>T</SMALL></TD><TD ALIGN=\"center\"><SMALL>W</SMALL></TD><TD ALIGN=\"center\"><SMALL>T</SMALL></TD><TD ALIGN=\"center\"><SMALL>F</SMALL></TD><TD ALIGN=\"center\"><SMALL>S</SMALL></TD></TR>\n";
$block[0]["subject"] = "Browse archives";
$block[0]["content"] = $calendar->display();
$block[0]["info"] = "calendar";
// Initialize temporary variables:
$nday = 1;
$sday = $first;
// Loop through all the days of the month:
while ($nday <= $last) {
// Set up blank days for first week of the month:
if ($first) {
$output .= " <TR><TD COLSPAN=\"$first\">&nbsp</TD>\n";
$first = 0;
}
// Start every week on a new line:
if ($sday == 0) $output .= " <TR>\n";
// Print one cell:
$date = mktime(24, 0, 0, $month, $nday, $year);
if ($nday == $day) $output .= " <TD ALIGN=\"center\"><SMALL><B>$nday</B></SMALL></TD>\n";
else if ($date > time()) $output .= " <TD ALIGN=\"center\"><SMALL>$nday</SMALL></TD>\n";
else $output .= " <TD ALIGN=\"center\"><SMALL><A HREF=\"$PHP_SELF?date=$date\" STYLE=\"text-decoration: none;\">$nday</A></SMALL></TD>\n";
// Start every week on a new line:
if ($sday == 6) $output .= " </TR>\n";
// Update temporary variables:
$sday++;
$sday = $sday % 7;
$nday++;
}
// Complete the calendar:
if ($sday) {
$end = 7 - $sday;
$output .= " <TD COLSPAN=\"$end\">&nbsp;</TD>\n </TR>\n";
}
$output .= "</TABLE>\n\n";
// Return calendar:
return $output;
}
return $block;
}
?>

View File

@ -4,14 +4,9 @@ $module = array("admin" => "cron_admin");
include_once "includes/function.inc";
function cron_reset($name) {
cron_delete($name);
}
function cron_save($edit) {
foreach ($edit as $key=>$value) {
db_query("UPDATE cron SET scheduled = '$value' WHERE module = '$key'");
db_query("UPDATE crons SET scheduled = '$value' WHERE module = '$key'");
}
}
@ -19,15 +14,15 @@ function cron_display() {
$intervals = array(300, 900, 1800, 3600, 7200, 10800, 21600, 43200, 86400, 172800, 259200, 604800, 1209600, 2419200);
// Perform query:
$result = db_query("SELECT * FROM cron");
$result = db_query("SELECT * FROM crons");
// Generate output:
$output .= "<FORM ACTION=\"admin.php?mod=cron\" METHOD=\"post\">\n";
$output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n";
$output .= " <TR><TH>module</TH><TH>period</TH><TH>last execution</TH><TH COLSPAN=\"2\">operations</TH></TR>\n";
$output .= " <TR><TH>module</TH><TH>period</TH><TH>last execution</TH><TH>operations</TH></TR>\n";
while ($cron = db_fetch_object($result)) {
foreach ($intervals as $value) $period .= "<OPTION VALUE=\"$value\"". (($cron->scheduled == $value) ? " SELECTED" : "") .">every ". format_interval($value) ."</OPTION>\n";
$output .= " <TR><TD>". check_output($cron->module) ."</TD><TD><SELECT NAME=\"edit[$cron->module]\">$period</SELECT></TD><TD>". format_interval(time() - $cron->timestamp) ." ago</TD><TD ALIGN=\"center\"><A HREF=\"cron.php\">execute</A></TD><TD><A HREF=\"admin.php?mod=cron&op=reset&name=$cron->module\">reset</A></TD></TR>\n";
$output .= " <TR><TD>". check_output($cron->module) ."</TD><TD><SELECT NAME=\"edit[$cron->module]\">$period</SELECT></TD><TD>". format_interval(time() - $cron->timestamp) ." ago</TD><TD ALIGN=\"center\"><A HREF=\"cron.php\">execute</A></TD></TR>\n";
unset($period);
}
$output .= "</TABLE>\n";
@ -40,9 +35,6 @@ function cron_admin() {
global $op, $edit, $name;
switch($op) {
case "reset":
cron_reset($name);
break;
case "Save crons":
cron_save($edit);
break;

View File

@ -113,5 +113,4 @@ function development_page() {
<?
}
?>
?>

View File

@ -1,6 +1,7 @@
<?
$module = array("page" => "diary_page",
"block" => "diary_block",
"admin" => "diary_admin");
@ -191,6 +192,25 @@ function diary_page() {
}
}
function diary_block() {
$result = db_query("SELECT u.userid, d.timestamp FROM diaries d LEFT JOIN users u ON d.author = u.id ORDER BY timestamp DESC LIMIT 20");
while ($diary = db_fetch_object($result)) {
if ($time != date("F jS", $diary->timestamp)) {
$content .= "<P><B>". date("l, M jS", $diary->timestamp) ."</B></P>\n";
$time = date("F jS", $diary->timestamp);
}
$content .= "<LI><A HREF=\"module.php?mod=diary&op=view&name=$diary->userid\">$diary->userid</A></LI>\n";
}
$block[0]["subject"] = "Recent diary entries";
$block[0]["content"] = $content;
$block[0]["info"] = "recent diary entries";
$block[0]["link"] = "module.php?mod=diary";
return $block;
}
function diary_admin_edit($id) {
$result = db_query("SELECT d.*, u.userid FROM diaries d LEFT JOIN users u ON d.author = u.id WHERE d.id = $id");

56
modules/module.module Normal file
View File

@ -0,0 +1,56 @@
<?
$module = array("admin" => "module_admin");
function module_admin_rehash() {
global $repository;
$result = db_query("SELECT * FROM modules");
while ($module = db_fetch_object($result)) {
module_rehash($module->name);
}
foreach ($repository as $name=>$module) {
module_rehash($name);
}
}
function module_admin_display() {
global $output;
function module_row($name, $module) {
global $output;
$view = ($module["page"]) ? "<A HREF=\"module.php?mod=$name\">view</A>" : "&nbsp;";
$admin = ($module["admin"]) ? "<A HREF=\"admin.php?mod=$name\">admin</A>" : "&nbsp;";
$output .= " <TR><TD>$name</TD><TD>$view</TD><TD>$admin</TD><TD><A HREF=\"admin.php?mod=module&op=rehash&name=$name\">rehash</A></TD></TR>\n";
}
$output .= "<FORM ACTION=\"admin.php?mod=module\" METHOD=\"post\">\n";
$output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n";
$output .= " <TR><TH>module</TH><TH COLSPAN=\"3\">operations</TH></TR>\n";
module_iterate("module_row");
$output .= "</TABLE>\n";
$output .= "<INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Rehash modules\">\n";
$output .= "</FORM>\n";
print $output;
}
function module_admin() {
global $op, $name;
switch ($op) {
case "Rehash modules":
module_admin_rehash();
break;
case "rehash":
module_rehash($name);
break;
}
module_admin_display();
}
?>

View File

@ -1,20 +0,0 @@
<?
$module = array("admin" => "modules_admin");
function modules_admin() {
$output .= "<P>Installed or available modules:</P>\n";
$output .= " <UL>\n";
$handle = opendir("modules");
while ($file = readdir($handle)) {
if ($name = substr($file, 0, strpos($file, ".module"))) $output .= "<LI><A HREF=\"module.php?mod=$name\">$name</A></LI>";
}
closedir($handle);
$output .= "</UL>\n";
print $output;
}
?>

View File

@ -75,3 +75,4 @@ function wishlist_page() {
}
?>