parent
9f74129d8b
commit
462c472e01
@ -0,0 +1,107 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
use Chamilo\PluginBundle\Entity\XApi\ToolLaunch; |
||||
use Symfony\Component\HttpFoundation\Request as HttpRequest; |
||||
use Xabbuh\XApi\Common\Exception\XApiException; |
||||
use Xabbuh\XApi\Model\Activity; |
||||
use Xabbuh\XApi\Model\IRI; |
||||
use Xabbuh\XApi\Model\StatementsFilter; |
||||
|
||||
require_once __DIR__.'/../../../main/inc/global.inc.php'; |
||||
|
||||
$request = HttpRequest::createFromGlobals(); |
||||
|
||||
$course = api_get_course_entity(); |
||||
$session = api_get_session_entity(); |
||||
|
||||
if (!$request->isXmlHttpRequest() |
||||
|| !api_is_allowed_to_edit() |
||||
|| !$course |
||||
) { |
||||
echo Display::return_message(get_lang('NotAllowed'), 'error'); |
||||
exit; |
||||
} |
||||
|
||||
$plugin = XApiPlugin::create(); |
||||
$em = Database::getManager(); |
||||
|
||||
$toolLaunch = $em->find( |
||||
ToolLaunch::class, |
||||
$request->request->getInt('tool') |
||||
); |
||||
|
||||
$attempt = $request->request->get('attempt'); |
||||
|
||||
if (!$toolLaunch || !$attempt) { |
||||
echo Display::return_message(get_lang('NoResults'), 'error'); |
||||
exit; |
||||
} |
||||
|
||||
$cidReq = api_get_cidreq(); |
||||
|
||||
$xapiStatementClient = $plugin->getXApiStatementClient(); |
||||
|
||||
$activity = new Activity( |
||||
IRI::fromString($toolLaunch->getActivityId()) |
||||
); |
||||
|
||||
$filter = new StatementsFilter(); |
||||
$filter |
||||
->byRegistration($attempt); |
||||
|
||||
try { |
||||
$result = $xapiStatementClient->getStatements($filter); |
||||
} catch (XApiException $xApiException) { |
||||
echo Display::return_message($xApiException->getMessage(), 'error'); |
||||
exit; |
||||
} catch (Exception $exception) { |
||||
echo Display::return_message($exception->getMessage(), 'error'); |
||||
exit; |
||||
} |
||||
|
||||
$statements = $result->getStatements(); |
||||
|
||||
if (count($statements) <= 0) { |
||||
echo Display::return_message(get_lang('NoResults'), 'warning'); |
||||
exit; |
||||
} |
||||
|
||||
$table = new HTML_Table(['class' => 'table table-condensed table-bordered table-striped table-hover']); |
||||
$table->setHeaderContents(0, 0, get_lang('CreatedAt')); |
||||
$table->setHeaderContents(0, 1, $plugin->get_lang('Actor')); |
||||
$table->setHeaderContents(0, 2, $plugin->get_lang('Verb')); |
||||
$table->setHeaderContents(0, 3, $plugin->get_lang('ActivityId')); |
||||
|
||||
$i = 1; |
||||
|
||||
foreach ($statements as $statement) { |
||||
$timestampStored = $statement->getCreated() ? api_convert_and_format_date($statement->getCreated()) : '-'; |
||||
$actor = $statement->getActor()->getName(); |
||||
$verb = XApiPlugin::extractVerbInLanguage($statement->getVerb()->getDisplay(), 'es'); |
||||
$activity = ''; |
||||
|
||||
$statementObject = $statement->getObject(); |
||||
|
||||
if ($statementObject instanceof Activity) { |
||||
if (null !== $statementObject->getDefinition()) { |
||||
$definition = $statementObject->getDefinition(); |
||||
|
||||
if (null !== $definition->getName()) { |
||||
$activity = XApiPlugin::extractVerbInLanguage($definition->getName(), 'es') |
||||
.'<br>'; |
||||
} |
||||
} |
||||
|
||||
$activity .= "<small>{$statementObject->getId()->getValue()}</small>"; |
||||
} |
||||
|
||||
$table->setCellContents($i, 0, $timestampStored); |
||||
$table->setCellContents($i, 1, $actor); |
||||
$table->setCellContents($i, 2, $verb); |
||||
$table->setCellContents($i, 3, $activity); |
||||
|
||||
$i++; |
||||
} |
||||
|
||||
$table->display(); |
Loading…
Reference in new issue