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