drupal/modules/backend.module

186 lines
5.3 KiB
Plaintext

<?
$module = array("page" => "backend_page",
"cron" => "backend_cron",
"block" => "backend_block",
"admin" => "backend_admin");
include "includes/common.inc";
include "modules/backend.class";
function backend_rdf() {
global $site_name, $site_url;
header("Content-Type: text/plain");
print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
print "<rdf:RDF\n";
print " xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n";
print " xmlns=\"http://my.netscape.com/rdf/simple/0.9/\">\n";
print "<channel>\n";
print " <title>$site_name</title>\n";
print " <link>$site_url</link>\n";
print " <description>$site_name</description>\n";
print "</channel>\n";
$result = db_query("SELECT * FROM stories WHERE status = 2 ORDER BY timestamp DESC LIMIT 10");
while ($story = db_fetch_object($result)) {
print "<item>\n";
print " <title>$story->subject</title>\n";
print " <link>". $site_url ."discussion.php?id=$story->id</link>\n";
print "</item>\n";
}
print "</rdf:RDF>\n";
}
function backend_blocks() {
global $theme;
// Get channel info:
$result = db_query("SELECT * FROM channel ORDER BY id");
$theme->header();
print "<TABLE BORDER=\"0\">\n";
while ($channel = db_fetch_object($result)) {
if ($state % 3 == 0) print " <TR>\n";
print " <TD ALIGN=\"center\" VALIGN=\"top\" WIDTH=\"33%\">\n";
// Load backend from database:
$backend = new backend($channel->id);
// Read headlines from backend class:
$content = "";
for (reset($backend->headlines); $headline = current($backend->headlines); next($backend->headlines)) {
$content .= "<LI>$headline</LI>\n";
}
// Print backend box to screen:
$theme->box($backend->site, "$content<P ALIGN=\"right\">[ <A HREF=\"$backend->url\">more</A> ]\n");
print " </TD>\n";
if ($state % 3 == 2) print " </TR>\n";
$state += 1;
}
print "</TABLE>\n";
$theme->footer();
}
function backend_page() {
global $type;
switch($type) {
case "rdf":
backend_rdf();
break;
default:
backend_blocks();
}
}
function backend_cron() {
$result = db_query("SELECT * FROM channel");
while ($channel = db_fetch_object($result)) {
$backend = new Backend($channel->id);
}
}
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;
// Get channel info:
$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 update</TH><TH COLSPAN=\"2\">operations</TH></TR>\n";
while ($channel = db_fetch_object($result)) {
// Load backend from database:
$backend = new backend($channel->id);
$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\">". 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";
}
$output .= "</TABLE>\n";
$output .= "<BR><BR>\n";
$output .= "<HR>\n";
$output .= " <FORM ACTION=\"admin.php?mod=backend\" METHOD=\"post\">\n";
$output .= " <P>\n";
$output .= " <B>Site name:</B><BR>\n";
$output .= " <INPUT TYPE=\"text\" NAME=\"site\" SIZE=\"50\">\n";
$output .= " </P>\n";
$output .= " <P>\n";
$output .= " <B>URL:</B><BR>\n";
$output .= " <INPUT TYPE=\"text\" NAME=\"url\" SIZE=\"50\">\n";
$output .= " </P>\n";
$output .= " <P>\n";
$output .= " <B>Backend file:</B><BR>\n";
$output .= " <INPUT TYPE=\"text\" NAME=\"backend\" SIZE=\"50\">\n";
$output .= " </P>\n";
$output .= " <P>\n";
$output .= " <B>Contact information:</B><BR>\n";
$output .= " <INPUT TYPE=\"text\" NAME=\"contact\" SIZE=\"50\">\n";
$output .= " </P>\n";
$output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Add backend\">\n";
$output .= " </FORM>\n";
print $output;
}
function backend_admin() {
global $op, $id, $site, $url, $backend, $contact;
switch($op) {
case "refresh":
$backend = new backend($id);
$backend->refresh();
backend_admin_main();
break;
case "delete":
$backend = new backend($id);
$backend->dump();
$backend->delete();
backend_admin_main();
break;
case "Add backend":
$backend = new backend($id, $site, $url, $backend, $contact);
$backend->add();
// fall through:
default:
backend_admin_main();
}
}
?>