]> andersk Git - sql-web.git/blame - lib/joe/site.lib.php
PHP: generic site class
[sql-web.git] / lib / joe / site.lib.php
CommitLineData
93b640b0
JP
1<?php
2/* Generic Site Classes
3 * 2007/04/09 Joe Presbrey <presbrey@mit.edu>
4 */
5
6class Site {
7 function Start() {}
8 function Finish() {}
9
10 function Call($MODULE, $METHOD) {
11 $nCalls = 0;
12 if (file_exists('site/'.$MODULE.'.php')) {
13 require_once strtolower('site/'.$MODULE.'.php');
14 if (class_exists($MODULE)) {
15 $object = new $MODULE;
16 $object->Start();
17 $handlers = $object->get_handlers($METHOD);
18 switch ($METHOD) {
19 case 'GET':
20 case 'get':
21 $argv = array_merge($_COOKIE, $_FILES, $_POST, $_GET, isset($_SESSION)?$_SESSION:array()); break;
22 case 'POST':
23 case 'post':
24 default:
25 $argv = array_merge($_COOKIE, $_FILES, $_GET, $_POST, isset($_SESSION)?$_SESSION:array()); break;
26 }
27 foreach($handlers as $handler) {
28 if (isset($argv[$handler]) &&
29 is_callable($object, $handler)) {
30 call_user_func_array(array($object, $handler), $argv);
31 $nCalls++;
32 }
33 }
34 if ($nCalls == 0 && is_callable($object, 'default')) {
35 call_user_func_array(array($object, $handler), $argv);
36 $nCalls++;
37 }
38 $object->Finish();
39 }
40 }
41 return $nCalls;
42 }
43}
44
45class Page {
46 function Start() {}
47 function Finish() {}
48
49 function get_handlers($method) {
50 $handlers = isset($this->handlers[$method]) ?
51 $this->handlers[$method] :
52 array('default');
53 return $handlers;
54 //return array_map(
55 // create_function('$a','return "_'.$method.'_".$a;'),
56 // $this->handlers[$method]);
57 }
58}
This page took 0.04744 seconds and 5 git commands to generate.