summaryrefslogtreecommitdiff
path: root/modules/backend.module
blob: 9c3b2bdcc61608b6b5a323e6532526eb716e07c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?

$module = array("page"  => "backend_page",
                "cron"  => "backend_cron",
                "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_cron() {
  $result = db_query("SELECT * FROM channel");
  while ($channel = db_fetch_object($result)) {
    $backend = new Backend($channel->id);
  }
}

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();
  }
}

?>