refresh_rezzer.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /** Grab the Sloodle/Moodle configuration. */
  3. require_once('../../../init.php');
  4. /** Include the Sloodle PHP API. */
  5. /** Sloodle core library functionality */
  6. require_once(SLOODLE_DIRROOT.'/lib.php');
  7. /** General Sloodle functions. */
  8. require_once(SLOODLE_LIBROOT.'/io.php');
  9. /** Sloodle course data. */
  10. require_once(SLOODLE_LIBROOT.'/course.php');
  11. require_once(SLOODLE_LIBROOT.'/layout_profile.php');
  12. require_once(SLOODLE_LIBROOT.'/user.php');
  13. require_once '../../../lib/json/json_encoding.inc.php';
  14. ini_set('display_errors', 1);
  15. error_reporting(E_ALL);
  16. $content = new stdClass();
  17. $layoutid = optional_param('layoutid', 0, PARAM_INT);
  18. $rezzeruuid = optional_param('rezzeruuid', 0, PARAM_RAW);
  19. if (!$layoutid) {
  20. error_output( 'Layout ID missing');
  21. }
  22. $layout = new SloodleLayout();
  23. if (!$layout->load( $layoutid )) {
  24. error_output('Could not load layout');
  25. }
  26. if (!$courseid = $layout->course) {
  27. error_output('Could not get courseid from layout');
  28. }
  29. $controller_context = get_context_instance( CONTEXT_MODULE, $layout->controllerid);
  30. if (!has_capability('mod/sloodle:editlayouts', $controller_context)) {
  31. error_output( 'Access denied');
  32. }
  33. $rezzer = new SloodleActiveObject();
  34. if (!$rezzer->loadByUUID($rezzeruuid, $lazy = true)) {
  35. error_output( 'Rezzer not found');
  36. }
  37. $layoutentries_to_uuids = $rezzer->layoutentryids_to_uuids_of_currently_rezzed( $layoutid );
  38. if (!is_array($layoutentries_to_uuids)) {
  39. error_output('Fetching entries failed');
  40. }
  41. $content->result = 'refreshed';
  42. $content->layoutentries_to_uuids = $layoutentries_to_uuids;
  43. print json_encode($content);
  44. exit;
  45. function error_output($error) {
  46. $content = array(
  47. 'result' => 'failed',
  48. 'error' => $error,
  49. );
  50. print json_encode($content);
  51. exit;
  52. }
  53. ?>