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
Angel Fernando Quiroz Campos 76cd33a32a LTI: improve creation for content item types - refs BT#16379 6 years ago
..
Entity LTI: Add option to launch tool in iframe or window - refs BT#16379 6 years ago
assets LTI: Improve admin view for tools 6 years ago
gradebook LTI: Remove old services endpoints 6 years ago
lang LTI: Avoid use AGS when there is no gradebook - refs BT#16379 6 years ago
src LTI: improve creation for content item types - refs BT#16379 6 years ago
vendor/oauth1 WIP LTI add oauth lib - refs BT#13469 7 years ago
view LTI: Add view for setting to config tool 6 years ago
ImsLtiPlugin.php LTI: Fix query to install plugin 6 years ago
README.md LTI: Add option to launch tool in iframe or window - refs BT#16379 6 years ago
admin.php LTI: Improve admin view for tools 6 years ago
ags2.php LTI: Refactoring AG service 6 years ago
auth.php LTI: Add option to launch tool in iframe or window - refs BT#16379 6 years ago
configure.php LTI: Fix save public key when editing tool - refs BT#16379 6 years ago
create.php LTI: Add option to launch tool in iframe or window - refs BT#16379 6 years ago
delete.php LTI: Delete course tool when deleting LTI tool - refs BT#16379 6 years ago
edit.php LTI: Add option to launch tool in iframe or window - refs BT#16379 6 years ago
form.php LTI: Add option to launch tool in iframe or window - refs BT#16379 6 years ago
install.php Minor - format code 8 years ago
item_return.php LTI replace OAuthSimple with OAuth1 - refs BT#13469 7 years ago
item_return2.php LTI: improve creation for content item types - refs BT#16379 6 years ago
jwks.php WIP - Adding LTI 1.3 6 years ago
login.php LTI: Adding Deep-Linking 2.0 6 years ago
nrps2.php LTI: Add Name and Role Provisioning Service 6 years ago
outcome_service.php LTI replace OAuthSimple with OAuth1 - refs BT#13469 7 years ago
platform.php LTI: Improve admin view for tools 6 years ago
plugin.php
start.php LTI: Add option to launch tool in iframe or window - refs BT#16379 6 years ago
token.php LTI: Use HttpFoundation Response in token endpoint 6 years ago
tool_settings.php LTI: Add view for setting to config tool 6 years ago
uninstall.php Minor - format code 8 years ago

README.md

IMS/LTI plugin

Version 1.7.0

This plugin is meant to be later integrated into Chamilo (in a major version release).

IMS/LTI defines the possibility to integrate tools or content into Chamilo. This plugin allows the integration of a new tool into courses, obtaining data back from those tools and recording them as gradebook "external" activities.

This plugin allow certified support for LTI 1.0, 1.1, 1.1.1, Deep Linking 1.x, Outcome Services 1.x. You can get information about the LTI Certification on this page.

As a platform admin, you can register external tools available for all courses. You need set the tools settings in the IMS/LTI administration page. Then the registered tools should be added in each course individually.

As a teacher, you can register external tools available only for the current course. You need follow the link in the IMS/LTI block located in the Course Settings tool. Then select a previously tool registered or register a new external tool.

Changelog

v1.7

  • Fix auth params
  • Add option to show LTI tool in iframe or new window.

v1.6

  • Add support to LTI 1.3 and Advantage Services

v1.5

  • Plugin has passed the tests from the LTI Certification suite.
  • Add support for substitution of variable. See ImsLti::getSubstitutableParams().
  • Outcome services has a unique URL and sourced ID.

v1.4

  • Allow create external tools when there is no key/secret available for launch

v1.3

  • Privacy settings added. Allow to indicate id the launcher's data should be sent in request.

v1.2

  • Register course in which the tool was added.
  • Register parent tool from which the new tool comes from.

v1.1

  • Support for Deep-Linking added.
  • Support for outcomes services. And register score on course gradebook.

Installation

  1. Install the plugin from the Plugins page
  2. Enable the plugin from the IMS/LTI Plugin Settings page
  3. Assign to the Administrator region (in the regions management page)

Upgrading

Run this changes on database:

To v1.7.0

ALTER TABLE plugin_ims_lti_tool ADD launch_presentation LONGTEXT NOT NULL COMMENT '(DC2Type:json)';

To v1.6.0

