delete_layout.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. $layoutid = optional_param('layoutid', '', PARAM_INT);
  15. if (!$layoutid) {
  16. error_output( 'Layout ID missing');
  17. }
  18. $layout = new SloodleLayout();
  19. if (!$layout->load($layoutid)) {
  20. error_output( 'Could not load layout to delete it.');
  21. }
  22. $controller_context = get_context_instance( CONTEXT_MODULE, $layout->controllerid);
  23. if (!has_capability('mod/sloodle:editlayouts', $controller_context)) {
  24. error_output( 'Access denied');
  25. }
  26. if (!$deleted = $layout->delete()) {
  27. error_output( 'Layout deletion failed');
  28. }
  29. $content = array(
  30. 'result' => 'deleted',
  31. 'layoutid' => $layoutid,
  32. );
  33. print json_encode($content);
  34. exit;
  35. function error_output($error) {
  36. $content = array(
  37. 'result' => 'failed',
  38. 'error' => $error,
  39. );
  40. print json_encode($content);
  41. exit;
  42. }
  43. ?>