Require AJAX functions to use ajax_ as name prefix
[infodrom.org/service.infodrom.org] / src / ajax.php
1 <?php
2 require_once('config.php');
3 require_once('future.php');
4
5 $data = array();
6
7 if (strlen($_POST['func'])) {
8   $backend = new AJAXBackend();
9
10   if (method_exists($backend, $_POST['func'])) {
11     $func = $_POST['func'];
12     json_return($backend->$func());
13   }
14
15   $path = substr($_SERVER['HTTP_REFERER'], strpos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME'])+strlen($_SERVER['SERVER_NAME'])+1);
16   $slash = strpos($path, '/', strpos($path, '/')+1);
17
18   if ($slash !== false) {
19     $path = getcwd() . '/' . substr($path, 0, $slash) . '/' . 'moduleajaxbackend.class.php';
20
21     if (file_exists($path)) {
22       require_once($path);
23       $backend = new ModuleAJAXBackend();
24
25       $method = 'ajax_' . $_POST['func'];
26       if (method_exists($backend, $method)) {
27         json_return($backend->$method());
28       }
29     }
30   }
31
32   error_log('Unknown function '.$_POST['func']);
33   json_return(array('status' => false,
34                     'error' => 'Unknown function '.urlencode($_POST['func']).'.'));
35 }
36
37 error_log('Unknown usage');
38 json_return(array('status' => false, 'error' => 'Unknown usage'));
39