PHPackages                             pressbooks/pressbooks-lti-provider - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. pressbooks/pressbooks-lti-provider

AbandonedArchivedWordpress-plugin[Authentication &amp; Authorization](/categories/authentication)

pressbooks/pressbooks-lti-provider
==================================

A plugin which turns Pressbooks into an LTI provider.

2.0.0(3y ago)5244[3 issues](https://github.com/pressbooks/pressbooks-lti-provider/issues)GPL-3.0-or-laterPHPPHP &gt;=7.4

Since Apr 9Pushed 3y ago6 watchersCompare

[ Source](https://github.com/pressbooks/pressbooks-lti-provider)[ Packagist](https://packagist.org/packages/pressbooks/pressbooks-lti-provider)[ Docs](https://github.com/pressbooks/pressbooks-lti-provider)[ RSS](/packages/pressbooks-pressbooks-lti-provider/feed)WikiDiscussions dev Synced yesterday

READMEChangelog (10)Dependencies (6)Versions (24)Used By (0)

Pressbooks LTI Provider
=======================

[](#pressbooks-lti-provider)

Contributors: conner\_bw, greatislander
Tags: pressbooks, lti, lms
Requires at least: 6.0
Tested up to: 6.0.2 Stable tag: 2.0.0 Requires PHP: 7.4 License: GPLv3 or later
License URI:

NOTE: This plugin is no longer being used by Pressbooks and has been [deprecated](https://pressbooks.community/t/planned-deprecation-notice-pressbooks-lti-provider-plugin/1715). We have archived this repo, as it is no longer being maintained.

This plugin turns Pressbooks into an LTI provider.

Description
-----------

[](#description)

[![Packagist](https://camo.githubusercontent.com/a1cc1edac600fb743044f03d6fc6dd7d77729d15c0ebceace8c58298f140eed0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7072657373626f6f6b732f7072657373626f6f6b732d6c74692d70726f76696465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pressbooks/pressbooks-lti-provider) [![GitHub release](https://camo.githubusercontent.com/1fa9ffaa63a5824df9af3ab2e4666e6c7be648b6c809a2d8d9639a695d8e632c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f7072657373626f6f6b732f7072657373626f6f6b732d6c74692d70726f76696465722e7376673f7374796c653d666c61742d737175617265)](https://github.com/pressbooks/pressbooks-lti-provider/releases) [![Travis](https://camo.githubusercontent.com/4f0d9e2e5526f4e8c8656dea6b62c6c0525ad94d275ec36f7fbfd412d2a438dd/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f7072657373626f6f6b732f7072657373626f6f6b732d6c74692d70726f76696465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/pressbooks/pressbooks-lti-provider/) [![Codecov](https://camo.githubusercontent.com/5d18d8181c2eaf3a8c87a126f961826432eba0309749fe3b84987eca0fae2b2f/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f7072657373626f6f6b732f7072657373626f6f6b732d6c74692d70726f76696465722e7376673f7374796c653d666c61742d737175617265)](https://codecov.io/gh/pressbooks/pressbooks-lti-provider)

A plugin that turn Pressbooks into an [LTI Provider](https://en.wikipedia.org/wiki/Learning_Tools_Interoperability).

This plugin is built on top of a (forked and maintained) IMS Global Learning Consortium provided [LTI-Tool-Provider-Library-PHP](https://github.com/Izumi-kun/LTI-Tool-Provider-Library-PHP) abstraction layer. It includes support for LTI 1.1 and the unofficial extensions to LTI 1.0, as well as the registration process and services of LTI 2.0.

Installation
------------

[](#installation)

```
composer require pressbooks/pressbooks-lti-provider

```

Or, download the latest version from the releases page and unzip it into your WordPress plugin directory):

Then, activate and configure the plugin at the Network level.

Read the integrations documentation for more info:

Troubleshooting
---------------

[](#troubleshooting)

- If the user's web browser does not allow 3rd Party Cookies, then logins will not work when Pressbooks is in an iframe.
- If the web server has incorrect `X-Frame-Options` settings, then iframes will refuse to display. [More info.](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options)
- This plugin requires [PDO for MySQL](http://php.net/manual/en/ref.pdo-mysql.php). These drivers are usually installed by default when installing MySQL packages for PHP. If you have Pressbooks running, then PDO should already be installed. If for some reason the PDO drivers are missing, install them.

Deep Linking
------------

[](#deep-linking)

Connect URL (LTI 2 Registration URL)

>

Book cover page

>

Post\_id

>

Post\_type + Post\_name

>

Root site compatibility:

> [https://site/format/lti/BOOK\_ID?page\_id=123](https://site/format/lti/BOOK_ID?page_id=123)

> [https://site/format/lti/BOOK\_ID/launch/123](https://site/format/lti/BOOK_ID/launch/123)

> [https://site/format/lti/BOOK\_ID/launch/front-matter/introduction](https://site/format/lti/BOOK_ID/launch/front-matter/introduction)

ContentItemSelectionRequest (Automatic Configuration)
-----------------------------------------------------

[](#contentitemselectionrequest-automatic-configuration)

Pressbooks supports incoming content-item requests for media type values of `application/vnd.ims.lti.v1.ltilink`.

This feature allows course designers to select which chapter they want to display from inside their LMS.

When configuring, the Launch URL will be something like `https://site/book/format/lti` where `https://site/book` is the URL to your book. Setup instructions follow:

Note: Automatic configuration is a feature of the LTI 2.0 specification. Support, usefulness, varies between Learning Management Systems.

### Moodle

[](#moodle)

First, whitelist the Tool Consumer domain in Pressbooks "LTI2 Registration Whitelist".

In Moodle go to: Site Administration -&gt; Plugins -&gt; Manage Tools -&gt; Add tool. Paste in the Launch URL. Follow the configuration steps.

Once configured, you can pick a chapter when adding an external tool by clicking "Select Content".

### Canvas

[](#canvas)

Settings -&gt; Apps -&gt; View App Configuration -&gt; +App. Configure using the "Paste XML Configuration Type" with the following XML snippet, making sure to replace `https://site/book/format/lti` with your Launch URL:

```

  Pressbooks Book
  This is a Pressbooks Book
  https://site/book/format/lti

    email_only

      ContentItemSelectionRequest
      https://site/book/format/lti

    600
    800

```

[More info.](https://github.com/instructure/canvas-lms/blob/master/doc/api/content_item.md)

### Sakai

[](#sakai)

Click on the Site Info tool in the left navigation area. Click on the External Tools tab. Click on Install LTI 1.1 link.

When entering the information, make sure to select: Allow the tool to be launched as a link, Allow external tool to configure itself, and Allow the tool to be used from the rich content editor to select content.

Once configured, use "Launch External Tool Configuration" when adding an External Tool.

### Blackboard

[](#blackboard)

System Admin -&gt; LTI Tool Providers -&gt; Register Provider Domain. Configure accordingly.

Next, from the options menu (little arrow next to the configured domain) select: Manage Placements, then Create Placement.

When entering the information make sure to select: Course content tool and Supports deep linking.

The placement will be available in your Course the under Build Content menu.

Common Cartridge
----------------

[](#common-cartridge)

Allows users to export books as "Thin" Common Cartridge zip files. Supports CC 1.1, 1.2 and 1.3. Produces .imscc (zip) files with LTI links. Some notes:

- Files passed the IMS Common Cartridge Validator.
- Moodle was able to import CC 1.1 ([because there's no code to import 1.2 or 1.3 ?!](https://github.com/moodle/moodle/tree/master/backup/converter))
- Canvas was able to import CC 1.1, 1.2, and 1.3.
- Sakai imports but didn't know what to do with the LTI links? Only empty Frontmatter, Main Body, Backmatter appeared under Lessons. The rest of the content appeared as unusable XML files under Resources. Fixed in 12.4. [See this bug report for resolution.](https://jira.sakaiproject.org/browse/SAK-40082)
- Blackboard was able to import CC 1.1 and 1.2.

Thanks to [Ed Beck](http://ed-beck.com/), [Bracken Mosbacker](https://github.com/lumenlearning/candela-thin-exports), [Brad Payne](https://github.com/BCcampus/pressbooks-cc-export), [Steel Wagstaff](https://github.com/SteelWagstaff/candela-thin-exports) and everyone in  who helped us get this working.

Screenshots
-----------

[](#screenshots)

[![Pressbooks LTI Consumers.](screenshot-1.png)](screenshot-1.png)[![Pressbooks LTI Settings.](screenshot-2.png)](screenshot-2.png)[![ContentItemSelectionRequest in Moodle.](screenshot-3.png)](screenshot-3.png)

Changelog
---------

[](#changelog)

### 2.0.0

[](#200)

- See:
- Full release history available at:

Upgrade Notice
--------------

[](#upgrade-notice)

### 2.0.0

[](#200-1)

Pressbooks LTI Provider 2.0.0 requires Pressbooks &gt;= 6.0.0

### 1.3.6

[](#136)

Pressbooks LTI Provider requires PHP 7.4

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance8

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 70.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~80 days

Recently: every ~195 days

Total

21

Last Release

1387d ago

Major Versions

0.4.3 → 1.0.02018-07-12

1.3.6 → 2.0.02022-09-12

PHP version history (3 changes)0.1.0PHP &gt;=7.0

1.1.0PHP &gt;=7.1

1.3.6PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/5617ca8d230381ad60c37324c68fff5d0b1866a51f47b97e707a84afd0f80ce5?d=identicon)[pressbooks-ops](/maintainers/pressbooks-ops)

---

Top Contributors

[![dac514](https://avatars.githubusercontent.com/u/812192?v=4)](https://github.com/dac514 "dac514 (150 commits)")[![SteelWagstaff](https://avatars.githubusercontent.com/u/13485451?v=4)](https://github.com/SteelWagstaff "SteelWagstaff (21 commits)")[![greatislander](https://avatars.githubusercontent.com/u/605361?v=4)](https://github.com/greatislander "greatislander (9 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (9 commits)")[![ho-man-chan](https://avatars.githubusercontent.com/u/21694293?v=4)](https://github.com/ho-man-chan "ho-man-chan (6 commits)")[![arzola](https://avatars.githubusercontent.com/u/4997549?v=4)](https://github.com/arzola "arzola (4 commits)")[![fdalcin](https://avatars.githubusercontent.com/u/1761690?v=4)](https://github.com/fdalcin "fdalcin (4 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (3 commits)")[![richard015ar](https://avatars.githubusercontent.com/u/13248424?v=4)](https://github.com/richard015ar "richard015ar (3 commits)")[![ricardopressbooks](https://avatars.githubusercontent.com/u/63249561?v=4)](https://github.com/ricardopressbooks "ricardopressbooks (1 commits)")[![cmurtagh](https://avatars.githubusercontent.com/u/952104?v=4)](https://github.com/cmurtagh "cmurtagh (1 commits)")[![transifex-integration[bot]](https://avatars.githubusercontent.com/in/18568?v=4)](https://github.com/transifex-integration[bot] "transifex-integration[bot] (1 commits)")

---

Tags

blackboardcanvascanvas-lmslmsltimoodlepressbookspressbooks-pluginsakaiLTIlmspressbooks

### Embed Badge

![Health badge](/badges/pressbooks-pressbooks-lti-provider/health.svg)

```
[![Health](https://phpackages.com/badges/pressbooks-pressbooks-lti-provider/health.svg)](https://phpackages.com/packages/pressbooks-pressbooks-lti-provider)
```

###  Alternatives

[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45344.0k1](/packages/pressbooks-pressbooks)[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.3k10](/packages/helsingborg-stad-municipio)[pressbooks/pressbooks-book

This theme is named after Canadian media theorist Marshall McLuhan, who coined the phrase “the medium is the message.” It is designed for academic writing and is also suitable for fiction. Headings are set in Cormorant Garamond, and body type is set in Lora.

206.7k](/packages/pressbooks-pressbooks-book)[pressbooks/pressbooks-aldine

Aldine is the default theme for the home page of Pressbooks networks. It is named for the Aldine Press, founded by Aldus Manutius in 1494, who is regarded by many as the world’s first publisher.

114.5k](/packages/pressbooks-pressbooks-aldine)[october/rain

October Rain Library

1601.7M73](/packages/october-rain)[wp-cli/wp-cli-tests

WP-CLI testing framework

423.1M135](/packages/wp-cli-wp-cli-tests)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
