hotspot_savescore.inc.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php //$id:$
  2. /* For licensing terms, see /dokeos_license.txt */
  3. //error_log(__FILE__);
  4. /**
  5. * This file saves every click in the hotspot tool into track_e_hotspots
  6. * @package dokeos.exercise
  7. * @author Toon Keppens
  8. * @version $Id: admin.php 10680 2007-01-11 21:26:23Z pcool $
  9. */
  10. include('exercise.class.php');
  11. include('question.class.php');
  12. include('answer.class.php');
  13. include('../inc/global.inc.php');
  14. include('../inc/lib/database.lib.php');
  15. $courseCode = $_GET['coursecode'];
  16. $questionId = $_GET['questionId'];
  17. $coordinates = $_GET['coord'];
  18. $objExcercise = $_SESSION['objExercise'];
  19. $exerciseId = $objExcercise->selectId();
  20. // Save clicking order
  21. $answerOrderId = count($_SESSION['exerciseResult'][$questionId]['ids'])+1;
  22. if ($_GET['answerId'] == "0") // click is NOT on a hotspot
  23. {
  24. $hit = 0;
  25. $answerId = NULL;
  26. }
  27. else // user clicked ON a hotspot
  28. {
  29. $hit = 1;
  30. $answerId = api_substr($_GET['answerId'],22,2);
  31. // Save into session
  32. $_SESSION['exerciseResult'][$questionId][$answerId] = $hit;
  33. }
  34. //round-up the coordinates
  35. $coords = explode('/',$coordinates);
  36. $coordinates = '';
  37. foreach ($coords as $coord) {
  38. list($x,$y) = explode(';',$coord);
  39. $coordinates .= round($x).';'.round($y).'/';
  40. }
  41. $coordinates = substr($coordinates,0,-1);
  42. $TBL_TRACK_E_HOTSPOT = Database::get_statistic_table(STATISTIC_TRACK_E_HOTSPOTS);
  43. // Save into db
  44. $sql = "INSERT INTO $TBL_TRACK_E_HOTSPOT (user_id , course_id , quiz_id , question_id , answer_id , correct , coordinate ) VALUES (
  45. '".Database::escape_string($_user['user_id'])."',
  46. '".Database::escape_string($courseCode)."',
  47. '".Database::escape_string($exerciseId)."',
  48. '".Database::escape_string($questionId)."',
  49. '".Database::escape_string($answerId)."',
  50. '".Database::escape_string($hit)."',
  51. '".Database::escape_string($coordinates)."')";
  52. $result = Database::query($sql);
  53. // Save insert id into session if users changes answer.
  54. $insert_id = Database::insert_id();
  55. $_SESSION['exerciseResult'][$questionId]['ids'][$answerOrderId] = $insert_id;