Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chamilo-lms/plugin/ims_lti/ImsLtiTool.php

181 lines
3.7 KiB

<?php
/* For license terms, see /license.txt */
/**
* ImsLtiTool
*
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
*/
class ImsLtiTool
{
private $id;
private $name;
private $description;
private $launchUrl;
private $consumerKey;
private $sharedSecret;
private $customParams;
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function getDescription()
{
return $this->description;
}
public function getLaunchUrl()
{
return $this->launchUrl;
}
public function getConsumerKey()
{
return $this->consumerKey;
}
public function getSharedSecret()
{
return $this->sharedSecret;
}
public function getCustomParams()
{
return $this->customParams;
}
public function setId($id)
{
$this->id = $id;
return $this;
}
public function setName($name)
{
$this->name = $name;
return $this;
}
public function setDescription($description)
{
$this->description = $description;
return $this;
}
public function setLaunchUrl($launchUrl)
{
$this->launchUrl = $launchUrl;
return $this;
}
public function setConsumerKey($consumerKey)
{
$this->consumerKey = $consumerKey;
return $this;
}
public function setSharedSecret($sharedSecret)
{
$this->sharedSecret = $sharedSecret;
return $this;
}
public function setCustomParams($customParams)
{
$this->customParams = $customParams;
return $this;
}
public function save()
{
if (!empty($this->id)) {
Database::update(
ImsLtiPlugin::TABLE_TOOL,
[
'name' => $this->name,
'description' => $this->description,
'launch_url' => $this->launchUrl,
'consumer_key' => $this->consumerKey,
'shared_secret' => $this->sharedSecret,
'custom_params' => $this->customParams
],
['id' => $this->id]
);
return;
}
$this->id = Database::insert(
ImsLtiPlugin::TABLE_TOOL,
[
'name' => $this->name,
'description' => $this->description,
'launch_url' => $this->launchUrl,
'consumer_key' => $this->consumerKey,
'shared_secret' => $this->sharedSecret,
'custom_params' => $this->customParams
]
);
}
public static function fetch($id)
{
$result = Database::select(
'*',
ImsLtiPlugin::TABLE_TOOL,
['where' => [
'id = ?' => intval($id)
]],
'first'
);
if (empty($result)) {
return null;
}
$tool = new self();
$tool->id = $result['id'];
$tool->name = $result['name'];
$tool->description = $result['description'];
$tool->launchUrl = $result['launch_url'];
$tool->consumerKey = $result['consumer_key'];
$tool->sharedSecret = $result['shared_secret'];
$tool->customParams = $result['custom_params'];
return $tool;
}
public static function fetchAll()
{
return Database::select(
'*',
ImsLtiPlugin::TABLE_TOOL
);
}
public function parseCustomParams()
{
$strings = $this->customParams;
$foo = explode('=', $strings);
return [
'key' => 'custom_'.$foo[0],
'value' => $foo[1]
];
}
}