Actualización
This commit is contained in:
49
plugin/xapi/src/ToolExperience/Activity/BaseActivity.php
Normal file
49
plugin/xapi/src/ToolExperience/Activity/BaseActivity.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
|
||||
/**
|
||||
* Class BaseActivity.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
abstract class BaseActivity
|
||||
{
|
||||
/**
|
||||
* @var \Chamilo\UserBundle\Entity\User
|
||||
*/
|
||||
protected $user;
|
||||
/**
|
||||
* @var \Chamilo\CoreBundle\Entity\Course|null
|
||||
*/
|
||||
protected $course;
|
||||
/**
|
||||
* @var \Chamilo\CoreBundle\Entity\Session|null
|
||||
*/
|
||||
protected $session;
|
||||
|
||||
abstract public function generate(): Activity;
|
||||
|
||||
protected function generateIri(string $path, string $resource, array $params = []): string
|
||||
{
|
||||
$cidReq = api_get_cidreq();
|
||||
|
||||
$url = api_get_path($path).$resource;
|
||||
|
||||
if ($params) {
|
||||
$url .= '?'.http_build_query($params).'&';
|
||||
} elseif (empty($params) && $cidReq) {
|
||||
$url .= '?';
|
||||
}
|
||||
|
||||
if ($cidReq) {
|
||||
$url .= $cidReq;
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
40
plugin/xapi/src/ToolExperience/Activity/Course.php
Normal file
40
plugin/xapi/src/ToolExperience/Activity/Course.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
/**
|
||||
* Class Course.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class Course extends BaseActivity
|
||||
{
|
||||
public function generate(): Activity
|
||||
{
|
||||
$course = api_get_course_entity();
|
||||
$session = api_get_session_entity();
|
||||
|
||||
$languageIso = api_get_language_isocode($course->getCourseLanguage());
|
||||
|
||||
$courseUrl = api_get_course_url(
|
||||
$course->getCode(),
|
||||
$session ? $session->getId() : 0
|
||||
);
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($courseUrl),
|
||||
new Definition(
|
||||
LanguageMap::create([$languageIso => $course->getTitle()]),
|
||||
null,
|
||||
IRI::fromString('http://id.tincanapi.com/activitytype/lms/course')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
53
plugin/xapi/src/ToolExperience/Activity/LearningPath.php
Normal file
53
plugin/xapi/src/ToolExperience/Activity/LearningPath.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Chamilo\CourseBundle\Entity\CLp;
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
/**
|
||||
* Class LearningPath.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class LearningPath extends BaseActivity
|
||||
{
|
||||
/**
|
||||
* @var \Chamilo\CourseBundle\Entity\CLp
|
||||
*/
|
||||
private $lp;
|
||||
|
||||
public function __construct(CLp $lp)
|
||||
{
|
||||
$this->lp = $lp;
|
||||
}
|
||||
|
||||
public function generate(): Activity
|
||||
{
|
||||
$lanIso = api_get_language_isocode();
|
||||
|
||||
$iri = $this->generateIri(
|
||||
WEB_CODE_PATH,
|
||||
'lp/lp_controller.php',
|
||||
[
|
||||
'action' => 'view',
|
||||
'lp_id' => $this->lp->getId(),
|
||||
'isStudentView' => 'true',
|
||||
]
|
||||
);
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($iri),
|
||||
new Definition(
|
||||
LanguageMap::create([$lanIso => $this->lp->getName()]),
|
||||
null,
|
||||
IRI::fromString('http://adlnet.gov/expapi/activities/lesson')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
54
plugin/xapi/src/ToolExperience/Activity/LearningPathItem.php
Normal file
54
plugin/xapi/src/ToolExperience/Activity/LearningPathItem.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Chamilo\CourseBundle\Entity\CLpItem;
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
/**
|
||||
* Class LearningPathItem.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class LearningPathItem extends BaseActivity
|
||||
{
|
||||
/**
|
||||
* @var \Chamilo\CourseBundle\Entity\CLpItem
|
||||
*/
|
||||
private $lpItem;
|
||||
|
||||
public function __construct(CLpItem $lpItem)
|
||||
{
|
||||
$this->lpItem = $lpItem;
|
||||
}
|
||||
|
||||
public function generate(): Activity
|
||||
{
|
||||
$langIso = api_get_language_isocode();
|
||||
|
||||
$iri = $this->generateIri(
|
||||
WEB_CODE_PATH,
|
||||
'lp/lp_controller.php',
|
||||
[
|
||||
'action' => 'view',
|
||||
'lp_id' => $this->lpItem->getLpId(),
|
||||
'isStudentView' => 'true',
|
||||
'lp_item' => $this->lpItem->getId(),
|
||||
]
|
||||
);
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($iri),
|
||||
new Definition(
|
||||
LanguageMap::create([$langIso => $this->lpItem->getTitle()]),
|
||||
null,
|
||||
IRI::fromString('http://id.tincanapi.com/activitytype/resource')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
50
plugin/xapi/src/ToolExperience/Activity/Portfolio.php
Normal file
50
plugin/xapi/src/ToolExperience/Activity/Portfolio.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Chamilo\UserBundle\Entity\User;
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
class Portfolio extends BaseActivity
|
||||
{
|
||||
/** @var User */
|
||||
private $owner;
|
||||
|
||||
public function __construct(User $owner)
|
||||
{
|
||||
$this->owner = $owner;
|
||||
}
|
||||
|
||||
public function generate(): Activity
|
||||
{
|
||||
$langIso = api_get_language_isocode();
|
||||
|
||||
$iri = $this->generateIri(
|
||||
WEB_CODE_PATH,
|
||||
'portfolio/index.php',
|
||||
[
|
||||
'action' => 'list',
|
||||
'user' => $this->owner->getId(),
|
||||
]
|
||||
);
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($iri),
|
||||
new Definition(
|
||||
LanguageMap::create(
|
||||
[
|
||||
$langIso => sprintf(
|
||||
get_lang('XUserPortfolioItems'),
|
||||
$this->owner->getCompleteNameWithUsername()
|
||||
),
|
||||
]
|
||||
),
|
||||
null,
|
||||
IRI::fromString('http://id.tincanapi.com/activitytype/collection-simple')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Chamilo\CoreBundle\Entity\PortfolioCategory as PortfolioCategoryEntity;
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
/**
|
||||
* Class PortfolioCategory.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class PortfolioCategory extends BaseActivity
|
||||
{
|
||||
/**
|
||||
* @var \Chamilo\CoreBundle\Entity\PortfolioCategory
|
||||
*/
|
||||
private $category;
|
||||
|
||||
public function __construct(PortfolioCategoryEntity $category)
|
||||
{
|
||||
$this->category = $category;
|
||||
}
|
||||
|
||||
public function generate(): Activity
|
||||
{
|
||||
$iri = $this->generateIri(
|
||||
WEB_PATH,
|
||||
'xapi/portfolio/',
|
||||
[
|
||||
'user' => $this->category->getUser()->getId(),
|
||||
'category' => $this->category->getId(),
|
||||
]
|
||||
);
|
||||
|
||||
$langIso = api_get_language_isocode();
|
||||
|
||||
$categoryDescription = $this->category->getDescription();
|
||||
|
||||
$definitionDescription = $categoryDescription
|
||||
? LanguageMap::create([$langIso => $categoryDescription])
|
||||
: null;
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($iri),
|
||||
new Definition(
|
||||
LanguageMap::create([$langIso => $this->category->getTitle()]),
|
||||
$definitionDescription,
|
||||
IRI::fromString('http://id.tincanapi.com/activitytype/category')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
50
plugin/xapi/src/ToolExperience/Activity/PortfolioComment.php
Normal file
50
plugin/xapi/src/ToolExperience/Activity/PortfolioComment.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Chamilo\CoreBundle\Entity\PortfolioComment as PortfolioCommentEntity;
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
|
||||
/**
|
||||
* Class PortfolioComment.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class PortfolioComment extends BaseActivity
|
||||
{
|
||||
/**
|
||||
* @var \Chamilo\CoreBundle\Entity\PortfolioComment
|
||||
*/
|
||||
private $comment;
|
||||
|
||||
public function __construct(PortfolioCommentEntity $comment)
|
||||
{
|
||||
$this->comment = $comment;
|
||||
}
|
||||
|
||||
public function generate(): Activity
|
||||
{
|
||||
$iri = $this->generateIri(
|
||||
WEB_CODE_PATH,
|
||||
'portfolio/index.php',
|
||||
[
|
||||
'action' => 'view',
|
||||
'id' => $this->comment->getItem()->getId(),
|
||||
'comment' => $this->comment->getId(),
|
||||
]
|
||||
);
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($iri),
|
||||
new Definition(
|
||||
null,
|
||||
null,
|
||||
IRI::fromString('http://activitystrea.ms/schema/1.0/comment')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
49
plugin/xapi/src/ToolExperience/Activity/PortfolioItem.php
Normal file
49
plugin/xapi/src/ToolExperience/Activity/PortfolioItem.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Chamilo\CoreBundle\Entity\Portfolio;
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
/**
|
||||
* Class PortfolioItem.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class PortfolioItem extends BaseActivity
|
||||
{
|
||||
/**
|
||||
* @var \Chamilo\CoreBundle\Entity\Portfolio
|
||||
*/
|
||||
private $item;
|
||||
|
||||
public function __construct(Portfolio $item)
|
||||
{
|
||||
$this->item = $item;
|
||||
}
|
||||
|
||||
public function generate(): Activity
|
||||
{
|
||||
$langIso = api_get_language_isocode();
|
||||
|
||||
$iri = $this->generateIri(
|
||||
WEB_CODE_PATH,
|
||||
'portfolio/index.php',
|
||||
['action' => 'view', 'id' => $this->item->getId()]
|
||||
);
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($iri),
|
||||
new Definition(
|
||||
LanguageMap::create([$langIso => $this->item->getTitle()]),
|
||||
null,
|
||||
IRI::fromString('http://activitystrea.ms/schema/1.0/article')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
57
plugin/xapi/src/ToolExperience/Activity/Quiz.php
Normal file
57
plugin/xapi/src/ToolExperience/Activity/Quiz.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Chamilo\CourseBundle\Entity\CQuiz;
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
/**
|
||||
* Class Quiz.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class Quiz extends BaseActivity
|
||||
{
|
||||
/**
|
||||
* @var \Chamilo\CourseBundle\Entity\CQuiz
|
||||
*/
|
||||
private $quiz;
|
||||
|
||||
public function __construct(CQuiz $quiz)
|
||||
{
|
||||
$this->quiz = $quiz;
|
||||
}
|
||||
|
||||
public function generate(): Activity
|
||||
{
|
||||
$langIso = api_get_language_isocode();
|
||||
|
||||
$iri = $this->generateIri(
|
||||
WEB_CODE_PATH,
|
||||
'exercise/overview.php',
|
||||
['exerciseId' => $this->quiz->getId()]
|
||||
);
|
||||
|
||||
$definitionDescription = null;
|
||||
|
||||
if ($this->quiz->getDescription()) {
|
||||
$definitionDescription = LanguageMap::create(
|
||||
[$langIso => $this->quiz->getDescription()]
|
||||
);
|
||||
}
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($iri),
|
||||
new Definition(
|
||||
LanguageMap::create([$langIso => $this->quiz->getTitle()]),
|
||||
$definitionDescription,
|
||||
IRI::fromString('http://adlnet.gov/expapi/activities/assessment')
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
170
plugin/xapi/src/ToolExperience/Activity/QuizQuestion.php
Normal file
170
plugin/xapi/src/ToolExperience/Activity/QuizQuestion.php
Normal file
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Answer;
|
||||
use Chamilo\CourseBundle\Entity\CQuizQuestion;
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Interaction\ChoiceInteractionDefinition;
|
||||
use Xabbuh\XApi\Model\Interaction\InteractionComponent;
|
||||
use Xabbuh\XApi\Model\Interaction\LongFillInInteractionDefinition;
|
||||
use Xabbuh\XApi\Model\Interaction\MatchingInteractionDefinition;
|
||||
use Xabbuh\XApi\Model\Interaction\OtherInteractionDefinition;
|
||||
use Xabbuh\XApi\Model\Interaction\SequencingInteractionDefinition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
/**
|
||||
* Class QuizQuestion.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class QuizQuestion extends BaseActivity
|
||||
{
|
||||
private $question;
|
||||
|
||||
public function __construct(CQuizQuestion $question)
|
||||
{
|
||||
$this->question = $question;
|
||||
}
|
||||
|
||||
public function generate(): Activity
|
||||
{
|
||||
$iri = $this->generateIri(
|
||||
WEB_CODE_PATH,
|
||||
'xapi/quiz/',
|
||||
['question' => $this->question->getId()]
|
||||
);
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString($iri),
|
||||
$this->generateActivityDefinitionFromQuestionType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Xabbuh\XApi\Model\Interaction\InteractionDefinition
|
||||
*/
|
||||
private function generateActivityDefinitionFromQuestionType()
|
||||
{
|
||||
$languageIso = api_get_language_isocode();
|
||||
$courseId = api_get_course_int_id();
|
||||
|
||||
$questionTitle = strip_tags($this->question->getQuestion());
|
||||
$questionTitle = trim($questionTitle);
|
||||
$questionDescription = strip_tags($this->question->getDescription());
|
||||
$questionDescription = trim($questionDescription);
|
||||
|
||||
$titleMap = LanguageMap::create([$languageIso => $questionTitle]);
|
||||
$descriptionMap = $questionDescription ? LanguageMap::create([$languageIso => $questionDescription]) : null;
|
||||
|
||||
$objAnswer = new Answer($this->question->getId(), $courseId);
|
||||
$objAnswer->read();
|
||||
|
||||
$type = IRI::fromString('http://adlnet.gov/expapi/activities/question');
|
||||
|
||||
switch ($this->question->getType()) {
|
||||
case MULTIPLE_ANSWER:
|
||||
case UNIQUE_ANSWER:
|
||||
case UNIQUE_ANSWER_IMAGE:
|
||||
case READING_COMPREHENSION:
|
||||
$choices = [];
|
||||
$correctResponsesPattern = [];
|
||||
|
||||
for ($i = 1; $i <= $objAnswer->nbrAnswers; $i++) {
|
||||
$choices[] = new InteractionComponent(
|
||||
$objAnswer->iid[$i],
|
||||
LanguageMap::create([$languageIso => $objAnswer->selectAnswer($i)])
|
||||
);
|
||||
|
||||
if ($objAnswer->isCorrect($i)) {
|
||||
$correctResponsesPattern[] = $objAnswer->iid[$i];
|
||||
}
|
||||
}
|
||||
|
||||
return new ChoiceInteractionDefinition(
|
||||
$titleMap,
|
||||
$descriptionMap,
|
||||
$type,
|
||||
null,
|
||||
null,
|
||||
[implode('[,]', $correctResponsesPattern)],
|
||||
$choices
|
||||
);
|
||||
case DRAGGABLE:
|
||||
$choices = [];
|
||||
|
||||
for ($i = 1; $i <= $objAnswer->nbrAnswers; $i++) {
|
||||
if ((int) $objAnswer->correct[$i] > 0) {
|
||||
$choices[] = new InteractionComponent(
|
||||
$objAnswer->correct[$i],
|
||||
LanguageMap::create([$languageIso => $objAnswer->answer[$i]])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$correctResponsesPattern = array_slice($objAnswer->autoId, 0, $objAnswer->nbrAnswers / 2);
|
||||
|
||||
return new SequencingInteractionDefinition(
|
||||
$titleMap,
|
||||
$descriptionMap,
|
||||
$type,
|
||||
null,
|
||||
null,
|
||||
[implode('[,]', $correctResponsesPattern)],
|
||||
$choices
|
||||
);
|
||||
case MATCHING:
|
||||
case MATCHING_DRAGGABLE:
|
||||
/** @var array|InteractionComponent[] $source */
|
||||
$source = [];
|
||||
/** @var array|InteractionComponent[] $source */
|
||||
$target = [];
|
||||
$correctResponsesPattern = [];
|
||||
|
||||
for ($i = 1; $i <= $objAnswer->nbrAnswers; $i++) {
|
||||
$interactionComponent = new InteractionComponent(
|
||||
$objAnswer->selectAutoId($i),
|
||||
LanguageMap::create([$languageIso => $objAnswer->selectAnswer($i)])
|
||||
);
|
||||
|
||||
if ((int) $objAnswer->correct[$i] > 0) {
|
||||
$source[] = $interactionComponent;
|
||||
|
||||
$correctResponsesPattern[] = $objAnswer->selectAutoId($i).'[.]'.$objAnswer->correct[$i];
|
||||
} else {
|
||||
$target[] = $interactionComponent;
|
||||
}
|
||||
}
|
||||
|
||||
return new MatchingInteractionDefinition(
|
||||
$titleMap,
|
||||
$descriptionMap,
|
||||
$type,
|
||||
null,
|
||||
null,
|
||||
[implode('[,]', $correctResponsesPattern)],
|
||||
$source,
|
||||
$target
|
||||
);
|
||||
case FREE_ANSWER:
|
||||
return new LongFillInInteractionDefinition($titleMap, $descriptionMap, $type);
|
||||
case FILL_IN_BLANKS:
|
||||
case HOT_SPOT:
|
||||
case HOT_SPOT_DELINEATION:
|
||||
case MULTIPLE_ANSWER_COMBINATION:
|
||||
case UNIQUE_ANSWER_NO_OPTION:
|
||||
case MULTIPLE_ANSWER_TRUE_FALSE:
|
||||
case MULTIPLE_ANSWER_TRUE_FALSE_DEGREE_CERTAINTY:
|
||||
case MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE:
|
||||
case GLOBAL_MULTIPLE_ANSWER:
|
||||
case CALCULATED_ANSWER:
|
||||
case ANNOTATION:
|
||||
case ORAL_EXPRESSION:
|
||||
default:
|
||||
return new OtherInteractionDefinition($titleMap, $descriptionMap, $type);
|
||||
}
|
||||
}
|
||||
}
|
||||
33
plugin/xapi/src/ToolExperience/Activity/Site.php
Normal file
33
plugin/xapi/src/ToolExperience/Activity/Site.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
namespace Chamilo\PluginBundle\XApi\ToolExperience\Activity;
|
||||
|
||||
use Xabbuh\XApi\Model\Activity;
|
||||
use Xabbuh\XApi\Model\Definition;
|
||||
use Xabbuh\XApi\Model\IRI;
|
||||
use Xabbuh\XApi\Model\LanguageMap;
|
||||
|
||||
/**
|
||||
* Class Site.
|
||||
*
|
||||
* @package Chamilo\PluginBundle\XApi\ToolExperience\Activity
|
||||
*/
|
||||
class Site extends BaseActivity
|
||||
{
|
||||
public function generate(): Activity
|
||||
{
|
||||
$platformLanguageIso = api_get_language_isocode(
|
||||
api_get_setting('platformLanguage')
|
||||
);
|
||||
$platform = api_get_setting('Institution').' - '.api_get_setting('siteName');
|
||||
|
||||
return new Activity(
|
||||
IRI::fromString('http://id.tincanapi.com/activitytype/lms'),
|
||||
new Definition(
|
||||
LanguageMap::create([$platformLanguageIso => $platform])
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user