ajax_controller.class.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. /**
  3. * Ajax controller. Dispatch request and perform required action.
  4. *
  5. *
  6. * Usage:
  7. *
  8. * $controller = AjaxController::instance();
  9. * $controller->run();
  10. *
  11. * @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Genevas
  12. * @license /license.txt
  13. */
  14. class AjaxController extends \Controller
  15. {
  16. function forbidden()
  17. {
  18. $this->response(false, get_lang('YouAreNotAuthorized'));
  19. }
  20. public function unknown()
  21. {
  22. $this->response(false, get_lang('UnknownAction'));
  23. }
  24. /**
  25. * Action exists but implementation is missing.
  26. */
  27. public function missing()
  28. {
  29. $this->response(false, get_lang('NoImplementation'));
  30. }
  31. /**
  32. * Display a standard json responce.
  33. *
  34. * @param bool $success
  35. * @param string $message
  36. * @param object $data
  37. */
  38. public function response($success = false, $message = '', $data = null)
  39. {
  40. $message = trim($message);
  41. $response = (object) array();
  42. $response->success = $success;
  43. if ($message) {
  44. $response->message = Display::return_message($message, $success ? 'normal' : 'error');
  45. } else {
  46. $response->message = '';
  47. }
  48. $response->data = $data;
  49. $this->render_json($response);
  50. }
  51. }