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; $languageIso = api_get_language_isocode(api_get_interface_language()); foreach ($statements as $statement) { $timestampStored = $statement->getCreated() ? api_convert_and_format_date($statement->getCreated()) : '-'; $actor = $statement->getActor()->getName(); $verb = XApiPlugin::extractVerbInLanguage($statement->getVerb()->getDisplay(), $languageIso); $activity = ''; $statementObject = $statement->getObject(); if ($statementObject instanceof Activity) { if (null !== $statementObject->getDefinition()) { $definition = $statementObject->getDefinition(); if (null !== $definition->getName()) { $activity = XApiPlugin::extractVerbInLanguage($definition->getName(), $languageIso).'
'; } } $activity .= Display::tag( 'small', $statementObject->getId()->getValue(), ['class' => 'text-muted'] ); } $table->setCellContents($i, 0, $timestampStored); $table->setCellContents($i, 1, $actor); $table->setCellContents($i, 2, $verb); $table->setCellContents($i, 3, $activity); $i++; } $table->display();