THIS PROJECT IS NO LONGER ACTIVELY MAINTAINED. You may be interested in a similar project using Discourse as a discussion forum for EdX courses.
This repository contains setup scripts, instructions and code for using WordPress as a discussion forum in EdX courses. It handles LTI authentication from EdX, which allows one-click navigation from an EdX course into the discussion forum. There's also a separate admin login that allows WordPress admin users to sign in directly.
For additional information, configuration for MIT Teaching Systems Lab courses, or commit and pull request history, see the MIT-internal repo at private-teaching-systems-lab/forums or additional Google Drive documentation that are internal to TSL/STEP. If you're interested in trying this out yourself, feel free to reach out at @mit_tsl.
You can deploy changes to WordPress code with this script:
scripts/wordpress_deploy.sh $USER_HOST_TARGET
This deploys the code and activates plugins and themes.
If you are using a CDN for assets, this will not upload assets to the CDN immediately. See the notes in initial-setup.md about using W3 Total Cache.
To update WordPress itself, run this locally:
scripts/update_wordpress.sh
This will not update any themes or mu-plugins.
To update WordPress plugins, run this locally:
scripts/update_plugins.sh
Global changes for the forums course are defined in forums-config.php
, which is imported by wp-config.php
, which is otherwise standard.
Most plugins and themes are off-the-shelf, while others have been heavily modified. You can confirm this by running a diff
on the code in source and a fresh download of the plugin, or by running scripts/update_plugins.sh
and looking at the diff.
Modified plugins are:
- themes/wp-knowledge-base-child/
- mu-plugins/IMSBasicLTI.php
- mu-plugins/LTI_Tool_Provider/
- Get Shopped Support Forums (function)
Some plugins and themes are used but no longer maintained upstream:
See custom.css and the Appearance > Simple Custom CSS plugin
- AWS CloudWatch Dashboard
- AWS CloudFront Dashboard
- forums-notifier drops messages in Slack when Mailgun errors occur.
- csp-logger for monitoring CSP violations
- Rollbar reports PHP and JS errors. Additionally, a bit of JS added to the wp-knowledge-base-child checks for broken image links and reports them.
- Production integration test - Setup:
npm install
, install PhantomJS, and then set variables intester_env.sh
. Run:npm run tester
. This will click through a few pages on the happy path, so requires content.