CREATE TABLE plugin_ims_lti_platform (
    id INT AUTO_INCREMENT NOT NULL,
    kid VARCHAR(255) NOT NULL,
    public_key LONGTEXT NOT NULL,
    private_key LONGTEXT NOT NULL,
    PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB;
CREATE TABLE plugin_ims_lti_token (
    id INT AUTO_INCREMENT NOT NULL,
    tool_id INT DEFAULT NULL,
    scope LONGTEXT NOT NULL COMMENT '(DC2Type:json)',
    hash VARCHAR(255) NOT NULL,
    created_at INT NOT NULL,
    expires_at INT NOT NULL,
    INDEX IDX_F7B5692F8F7B22CC (tool_id),
    PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB;
ALTER TABLE plugin_ims_lti_token
    ADD CONSTRAINT FK_F7B5692F8F7B22CC FOREIGN KEY (tool_id) REFERENCES plugin_ims_lti_tool (id) ON DELETE CASCADE;
ALTER TABLE plugin_ims_lti_tool
    ADD client_id VARCHAR(255) DEFAULT NULL,
    ADD public_key LONGTEXT DEFAULT NULL,
    ADD login_url VARCHAR(255) DEFAULT NULL,
    ADD redirect_url VARCHAR(255) DEFAULT NULL,
    ADD advantage_services LONGTEXT DEFAULT NULL COMMENT '(DC2Type:json)',
    ADD version VARCHAR(255) DEFAULT 'lti1p1' NOT NULL;
CREATE TABLE plugin_ims_lti_lineitem (
    id INT AUTO_INCREMENT NOT NULL,
    tool_id INT NOT NULL,
    evaluation INT NOT NULL,
    resource_id VARCHAR(255) DEFAULT NULL,
    tag VARCHAR(255) DEFAULT NULL,
    start_date DATETIME DEFAULT NULL,
    end_date DATETIME DEFAULT NULL,
    INDEX IDX_BA81BBF08F7B22CC (tool_id),
    UNIQUE INDEX UNIQ_BA81BBF01323A575 (evaluation),
    PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB;
ALTER TABLE plugin_ims_lti_lineitem
    ADD CONSTRAINT FK_BA81BBF08F7B22CC FOREIGN KEY (tool_id) REFERENCES plugin_ims_lti_tool (id) ON DELETE CASCADE;
ALTER TABLE plugin_ims_lti_lineitem
    ADD CONSTRAINT FK_BA81BBF01323A575 FOREIGN KEY (evaluation) REFERENCES gradebook_evaluation (id) ON DELETE CASCADE;

To v1.5.1

ALTER TABLE plugin_ims_lti_tool
    DROP FOREIGN KEY FK_C5E47F7C727ACA70,
    ADD FOREIGN KEY (parent_id) REFERENCES plugin_ims_lti_tool (id) ON DELETE CASCADE ON UPDATE RESTRICT;

To v1.4

ALTER TABLE plugin_ims_lti_tool
    CHANGE consumer_key consumer_key VARCHAR(255) DEFAULT NULL,
    CHANGE shared_secret shared_secret VARCHAR(255) DEFAULT NULL;

To v1.3

ALTER TABLE plugin_ims_lti_tool ADD privacy LONGTEXT DEFAULT NULL;

To v1.2

ALTER TABLE plugin_ims_lti_tool ADD c_id INT DEFAULT NULL;
ALTER TABLE plugin_ims_lti_tool ADD CONSTRAINT FK_C5E47F7C91D79BD3
    FOREIGN KEY (c_id) REFERENCES course (id);
CREATE INDEX IDX_C5E47F7C91D79BD3 ON plugin_ims_lti_tool (c_id);

ALTER TABLE plugin_ims_lti_tool ADD parent_id INT DEFAULT NULL, DROP is_global;
ALTER TABLE plugin_ims_lti_tool ADD CONSTRAINT FK_C5E47F7C727ACA70
    FOREIGN KEY (parent_id) REFERENCES plugin_ims_lti_tool (id);
CREATE INDEX IDX_C5E47F7C727ACA70 ON plugin_ims_lti_tool (parent_id);

To v1.1

ALTER TABLE plugin_ims_lti_tool
    ADD active_deep_linking TINYINT(1) DEFAULT '0' NOT NULL,
    CHANGE id id INT AUTO_INCREMENT NOT NULL,
    CHANGE launch_url launch_url VARCHAR(255) NOT NULL;
    
ALTER TABLE plugin_ims_lti_tool ADD gradebook_eval_id INT DEFAULT NULL;
ALTER TABLE plugin_ims_lti_tool ADD CONSTRAINT FK_C5E47F7C82F80D8B
    FOREIGN KEY (gradebook_eval_id) REFERENCES gradebook_evaluation (id)
    ON DELETE SET NULL;
CREATE INDEX IDX_C5E47F7C82F80D8B ON plugin_ims_lti_tool (gradebook_eval_id);