lp.ajax.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Responses to AJAX calls
  5. */
  6. require_once '../global.inc.php';
  7. api_protect_course_script(true);
  8. $action = $_REQUEST['a'];
  9. $course_id = api_get_course_int_id();
  10. switch ($action) {
  11. case 'update_lp_item_order':
  12. if (api_is_allowed_to_edit(null, true)) {
  13. $new_order = $_POST['new_order'];
  14. $sections = explode('^', $new_order);
  15. $new_array = array();
  16. $i = 0;
  17. foreach($sections as $items) {
  18. list($id, $parent_id) = explode('|', $items);
  19. $new_array[$i]['id'] = intval($id);
  20. $new_array[$i]['parent_id'] = intval($parent_id);
  21. $i++;
  22. }
  23. $tbl_lp_item = Database :: get_course_table(TABLE_LP_ITEM);
  24. $counter = 1;
  25. for ($i=0; $i < count($new_array); $i++) {
  26. $params = array();
  27. $id = $new_array[$i]['id'];
  28. if (empty($id)) {
  29. continue;
  30. }
  31. $parent_id = isset($new_array[$i]['parent_id']) ? $new_array[$i]['parent_id'] : 0;
  32. $params['display_order'] = $counter;
  33. $params['previous_item_id'] = isset($new_array[$i-1]) && isset($new_array[$i-1]['id']) ? $new_array[$i-1]['id'] : 0;
  34. $params['next_item_id'] = isset($new_array[$i+1]) && isset($new_array[$i+1]['id']) ? $new_array[$i+1]['id'] : 0;
  35. $params['parent_item_id'] = $parent_id;
  36. Database::update($tbl_lp_item, $params, array('id = ? AND c_id = ? '=> array(intval($id), $course_id)));
  37. $counter ++;
  38. }
  39. Display::display_confirmation_message(get_lang('Saved'));
  40. }
  41. break;
  42. default:
  43. echo '';
  44. }
  45. exit;