refresh_options.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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.'/active_object.php');
  13. require_once(SLOODLE_LIBROOT.'/object_configs.php');
  14. require_once(SLOODLE_LIBROOT.'/user.php');
  15. require_once '../../../lib/json/json_encoding.inc.php';
  16. $primname = optional_param('primname', NULL, PARAM_RAW);
  17. $courseid = optional_param('courseid', NULL, PARAM_INT);
  18. // Would be better to pass the controller in here and check permissions for that.
  19. $course_context = get_context_instance( CONTEXT_COURSE, $courseid);
  20. $can_use_layouts = has_capability('mod/sloodle:uselayouts', $course_context);
  21. if (!$can_use_layouts) {
  22. //include('../../../login/shared_media/index.php');
  23. error_output( 'Not permitted' );
  24. }
  25. if (!$config = SloodleObjectConfig::ForObjectName($primname)) {
  26. error_output( 'Could not find object' );
  27. }
  28. $fields = array();
  29. $fields['sloodlemoduleid'] = $config->course_module_options( $courseid );
  30. foreach($config->field_sets as $fs => $flds) {
  31. foreach($flds as $n => $option_obj) {
  32. $fields[$n] = $option_obj->translatedOptions();
  33. }
  34. }
  35. $content = array(
  36. 'result' => 'refreshed',
  37. 'fields' => $fields
  38. );
  39. print json_encode($content);
  40. exit;
  41. function error_output($error) {
  42. $content = array(
  43. 'result' => 'failed',
  44. 'error' => $error,
  45. );
  46. print json_encode($content);
  47. exit;
  48. }
  49. ?>