Files
Chamilo/main/exercise/hotspot_savescore.inc.php
T
Xes 73154ae174
Behat tests 1.11.x 🐞 / PHP 7.4 Test on ubuntu-latest (push) Canceled after 0s
PHP-CS-Fixer / composer_install (7.4) (push) Canceled after 0s
Chamilo 1.11.40 (ZIP oficial v1.11.40)
Fuente: https://github.com/chamilo/chamilo-lms/releases/download/v1.11.40/chamilo-1.11.40.zip
sha256: 1cf4bf2cc7bae1ef1a1eff643235db1d552f78ddf4b6dd1e2d2dac9868679439
Snapshot independiente (rama huerfana); diffable vs 1.11.38. vendor incluido.
2026-08-06 17:59:45 +02:00

61 lines
1.7 KiB
PHP

<?php
/* For licensing terms, see /license.txt */
use ChamiloSession as Session;
/**
* This file saves every click in the hotspot tool into track_e_hotspots.
*
* @package chamilo.exercise
*
* @author Toon Keppens
*
* @version $Id: admin.php 10680 2007-01-11 21:26:23Z pcool $
*/
require_once __DIR__.'/../inc/global.inc.php';
api_protect_course_script(true);
$courseCode = $_GET['coursecode'];
$questionId = $_GET['questionId'];
$coordinates = $_GET['coord'];
$objExercise = Session::read('objExercise');
$exerciseId = $objExercise->selectId();
// Save clicking order
$answerOrderId = count($_SESSION['exerciseResult'][$questionId]['ids']) + 1;
if ($_GET['answerId'] == "0") {
// click is NOT on a hotspot
$hit = 0;
$answerId = null;
} else {
// user clicked ON a hotspot
$hit = 1;
$answerId = api_substr($_GET['answerId'], 22, 2);
// Save into session
$_SESSION['exerciseResult'][$questionId][$answerId] = $hit;
}
//round-up the coordinates
$coords = explode('/', $coordinates);
$coordinates = '';
foreach ($coords as $coord) {
list($x, $y) = explode(';', $coord);
$coordinates .= round($x).';'.round($y).'/';
}
$coordinates = substr($coordinates, 0, -1);
$TBL_TRACK_E_HOTSPOT = Database::get_main_table(TABLE_STATISTIC_TRACK_E_HOTSPOT);
// Save into db
$params = [
'user_id' => api_get_user_id(),
'course_id' => $courseCode,
'quiz_id' => $exerciseId,
'question_id' => $questionId,
'answer_id' => $answerId,
'correct' => $hit,
'coordinate' => $coordinates,
];
// Save insert id into session if users changes answer.
$insert_id = Database::insert($TBL_TRACK_E_HOTSPOT, $params);
$_SESSION['exerciseResult'][$questionId]['ids'][$answerOrderId] = $insert_id;