Week 31, August 2017
- Removed previously deprecated property
Application::ssl. This value is available both as property
ssl in class
Sandbox\Request, and as method
isSSL in class
Core\HTTP. Note, however, that all requests to Includable are forced to use SSL, so this will always return
true in production environments.
Week 22, May 2017
- Added Benchmarks class for module developers to run their own benchmarks.
inc run console.
Week 20, May 2017
$this->module->version, which outputs a string denoting the module version, useful for cachebusting.
- Made module translations available in all controller types (previously only available in the
web controller by default).
- Fixed a bug where it was not possible to change the standard locale from within a module.
Week 17, April 2017
Week 16, April 2017
Week 12, March 2017
$this->site, although this property won't be removed any time soon.
- Made currently signed in user and community available through the global functions
community() which both return either a User or Community object (respectively), or null when no user is signed in or community is found in the current context.
LocaleParser, which determines the correct locale to use for the
Language class, now als checks the attribute
locale of the currently signed in user (if any), before falling back on the browser's preferred language.
- Thumbnails generated by
CDN::thumbnail() now return a JPEG image with quality 90 instead of 80.
Week 11, March 2017
- Added model interface class
Group, which makes it easier to create new user groups and assign users to them.
- Added infrastructure for incoming emails, available through the class
Services\Email\Inbox and helper model class
Week 10, March 2017
- Removed deprecated function
Model methods related to attributes into
User models now extend.
Week 1, January 2017
- Implemented helper functions
redirect(), as wel as the class
Sandbox\Route, which makes routing within modules much cleaner and simpler. Also made
$this->request->post() available as static functions
Week 52, December 2016
webOptions.catchAll (boolean) to the Module.json file specification, allowing modules to declare that they should be loaded when the path requested isn't recognized as a module namespace for any other module installed in the community. When a module with
webOptions.catchAll set to
true is set as the community homepage, going to
/ within the community will not trigger a redirect to the module namespace (e.g.
/courses) as is the case normally, but the module will be executed at the root path. Also, when a catch-all module is executed from a non-existing namespace (e.g.
/courses2/test/something), the whole path (after the initial slash) is passed as arguments to the
web controller of the module (i.e.
$this->request->args would be
courses2, instead of
test, as would be the case for an existing module with the namespace
courses2). Note that is not the case for the catch-all module itself, when using a path including the module namespace, this will be ignored as a part of
Week 47, November 2016
- Modernised email template design. The new email template allows you to add a custom icon and header color through properties in the EmailComposer class.
Week 46, November 2016
- CORE-350 - Fix error handling for missing static assets on production Fixed Changed handling of missing static assets. Before this would throw a
SandboxException and display an error to the user. Now, when this happens, no file or error is served, but instead the module's
web controller will be called with that path, like any regular URL starting with the module slug. Example: browser requests
http://example.com/mymodule/static/something.css, which is registered as a static file URL In the module manifest, but doesn't exist. In this case the
web controller is executed with
$this->request->args = ['static', 'something.css'].
Week 44, October 2016
- Added API for retrieving image thumbnails of uploaded documents (official documentation pending).
Week 43, October 2016
- Removed deprecated
$this->module->request_url. All of these values are still available through
Week 37, September 2016
$this->lang. The Language class will stay available through either
instance() on the Language class itself is the recommended way to access this now.
Week 29, July 2016
- Released the Includable CLI beta 1, enabling module developers to debug modules without the need for a local testing environment. View Github project
- Added SAML and OAuth2 platform support. User interface and developer registration will follow later in the year.
- Implemented a new UI for logins and authorization.
- Added support for custom module language files, to support module-specific translations. View documentation
site-footer are now also called on non-authenticated community pages, i.e. the login screen.
Week 28, July 2016
- Implemented Handlebars templates support:
Week 27, July 2016
- Implemented Storage Collections, a thin layer around the key-value storage API that allows you to work with table-like data structures.
Week 26, June 2016
- Dropped support for deprecated
apc_set() functions as a way to access the cache. Only way to access the cache now is to use