diff options
Diffstat (limited to 'modules/backend.module')
-rw-r--r-- | modules/backend.module | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/modules/backend.module b/modules/backend.module new file mode 100644 index 000000000..003619e58 --- /dev/null +++ b/modules/backend.module @@ -0,0 +1,118 @@ +<? + +$module = array("page" => "backend_page", + "admin" => "backend_admin"); + +include "includes/theme.inc"; +include "modules/backend.class"; + +function backend_page() { + 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_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 updated</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\">". round((time() - $backend->timestamp) / 60) ." min. 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=\"file\" 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, $file, $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, $file, $contact); + $backend->add(); + // fall through: + default: + backend_admin_main(); + } +} + +?> |